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        io_addrr,
  input        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:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_0_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_0_MPORT_addr_pipe_0;
  reg [7:0] datMem_1 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_1_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_1_MPORT_addr_pipe_0;
  reg [7:0] datMem_2 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_2_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_2_MPORT_addr_pipe_0;
  reg [7:0] datMem_3 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_3_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_3_MPORT_addr_pipe_0;
  reg [7:0] datMem_4 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_4_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_4_MPORT_addr_pipe_0;
  reg [7:0] datMem_5 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_5_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_5_MPORT_addr_pipe_0;
  reg [7:0] datMem_6 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_6_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_6_MPORT_addr_pipe_0;
  reg [7:0] datMem_7 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_7_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_7_MPORT_addr_pipe_0;
  reg [7:0] datMem_8 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_8_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_8_MPORT_addr_pipe_0;
  reg [7:0] datMem_9 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_9_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_9_MPORT_addr_pipe_0;
  reg [7:0] datMem_10 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_10_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_10_MPORT_addr_pipe_0;
  reg [7:0] datMem_11 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_11_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_11_MPORT_addr_pipe_0;
  reg [7:0] datMem_12 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_12_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_12_MPORT_addr_pipe_0;
  reg [7:0] datMem_13 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_13_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_13_MPORT_addr_pipe_0;
  reg [7:0] datMem_14 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_14_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  datMem_14_MPORT_addr_pipe_0;
  reg [7:0] datMem_15 [0:1]; // @[CacheRAM.scala 46:27]
  wire  datMem_15_MPORT_en; // @[CacheRAM.scala 46:27]
  wire  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  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  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 < 2; initvar = initvar+1)
    datMem_0[initvar] = _RAND_0[7:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_1[initvar] = _RAND_3[7:0];
  _RAND_6 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_2[initvar] = _RAND_6[7:0];
  _RAND_9 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_3[initvar] = _RAND_9[7:0];
  _RAND_12 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_4[initvar] = _RAND_12[7:0];
  _RAND_15 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_5[initvar] = _RAND_15[7:0];
  _RAND_18 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_6[initvar] = _RAND_18[7:0];
  _RAND_21 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_7[initvar] = _RAND_21[7:0];
  _RAND_24 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_8[initvar] = _RAND_24[7:0];
  _RAND_27 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_9[initvar] = _RAND_27[7:0];
  _RAND_30 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_10[initvar] = _RAND_30[7:0];
  _RAND_33 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_11[initvar] = _RAND_33[7:0];
  _RAND_36 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_12[initvar] = _RAND_36[7:0];
  _RAND_39 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_13[initvar] = _RAND_39[7:0];
  _RAND_42 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; initvar = initvar+1)
    datMem_14[initvar] = _RAND_42[7:0];
  _RAND_45 = {1{`RANDOM}};
  for (initvar = 0; initvar < 2; 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[0: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[0: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[0: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[0: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[0: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[0: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[0: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[0: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[0: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[0: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[0: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[0: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[0: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[0: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[0: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[0: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         io_addrr,
  input         io_addrw,
  input  [26:0] io_dataw,
  output [26: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 [26:0] tagMem [0:1]; // @[CacheRAM.scala 152:27]
  wire  tagMem_io_datar_MPORT_en; // @[CacheRAM.scala 152:27]
  wire  tagMem_io_datar_MPORT_addr; // @[CacheRAM.scala 152:27]
  wire [26:0] tagMem_io_datar_MPORT_data; // @[CacheRAM.scala 152:27]
  wire [26:0] tagMem_MPORT_data; // @[CacheRAM.scala 152:27]
  wire  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  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 < 2; initvar = initvar+1)
    tagMem[initvar] = _RAND_0[26: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[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 [63:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
`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  datRAM_0_io_addrr; // @[IF2.scala 182:54]
  wire  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  tagRAM_0_clock; // @[IF2.scala 183:54]
  wire  tagRAM_0_io_addrr; // @[IF2.scala 183:54]
  wire  tagRAM_0_io_addrw; // @[IF2.scala 183:54]
  wire [26:0] tagRAM_0_io_dataw; // @[IF2.scala 183:54]
  wire [26: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  _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  cl_sel = io_mmu_if_bits_paddr[4]; // @[IF2.scala 79:36]
  wire [26:0] tag_sel = io_mmu_if_bits_paddr[31:5]; // @[IF2.scala 80:37]
  reg  is_valid_1_0; // @[IF2.scala 180:25]
  reg  is_valid_0_0; // @[IF2.scala 180:25]
  wire  _GEN_4 = cl_sel ? is_valid_1_0 : is_valid_0_0; // @[IF2.scala 189:{42,42}]
  wire  res_0 = tagRAM_0_io_datar == tag_sel & _GEN_4; // @[IF2.scala 189:42]
  wire  is_hit = |res_0; // @[IF2.scala 86:33]
  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_22 = {{1'd0}, _icache_state_dnxt_T_17}; // @[Mux.scala 27:73]
  wire [1:0] _icache_state_dnxt_T_20 = _GEN_22 | _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 [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_5 = ~kill_trans; // @[IF2.scala 244:103]
  wire  _datRAM_0_io_enw_T_6 = _icache_state_dnxt_T_15 & icache_state_dnxt == 4'h0 & ~kill_trans; // @[IF2.scala 244:101]
  wire  _datRAM_0_io_enw_T_8 = _icache_state_dnxt_T_15 & icache_state_dnxt == 4'h0 & ~kill_trans & _T_3; // @[IF2.scala 244:115]
  wire [127:0] icache_access_data = {io_icache_access_bits_data,icache_access_data_lo_0}; // @[Cat.scala 33:92]
  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 = {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  _GEN_5 = ~cl_sel | is_valid_0_0; // @[IF2.scala 180:25 266:{30,30}]
  wire  _GEN_6 = cl_sel | is_valid_1_0; // @[IF2.scala 180:25 266:{30,30}]
  wire [38:0] _GEN_24 = {{7'd0}, io_mmu_if_bits_paddr[31:0]}; // @[IF2.scala 286:51]
  wire [38:0] _io_icache_get_bits_T_2 = _GEN_24 & 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_12 = is_paging_fault ? 64'h9c45 : reAlign_instr; // @[IF2.scala 331:31 350:67 351:31]
  wire [63:0] _GEN_13 = 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_16 = is_access_fault ? 64'h9c41 : _GEN_12; // @[IF2.scala 343:60 344:31]
  wire [63:0] _GEN_17 = is_access_fault ? io_if2_req_bits_pc : _GEN_13; // @[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_20 = _datRAM_0_io_enw_T_1 | _icache_state_dnxt_T ? 1'h0 : kill_trans; // @[IF2.scala 373:72 374:16 71:27]
  wire  _GEN_21 = io_flush & _ibuf_io_enq_0_valid_T_2 | _GEN_20; // @[IF2.scala 371:48 372:16]
  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)
  );
  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)
  );
  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_17[38:0];
  assign ibuf_io_enq_0_bits_instr = _GEN_16[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[4]; // @[IF2.scala 236:47]
  assign datRAM_0_io_addrw = io_mmu_if_bits_paddr[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 & ~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 tagRAM_0_clock = clock;
  assign tagRAM_0_io_addrr = io_mmu_if_bits_paddr[4]; // @[IF2.scala 238:47]
  assign tagRAM_0_io_addrw = io_mmu_if_bits_paddr[4]; // @[IF2.scala 239:47]
  assign tagRAM_0_io_dataw = io_mmu_if_bits_paddr[31:5]; // @[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]
  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_21;
    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_8) begin // @[IF2.scala 265:91]
      is_valid_1_0 <= _GEN_6;
    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_8) begin // @[IF2.scala 265:91]
      is_valid_0_0 <= _GEN_5;
    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 (_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_1_0 = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  is_valid_0_0 = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  icache_state_qout = _RAND_5[3:0];
  _RAND_6 = {1{`RANDOM}};
  fault_lock = _RAND_6[0:0];
  _RAND_7 = {2{`RANDOM}};
  REG = _RAND_7[63:0];
  _RAND_8 = {1{`RANDOM}};
  REG_1 = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  REG_2 = _RAND_9[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,
  input         io_irgRsp_0_valid,
  input  [5:0]  io_irgRsp_0_bits_phy,
  input  [63:0] io_irgRsp_0_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 [63:0] _RAND_101;
  reg [63: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 [63:0] _RAND_207;
  reg [63: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 [95:0] _RAND_218;
  reg [95:0] _RAND_219;
  reg [95:0] _RAND_220;
  reg [95:0] _RAND_221;
  reg [31:0] _RAND_222;
  reg [31:0] _RAND_223;
  reg [31:0] _RAND_224;
`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  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  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 [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]
  wire  _entrySel_T = ~bufValid_0; // @[Issue.scala 69:43]
  wire  entrySel_0 = ~bufValid_0 ? 1'h0 : 1'h1; // @[Issue.scala 69:26]
  wire  _io_dptReq_0_ready_T_1 = ~bufValid_1; // @[Issue.scala 78:59]
  wire  _T = io_dptReq_0_ready & io_dptReq_0_valid; // @[Decoupled.scala 52:35]
  wire  _GEN_198 = ~entrySel_0; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_0 = ~entrySel_0 | bufValid_0; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_1 = entrySel_0 | bufValid_1; // @[Issue.scala 82:23 89:{36,36}]
  wire  _GEN_396 = _T ? _GEN_0 : bufValid_0; // @[Issue.scala 82:23 88:38]
  wire  _GEN_397 = _T ? _GEN_1 : bufValid_1; // @[Issue.scala 82:23 88:38]
  wire  bufValidDnxt_0_0 = io_flush ? 1'h0 : _GEN_396; // @[Issue.scala 86:22 87:23]
  wire  bufValidDnxt_0_1 = io_flush ? 1'h0 : _GEN_397; // @[Issue.scala 86:22 87:23]
  wire  _GEN_1200 = _GEN_198 | isOpReady_0_0; // @[Issue.scala 122:{36,36} 65:25]
  wire  _GEN_1201 = entrySel_0 | isOpReady_1_0; // @[Issue.scala 122:{36,36} 65:25]
  wire [64:0] _GEN_1202 = ~entrySel_0 ? 65'h0 : bufOperator_0_0; // @[Issue.scala 123:{37,37} 66:25]
  wire [64:0] _GEN_1203 = entrySel_0 ? 65'h0 : bufOperator_1_0; // @[Issue.scala 123:{37,37} 66:25]
  wire  _GEN_1204 = ~entrySel_0 ? 1'h0 : isOpReady_0_0; // @[Issue.scala 125:{36,36} 65:25]
  wire  _GEN_1205 = entrySel_0 ? 1'h0 : isOpReady_1_0; // @[Issue.scala 125:{36,36} 65:25]
  wire  _GEN_1206 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_1200 : _GEN_1204; // @[Issue.scala 121:58]
  wire  _GEN_1207 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_1201 : _GEN_1205; // @[Issue.scala 121:58]
  wire [64:0] _GEN_1208 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_1202 : bufOperator_0_0; // @[Issue.scala 121:58 66:25]
  wire [64:0] _GEN_1209 = io_dptReq_0_bits_phy_rs1 == 6'h21 ? _GEN_1203 : bufOperator_1_0; // @[Issue.scala 121:58 66:25]
  wire  _GEN_1210 = _GEN_198 | isOpReady_0_1; // @[Issue.scala 128:{36,36} 65:25]
  wire  _GEN_1211 = entrySel_0 | isOpReady_1_1; // @[Issue.scala 128:{36,36} 65:25]
  wire [64:0] _GEN_1212 = ~entrySel_0 ? 65'h0 : bufOperator_0_1; // @[Issue.scala 129:{37,37} 66:25]
  wire [64:0] _GEN_1213 = entrySel_0 ? 65'h0 : bufOperator_1_1; // @[Issue.scala 129:{37,37} 66:25]
  wire  _GEN_1214 = ~entrySel_0 ? 1'h0 : isOpReady_0_1; // @[Issue.scala 131:{36,36} 65:25]
  wire  _GEN_1215 = entrySel_0 ? 1'h0 : isOpReady_1_1; // @[Issue.scala 131:{36,36} 65:25]
  wire  _GEN_1216 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_1210 : _GEN_1214; // @[Issue.scala 127:58]
  wire  _GEN_1217 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_1211 : _GEN_1215; // @[Issue.scala 127:58]
  wire [64:0] _GEN_1218 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_1212 : bufOperator_0_1; // @[Issue.scala 127:58 66:25]
  wire [64:0] _GEN_1219 = io_dptReq_0_bits_phy_rs2 == 6'h21 ? _GEN_1213 : bufOperator_1_1; // @[Issue.scala 127:58 66:25]
  wire  _GEN_1230 = _T ? _GEN_1206 : isOpReady_0_0; // @[Issue.scala 120:31 65:25]
  wire  _GEN_1231 = _T ? _GEN_1207 : isOpReady_1_0; // @[Issue.scala 120:31 65:25]
  wire [64:0] _GEN_1232 = _T ? _GEN_1208 : bufOperator_0_0; // @[Issue.scala 120:31 66:25]
  wire [64:0] _GEN_1233 = _T ? _GEN_1209 : bufOperator_1_0; // @[Issue.scala 120:31 66:25]
  wire  _GEN_1234 = _T ? _GEN_1216 : isOpReady_0_1; // @[Issue.scala 120:31 65:25]
  wire  _GEN_1235 = _T ? _GEN_1217 : isOpReady_1_1; // @[Issue.scala 120:31 65:25]
  wire [64:0] _GEN_1236 = _T ? _GEN_1218 : bufOperator_0_1; // @[Issue.scala 120:31 66:25]
  wire [64:0] _GEN_1237 = _T ? _GEN_1219 : bufOperator_1_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_1_1; // @[Issue.scala 156:23]
  wire  ageMatrixR_1_0 = ~ageMatrixW_0_1; // @[Issue.scala 161:27]
  wire  _GEN_1242 = _GEN_198 | ageMatrixW_0_0; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_1244 = _GEN_198 | ageMatrixW_0_1; // @[Issue.scala 156:23 171:{44,44}]
  wire  _GEN_1245 = entrySel_0 | ageMatrixW_1_1; // @[Issue.scala 156:23 171:{44,44}]
  wire [1:0] _GEN_1255 = 6'h1 == bufInfo_0_phy_rs1 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1256 = 6'h2 == bufInfo_0_phy_rs1 ? io_irgLog_2 : _GEN_1255; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1257 = 6'h3 == bufInfo_0_phy_rs1 ? io_irgLog_3 : _GEN_1256; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1258 = 6'h4 == bufInfo_0_phy_rs1 ? io_irgLog_4 : _GEN_1257; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1259 = 6'h5 == bufInfo_0_phy_rs1 ? io_irgLog_5 : _GEN_1258; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1260 = 6'h6 == bufInfo_0_phy_rs1 ? io_irgLog_6 : _GEN_1259; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1261 = 6'h7 == bufInfo_0_phy_rs1 ? io_irgLog_7 : _GEN_1260; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1262 = 6'h8 == bufInfo_0_phy_rs1 ? io_irgLog_8 : _GEN_1261; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1263 = 6'h9 == bufInfo_0_phy_rs1 ? io_irgLog_9 : _GEN_1262; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1264 = 6'ha == bufInfo_0_phy_rs1 ? io_irgLog_10 : _GEN_1263; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1265 = 6'hb == bufInfo_0_phy_rs1 ? io_irgLog_11 : _GEN_1264; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1266 = 6'hc == bufInfo_0_phy_rs1 ? io_irgLog_12 : _GEN_1265; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1267 = 6'hd == bufInfo_0_phy_rs1 ? io_irgLog_13 : _GEN_1266; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1268 = 6'he == bufInfo_0_phy_rs1 ? io_irgLog_14 : _GEN_1267; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1269 = 6'hf == bufInfo_0_phy_rs1 ? io_irgLog_15 : _GEN_1268; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1270 = 6'h10 == bufInfo_0_phy_rs1 ? io_irgLog_16 : _GEN_1269; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1271 = 6'h11 == bufInfo_0_phy_rs1 ? io_irgLog_17 : _GEN_1270; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1272 = 6'h12 == bufInfo_0_phy_rs1 ? io_irgLog_18 : _GEN_1271; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1273 = 6'h13 == bufInfo_0_phy_rs1 ? io_irgLog_19 : _GEN_1272; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1274 = 6'h14 == bufInfo_0_phy_rs1 ? io_irgLog_20 : _GEN_1273; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1275 = 6'h15 == bufInfo_0_phy_rs1 ? io_irgLog_21 : _GEN_1274; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1276 = 6'h16 == bufInfo_0_phy_rs1 ? io_irgLog_22 : _GEN_1275; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1277 = 6'h17 == bufInfo_0_phy_rs1 ? io_irgLog_23 : _GEN_1276; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1278 = 6'h18 == bufInfo_0_phy_rs1 ? io_irgLog_24 : _GEN_1277; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1279 = 6'h19 == bufInfo_0_phy_rs1 ? io_irgLog_25 : _GEN_1278; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1280 = 6'h1a == bufInfo_0_phy_rs1 ? io_irgLog_26 : _GEN_1279; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1281 = 6'h1b == bufInfo_0_phy_rs1 ? io_irgLog_27 : _GEN_1280; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1282 = 6'h1c == bufInfo_0_phy_rs1 ? io_irgLog_28 : _GEN_1281; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1283 = 6'h1d == bufInfo_0_phy_rs1 ? io_irgLog_29 : _GEN_1282; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1284 = 6'h1e == bufInfo_0_phy_rs1 ? io_irgLog_30 : _GEN_1283; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1285 = 6'h1f == bufInfo_0_phy_rs1 ? io_irgLog_31 : _GEN_1284; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1286 = 6'h20 == bufInfo_0_phy_rs1 ? io_irgLog_32 : _GEN_1285; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1287 = 6'h21 == bufInfo_0_phy_rs1 ? 2'h3 : _GEN_1286; // @[Issue.scala 217:{37,37}]
  wire  _canIOpReq_0_0_T = _GEN_1287 == 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 = _canIOpReq_0_0_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_0_0); // @[Issue.scala 219:24]
  wire [1:0] _GEN_1289 = 6'h1 == bufInfo_0_phy_rs2 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1290 = 6'h2 == bufInfo_0_phy_rs2 ? io_irgLog_2 : _GEN_1289; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1291 = 6'h3 == bufInfo_0_phy_rs2 ? io_irgLog_3 : _GEN_1290; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1292 = 6'h4 == bufInfo_0_phy_rs2 ? io_irgLog_4 : _GEN_1291; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1293 = 6'h5 == bufInfo_0_phy_rs2 ? io_irgLog_5 : _GEN_1292; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1294 = 6'h6 == bufInfo_0_phy_rs2 ? io_irgLog_6 : _GEN_1293; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1295 = 6'h7 == bufInfo_0_phy_rs2 ? io_irgLog_7 : _GEN_1294; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1296 = 6'h8 == bufInfo_0_phy_rs2 ? io_irgLog_8 : _GEN_1295; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1297 = 6'h9 == bufInfo_0_phy_rs2 ? io_irgLog_9 : _GEN_1296; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1298 = 6'ha == bufInfo_0_phy_rs2 ? io_irgLog_10 : _GEN_1297; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1299 = 6'hb == bufInfo_0_phy_rs2 ? io_irgLog_11 : _GEN_1298; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1300 = 6'hc == bufInfo_0_phy_rs2 ? io_irgLog_12 : _GEN_1299; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1301 = 6'hd == bufInfo_0_phy_rs2 ? io_irgLog_13 : _GEN_1300; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1302 = 6'he == bufInfo_0_phy_rs2 ? io_irgLog_14 : _GEN_1301; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1303 = 6'hf == bufInfo_0_phy_rs2 ? io_irgLog_15 : _GEN_1302; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1304 = 6'h10 == bufInfo_0_phy_rs2 ? io_irgLog_16 : _GEN_1303; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1305 = 6'h11 == bufInfo_0_phy_rs2 ? io_irgLog_17 : _GEN_1304; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1306 = 6'h12 == bufInfo_0_phy_rs2 ? io_irgLog_18 : _GEN_1305; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1307 = 6'h13 == bufInfo_0_phy_rs2 ? io_irgLog_19 : _GEN_1306; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1308 = 6'h14 == bufInfo_0_phy_rs2 ? io_irgLog_20 : _GEN_1307; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1309 = 6'h15 == bufInfo_0_phy_rs2 ? io_irgLog_21 : _GEN_1308; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1310 = 6'h16 == bufInfo_0_phy_rs2 ? io_irgLog_22 : _GEN_1309; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1311 = 6'h17 == bufInfo_0_phy_rs2 ? io_irgLog_23 : _GEN_1310; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1312 = 6'h18 == bufInfo_0_phy_rs2 ? io_irgLog_24 : _GEN_1311; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1313 = 6'h19 == bufInfo_0_phy_rs2 ? io_irgLog_25 : _GEN_1312; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1314 = 6'h1a == bufInfo_0_phy_rs2 ? io_irgLog_26 : _GEN_1313; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1315 = 6'h1b == bufInfo_0_phy_rs2 ? io_irgLog_27 : _GEN_1314; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1316 = 6'h1c == bufInfo_0_phy_rs2 ? io_irgLog_28 : _GEN_1315; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1317 = 6'h1d == bufInfo_0_phy_rs2 ? io_irgLog_29 : _GEN_1316; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1318 = 6'h1e == bufInfo_0_phy_rs2 ? io_irgLog_30 : _GEN_1317; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1319 = 6'h1f == bufInfo_0_phy_rs2 ? io_irgLog_31 : _GEN_1318; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1320 = 6'h20 == bufInfo_0_phy_rs2 ? io_irgLog_32 : _GEN_1319; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1321 = 6'h21 == bufInfo_0_phy_rs2 ? 2'h3 : _GEN_1320; // @[Issue.scala 222:{37,37}]
  wire  _canIOpReq_0_1_T = _GEN_1321 == 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 = _canIOpReq_0_1_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_0_1); // @[Issue.scala 224:24]
  wire [1:0] _GEN_1323 = 6'h1 == bufInfo_1_phy_rs1 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1324 = 6'h2 == bufInfo_1_phy_rs1 ? io_irgLog_2 : _GEN_1323; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1325 = 6'h3 == bufInfo_1_phy_rs1 ? io_irgLog_3 : _GEN_1324; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1326 = 6'h4 == bufInfo_1_phy_rs1 ? io_irgLog_4 : _GEN_1325; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1327 = 6'h5 == bufInfo_1_phy_rs1 ? io_irgLog_5 : _GEN_1326; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1328 = 6'h6 == bufInfo_1_phy_rs1 ? io_irgLog_6 : _GEN_1327; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1329 = 6'h7 == bufInfo_1_phy_rs1 ? io_irgLog_7 : _GEN_1328; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1330 = 6'h8 == bufInfo_1_phy_rs1 ? io_irgLog_8 : _GEN_1329; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1331 = 6'h9 == bufInfo_1_phy_rs1 ? io_irgLog_9 : _GEN_1330; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1332 = 6'ha == bufInfo_1_phy_rs1 ? io_irgLog_10 : _GEN_1331; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1333 = 6'hb == bufInfo_1_phy_rs1 ? io_irgLog_11 : _GEN_1332; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1334 = 6'hc == bufInfo_1_phy_rs1 ? io_irgLog_12 : _GEN_1333; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1335 = 6'hd == bufInfo_1_phy_rs1 ? io_irgLog_13 : _GEN_1334; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1336 = 6'he == bufInfo_1_phy_rs1 ? io_irgLog_14 : _GEN_1335; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1337 = 6'hf == bufInfo_1_phy_rs1 ? io_irgLog_15 : _GEN_1336; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1338 = 6'h10 == bufInfo_1_phy_rs1 ? io_irgLog_16 : _GEN_1337; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1339 = 6'h11 == bufInfo_1_phy_rs1 ? io_irgLog_17 : _GEN_1338; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1340 = 6'h12 == bufInfo_1_phy_rs1 ? io_irgLog_18 : _GEN_1339; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1341 = 6'h13 == bufInfo_1_phy_rs1 ? io_irgLog_19 : _GEN_1340; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1342 = 6'h14 == bufInfo_1_phy_rs1 ? io_irgLog_20 : _GEN_1341; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1343 = 6'h15 == bufInfo_1_phy_rs1 ? io_irgLog_21 : _GEN_1342; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1344 = 6'h16 == bufInfo_1_phy_rs1 ? io_irgLog_22 : _GEN_1343; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1345 = 6'h17 == bufInfo_1_phy_rs1 ? io_irgLog_23 : _GEN_1344; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1346 = 6'h18 == bufInfo_1_phy_rs1 ? io_irgLog_24 : _GEN_1345; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1347 = 6'h19 == bufInfo_1_phy_rs1 ? io_irgLog_25 : _GEN_1346; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1348 = 6'h1a == bufInfo_1_phy_rs1 ? io_irgLog_26 : _GEN_1347; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1349 = 6'h1b == bufInfo_1_phy_rs1 ? io_irgLog_27 : _GEN_1348; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1350 = 6'h1c == bufInfo_1_phy_rs1 ? io_irgLog_28 : _GEN_1349; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1351 = 6'h1d == bufInfo_1_phy_rs1 ? io_irgLog_29 : _GEN_1350; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1352 = 6'h1e == bufInfo_1_phy_rs1 ? io_irgLog_30 : _GEN_1351; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1353 = 6'h1f == bufInfo_1_phy_rs1 ? io_irgLog_31 : _GEN_1352; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1354 = 6'h20 == bufInfo_1_phy_rs1 ? io_irgLog_32 : _GEN_1353; // @[Issue.scala 217:{37,37}]
  wire [1:0] _GEN_1355 = 6'h21 == bufInfo_1_phy_rs1 ? 2'h3 : _GEN_1354; // @[Issue.scala 217:{37,37}]
  wire  _canIOpReq_1_0_T = _GEN_1355 == 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 = _canIOpReq_1_0_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_1_0); // @[Issue.scala 219:24]
  wire [1:0] _GEN_1357 = 6'h1 == bufInfo_1_phy_rs2 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1358 = 6'h2 == bufInfo_1_phy_rs2 ? io_irgLog_2 : _GEN_1357; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1359 = 6'h3 == bufInfo_1_phy_rs2 ? io_irgLog_3 : _GEN_1358; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1360 = 6'h4 == bufInfo_1_phy_rs2 ? io_irgLog_4 : _GEN_1359; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1361 = 6'h5 == bufInfo_1_phy_rs2 ? io_irgLog_5 : _GEN_1360; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1362 = 6'h6 == bufInfo_1_phy_rs2 ? io_irgLog_6 : _GEN_1361; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1363 = 6'h7 == bufInfo_1_phy_rs2 ? io_irgLog_7 : _GEN_1362; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1364 = 6'h8 == bufInfo_1_phy_rs2 ? io_irgLog_8 : _GEN_1363; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1365 = 6'h9 == bufInfo_1_phy_rs2 ? io_irgLog_9 : _GEN_1364; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1366 = 6'ha == bufInfo_1_phy_rs2 ? io_irgLog_10 : _GEN_1365; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1367 = 6'hb == bufInfo_1_phy_rs2 ? io_irgLog_11 : _GEN_1366; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1368 = 6'hc == bufInfo_1_phy_rs2 ? io_irgLog_12 : _GEN_1367; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1369 = 6'hd == bufInfo_1_phy_rs2 ? io_irgLog_13 : _GEN_1368; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1370 = 6'he == bufInfo_1_phy_rs2 ? io_irgLog_14 : _GEN_1369; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1371 = 6'hf == bufInfo_1_phy_rs2 ? io_irgLog_15 : _GEN_1370; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1372 = 6'h10 == bufInfo_1_phy_rs2 ? io_irgLog_16 : _GEN_1371; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1373 = 6'h11 == bufInfo_1_phy_rs2 ? io_irgLog_17 : _GEN_1372; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1374 = 6'h12 == bufInfo_1_phy_rs2 ? io_irgLog_18 : _GEN_1373; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1375 = 6'h13 == bufInfo_1_phy_rs2 ? io_irgLog_19 : _GEN_1374; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1376 = 6'h14 == bufInfo_1_phy_rs2 ? io_irgLog_20 : _GEN_1375; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1377 = 6'h15 == bufInfo_1_phy_rs2 ? io_irgLog_21 : _GEN_1376; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1378 = 6'h16 == bufInfo_1_phy_rs2 ? io_irgLog_22 : _GEN_1377; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1379 = 6'h17 == bufInfo_1_phy_rs2 ? io_irgLog_23 : _GEN_1378; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1380 = 6'h18 == bufInfo_1_phy_rs2 ? io_irgLog_24 : _GEN_1379; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1381 = 6'h19 == bufInfo_1_phy_rs2 ? io_irgLog_25 : _GEN_1380; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1382 = 6'h1a == bufInfo_1_phy_rs2 ? io_irgLog_26 : _GEN_1381; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1383 = 6'h1b == bufInfo_1_phy_rs2 ? io_irgLog_27 : _GEN_1382; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1384 = 6'h1c == bufInfo_1_phy_rs2 ? io_irgLog_28 : _GEN_1383; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1385 = 6'h1d == bufInfo_1_phy_rs2 ? io_irgLog_29 : _GEN_1384; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1386 = 6'h1e == bufInfo_1_phy_rs2 ? io_irgLog_30 : _GEN_1385; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1387 = 6'h1f == bufInfo_1_phy_rs2 ? io_irgLog_31 : _GEN_1386; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1388 = 6'h20 == bufInfo_1_phy_rs2 ? io_irgLog_32 : _GEN_1387; // @[Issue.scala 222:{37,37}]
  wire [1:0] _GEN_1389 = 6'h21 == bufInfo_1_phy_rs2 ? 2'h3 : _GEN_1388; // @[Issue.scala 222:{37,37}]
  wire  _canIOpReq_1_1_T = _GEN_1389 == 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 = _canIOpReq_1_1_T_4 & ~(io_irgRsp_0_valid & io_irgRsp_0_bits_phy == bufReqNum_1_1); // @[Issue.scala 224:24]
  wire [1:0] _GEN_1391 = 6'h1 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1392 = 6'h2 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_2 : _GEN_1391; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1393 = 6'h3 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_3 : _GEN_1392; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1394 = 6'h4 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_4 : _GEN_1393; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1395 = 6'h5 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_5 : _GEN_1394; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1396 = 6'h6 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_6 : _GEN_1395; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1397 = 6'h7 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_7 : _GEN_1396; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1398 = 6'h8 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_8 : _GEN_1397; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1399 = 6'h9 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_9 : _GEN_1398; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1400 = 6'ha == io_dptReq_0_bits_phy_rs1 ? io_irgLog_10 : _GEN_1399; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1401 = 6'hb == io_dptReq_0_bits_phy_rs1 ? io_irgLog_11 : _GEN_1400; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1402 = 6'hc == io_dptReq_0_bits_phy_rs1 ? io_irgLog_12 : _GEN_1401; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1403 = 6'hd == io_dptReq_0_bits_phy_rs1 ? io_irgLog_13 : _GEN_1402; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1404 = 6'he == io_dptReq_0_bits_phy_rs1 ? io_irgLog_14 : _GEN_1403; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1405 = 6'hf == io_dptReq_0_bits_phy_rs1 ? io_irgLog_15 : _GEN_1404; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1406 = 6'h10 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_16 : _GEN_1405; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1407 = 6'h11 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_17 : _GEN_1406; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1408 = 6'h12 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_18 : _GEN_1407; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1409 = 6'h13 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_19 : _GEN_1408; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1410 = 6'h14 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_20 : _GEN_1409; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1411 = 6'h15 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_21 : _GEN_1410; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1412 = 6'h16 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_22 : _GEN_1411; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1413 = 6'h17 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_23 : _GEN_1412; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1414 = 6'h18 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_24 : _GEN_1413; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1415 = 6'h19 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_25 : _GEN_1414; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1416 = 6'h1a == io_dptReq_0_bits_phy_rs1 ? io_irgLog_26 : _GEN_1415; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1417 = 6'h1b == io_dptReq_0_bits_phy_rs1 ? io_irgLog_27 : _GEN_1416; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1418 = 6'h1c == io_dptReq_0_bits_phy_rs1 ? io_irgLog_28 : _GEN_1417; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1419 = 6'h1d == io_dptReq_0_bits_phy_rs1 ? io_irgLog_29 : _GEN_1418; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1420 = 6'h1e == io_dptReq_0_bits_phy_rs1 ? io_irgLog_30 : _GEN_1419; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1421 = 6'h1f == io_dptReq_0_bits_phy_rs1 ? io_irgLog_31 : _GEN_1420; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1422 = 6'h20 == io_dptReq_0_bits_phy_rs1 ? io_irgLog_32 : _GEN_1421; // @[Issue.scala 232:{44,44}]
  wire [1:0] _GEN_1423 = 6'h21 == io_dptReq_0_bits_phy_rs1 ? 2'h3 : _GEN_1422; // @[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_1423 == 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_1425 = 6'h1 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_1 : io_irgLog_0; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1426 = 6'h2 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_2 : _GEN_1425; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1427 = 6'h3 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_3 : _GEN_1426; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1428 = 6'h4 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_4 : _GEN_1427; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1429 = 6'h5 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_5 : _GEN_1428; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1430 = 6'h6 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_6 : _GEN_1429; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1431 = 6'h7 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_7 : _GEN_1430; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1432 = 6'h8 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_8 : _GEN_1431; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1433 = 6'h9 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_9 : _GEN_1432; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1434 = 6'ha == io_dptReq_0_bits_phy_rs2 ? io_irgLog_10 : _GEN_1433; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1435 = 6'hb == io_dptReq_0_bits_phy_rs2 ? io_irgLog_11 : _GEN_1434; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1436 = 6'hc == io_dptReq_0_bits_phy_rs2 ? io_irgLog_12 : _GEN_1435; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1437 = 6'hd == io_dptReq_0_bits_phy_rs2 ? io_irgLog_13 : _GEN_1436; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1438 = 6'he == io_dptReq_0_bits_phy_rs2 ? io_irgLog_14 : _GEN_1437; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1439 = 6'hf == io_dptReq_0_bits_phy_rs2 ? io_irgLog_15 : _GEN_1438; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1440 = 6'h10 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_16 : _GEN_1439; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1441 = 6'h11 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_17 : _GEN_1440; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1442 = 6'h12 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_18 : _GEN_1441; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1443 = 6'h13 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_19 : _GEN_1442; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1444 = 6'h14 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_20 : _GEN_1443; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1445 = 6'h15 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_21 : _GEN_1444; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1446 = 6'h16 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_22 : _GEN_1445; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1447 = 6'h17 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_23 : _GEN_1446; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1448 = 6'h18 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_24 : _GEN_1447; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1449 = 6'h19 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_25 : _GEN_1448; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1450 = 6'h1a == io_dptReq_0_bits_phy_rs2 ? io_irgLog_26 : _GEN_1449; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1451 = 6'h1b == io_dptReq_0_bits_phy_rs2 ? io_irgLog_27 : _GEN_1450; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1452 = 6'h1c == io_dptReq_0_bits_phy_rs2 ? io_irgLog_28 : _GEN_1451; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1453 = 6'h1d == io_dptReq_0_bits_phy_rs2 ? io_irgLog_29 : _GEN_1452; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1454 = 6'h1e == io_dptReq_0_bits_phy_rs2 ? io_irgLog_30 : _GEN_1453; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1455 = 6'h1f == io_dptReq_0_bits_phy_rs2 ? io_irgLog_31 : _GEN_1454; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1456 = 6'h20 == io_dptReq_0_bits_phy_rs2 ? io_irgLog_32 : _GEN_1455; // @[Issue.scala 238:{44,44}]
  wire [1:0] _GEN_1457 = 6'h21 == io_dptReq_0_bits_phy_rs2 ? 2'h3 : _GEN_1456; // @[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_1457 == 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 = _io_dptReq_0_ready_T_1 | ~canIOpReq_1_0; // @[Issue.scala 256:49]
  wire  maskCondSelIRS2_0_1 = _io_dptReq_0_ready_T_1 | ~canIOpReq_1_1; // @[Issue.scala 257:49]
  wire  _maskCondSelIRS1_0_2_T_1 = ~_T; // @[Issue.scala 260:45]
  wire  maskCondSelIRS1_0_2 = ~_T | ~canIOpPostReq_0_0; // @[Issue.scala 260:64]
  wire  maskCondSelIRS2_0_2 = _maskCondSelIRS1_0_2_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__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__2_0 = ~maskCondSelIRS1_0_0 | maskCondSelIRS1_0_2; // @[Issue.scala 200:60]
  wire  matrixOut__2_1 = ~maskCondSelIRS1_0_1 | maskCondSelIRS1_0_2; // @[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_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_2_0 = ~maskCondSelIRS2_0_0 | maskCondSelIRS2_0_2; // @[Issue.scala 200:60]
  wire  matrixOut_1_2_1 = ~maskCondSelIRS2_0_1 | maskCondSelIRS2_0_2; // @[Issue.scala 200:60]
  wire  _T_27 = matrixOut__0_0 & matrixOut__0_1 & maskCondSelIRS1_0_0 & (matrixOut__1_0 & matrixOut__1_1 &
    maskCondSelIRS1_0_1) & (matrixOut__2_0 & matrixOut__2_1 & maskCondSelIRS1_0_2); // @[Issue.scala 277:32]
  wire  _T_33 = ~matrixOut__0_0 & ~matrixOut__0_1 & _matrixOut_0_0_T; // @[Issue.scala 278:66]
  wire  _T_39 = ~matrixOut__1_0 & ~matrixOut__1_1 & _matrixOut_0_1_T; // @[Issue.scala 278:66]
  wire  _T_45 = ~matrixOut__2_0 & ~matrixOut__2_1 & _matrixOut_0_2_T; // @[Issue.scala 278:66]
  wire [1:0] _T_46 = _T_39 + _T_45; // @[Bitwise.scala 51:90]
  wire [1:0] _GEN_204 = {{1'd0}, _T_33}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_48 = _GEN_204 + _T_46; // @[Bitwise.scala 51:90]
  wire  _T_50 = _T_48[1:0] == 2'h1; // @[Issue.scala 278:101]
  wire  _T_51 = matrixOut__0_0 & matrixOut__0_1 & maskCondSelIRS1_0_0 & (matrixOut__1_0 & matrixOut__1_1 &
    maskCondSelIRS1_0_1) & (matrixOut__2_0 & matrixOut__2_1 & maskCondSelIRS1_0_2) | _T_50; // @[Issue.scala 277:92]
  wire  _T_53 = ~reset; // @[Issue.scala 276:11]
  wire  _T_75 = matrixOut_1_0_0 & matrixOut_1_0_1 & maskCondSelIRS2_0_0 & (matrixOut_1_1_0 & matrixOut_1_1_1 &
    maskCondSelIRS2_0_1) & (matrixOut_1_2_0 & matrixOut_1_2_1 & maskCondSelIRS2_0_2); // @[Issue.scala 282:32]
  wire  _T_81 = ~matrixOut_1_0_0 & ~matrixOut_1_0_1 & _matrixOut_0_0_T_3; // @[Issue.scala 283:66]
  wire  _T_87 = ~matrixOut_1_1_0 & ~matrixOut_1_1_1 & _matrixOut_0_1_T_3; // @[Issue.scala 283:66]
  wire  _T_93 = ~matrixOut_1_2_0 & ~matrixOut_1_2_1 & _matrixOut_0_2_T_3; // @[Issue.scala 283:66]
  wire [1:0] _T_94 = _T_87 + _T_93; // @[Bitwise.scala 51:90]
  wire [1:0] _GEN_205 = {{1'd0}, _T_81}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_96 = _GEN_205 + _T_94; // @[Bitwise.scala 51:90]
  wire  _T_98 = _T_96[1:0] == 2'h1; // @[Issue.scala 283:101]
  wire  _T_99 = matrixOut_1_0_0 & matrixOut_1_0_1 & maskCondSelIRS2_0_0 & (matrixOut_1_1_0 & matrixOut_1_1_1 &
    maskCondSelIRS2_0_1) & (matrixOut_1_2_0 & matrixOut_1_2_1 & maskCondSelIRS2_0_2) | _T_98; // @[Issue.scala 282:93]
  wire [5:0] _selIRS1_0_T_18 = _T_33 ? bufReqNum_0_0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_0_T_19 = _T_39 ? bufReqNum_1_0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_0_T_20 = _T_45 ? io_dptReq_0_bits_phy_rs1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS1_0_T_21 = _selIRS1_0_T_18 | _selIRS1_0_T_19; // @[Mux.scala 27:73]
  wire [5:0] selIRS1_0 = _selIRS1_0_T_21 | _selIRS1_0_T_20; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_18 = _T_81 ? bufReqNum_0_1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_19 = _T_87 ? bufReqNum_1_1 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_20 = _T_93 ? io_dptReq_0_bits_phy_rs2 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _selIRS2_0_T_21 = _selIRS2_0_T_18 | _selIRS2_0_T_19; // @[Mux.scala 27:73]
  wire [5:0] selIRS2_0 = _selIRS2_0_T_21 | _selIRS2_0_T_20; // @[Mux.scala 27:73]
  wire  _rIOpNum_0_T = ~_T_27; // @[Issue.scala 313:28]
  wire  _rIOpNum_0_T_1 = ~_T_75; // @[Issue.scala 313:68]
  wire [5:0] _rIOpNum_0_T_2 = ~_T_75 ? selIRS2_0 : 6'h21; // @[Issue.scala 313: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  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_2 = _maskCondSelIRS1_0_2_T_1 | ~canFOpPostReq_0_0; // @[Issue.scala 392:64]
  wire  maskCondSelFRS2_0_2 = _maskCondSelIRS1_0_2_T_1 | ~canFOpPostReq_0_1; // @[Issue.scala 393:64]
  wire  maskCondSelFRS3_0_2 = _maskCondSelIRS1_0_2_T_1 | ~canFOpPostReq_0_2; // @[Issue.scala 394:64]
  wire  _matrixOut_0_2_T_6 = ~maskCondSelFRS1_0_2; // @[Issue.scala 200:46]
  wire  _matrixOut_0_2_T_9 = ~maskCondSelFRS2_0_2; // @[Issue.scala 200:46]
  wire  _matrixOut_0_2_T_12 = ~maskCondSelFRS3_0_2; // @[Issue.scala 200:46]
  wire  _T_141 = _matrixOut_0_2_T_6 & _matrixOut_0_2_T_6 & _matrixOut_0_2_T_6; // @[Issue.scala 414:66]
  wire [1:0] _T_142 = {{1'd0}, _T_141}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_144 = {{1'd0}, _T_142}; // @[Bitwise.scala 51:90]
  wire  _T_146 = _T_144[1:0] == 2'h1; // @[Issue.scala 414:101]
  wire  _T_147 = maskCondSelFRS1_0_2 | _T_146; // @[Issue.scala 413:92]
  wire  _T_189 = _matrixOut_0_2_T_9 & _matrixOut_0_2_T_9 & _matrixOut_0_2_T_9; // @[Issue.scala 419:66]
  wire [1:0] _T_190 = {{1'd0}, _T_189}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_192 = {{1'd0}, _T_190}; // @[Bitwise.scala 51:90]
  wire  _T_194 = _T_192[1:0] == 2'h1; // @[Issue.scala 419:101]
  wire  _T_195 = maskCondSelFRS2_0_2 | _T_194; // @[Issue.scala 418:93]
  wire  _T_237 = _matrixOut_0_2_T_12 & _matrixOut_0_2_T_12 & _matrixOut_0_2_T_12; // @[Issue.scala 424:66]
  wire [1:0] _T_238 = {{1'd0}, _T_237}; // @[Bitwise.scala 51:90]
  wire [2:0] _T_240 = {{1'd0}, _T_238}; // @[Bitwise.scala 51:90]
  wire  _T_242 = _T_240[1:0] == 2'h1; // @[Issue.scala 424:101]
  wire  _T_243 = maskCondSelFRS3_0_2 | _T_242; // @[Issue.scala 423:93]
  wire  _GEN_1764 = bufValid_0 & bufReqNum_0_0 == io_irgRsp_0_bits_phy | _GEN_1230; // @[Issue.scala 489:98 491:32]
  wire  _GEN_1766 = bufValid_0 & bufReqNum_0_1 == io_irgRsp_0_bits_phy | _GEN_1234; // @[Issue.scala 489:98 491:32]
  wire  _GEN_1768 = bufValid_1 & bufReqNum_1_0 == io_irgRsp_0_bits_phy | _GEN_1231; // @[Issue.scala 489:98 491:32]
  wire  _GEN_1770 = bufValid_1 & bufReqNum_1_1 == io_irgRsp_0_bits_phy | _GEN_1235; // @[Issue.scala 489:98 491:32]
  wire  postIsOpReady_0_0 = _canIOpReq_0_0_T_6 | isOpReady_0_0; // @[Mux.scala 101:16]
  wire  postIsOpReady_0_1 = _canIOpReq_0_1_T_6 | isOpReady_0_1; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_0_0 = _canIOpReq_0_0_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : bufOperator_0_0; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_0_1 = _canIOpReq_0_1_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : bufOperator_0_1; // @[Mux.scala 101:16]
  wire  postIsOpReady_1_0 = _canIOpReq_1_0_T_6 | isOpReady_1_0; // @[Mux.scala 101:16]
  wire  postIsOpReady_1_1 = _canIOpReq_1_1_T_6 | isOpReady_1_1; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_1_0 = _canIOpReq_1_0_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : bufOperator_1_0; // @[Mux.scala 101:16]
  wire [64:0] postBufOperator_1_1 = _canIOpReq_1_1_T_6 ? {{1'd0}, io_irgRsp_0_bits_op} : bufOperator_1_1; // @[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_206 = {{1'd0}, _aluIssInfo_res_param_dat_op1_T_1}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_32 = _GEN_206 | _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_207 = {{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_207; // @[Mux.scala 27:73]
  wire [63:0] _GEN_208 = {{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_208; // @[Mux.scala 27:73]
  wire [63:0] _GEN_209 = {{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_209; // @[Mux.scala 27:73]
  wire [63:0] _GEN_210 = {{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_210; // @[Mux.scala 27:73]
  wire [63:0] _GEN_211 = {{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_211; // @[Mux.scala 27:73]
  wire [63:0] _GEN_212 = {{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_212; // @[Mux.scala 27:73]
  wire [64:0] _GEN_213 = {{1'd0}, _aluIssInfo_res_param_dat_op2_T_56}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_57 = _GEN_213 | _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_214 = {{1'd0}, _aluIssInfo_res_param_dat_op1_T_62}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op1_T_93 = _GEN_214 | _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_215 = {{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_215; // @[Mux.scala 27:73]
  wire [63:0] _GEN_216 = {{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_216; // @[Mux.scala 27:73]
  wire [63:0] _GEN_217 = {{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_217; // @[Mux.scala 27:73]
  wire [63:0] _GEN_218 = {{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_218; // @[Mux.scala 27:73]
  wire [63:0] _GEN_219 = {{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_219; // @[Mux.scala 27:73]
  wire [63:0] _GEN_220 = {{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_220; // @[Mux.scala 27:73]
  wire [64:0] _GEN_221 = {{1'd0}, _aluIssInfo_res_param_dat_op2_T_129}; // @[Mux.scala 27:73]
  wire [64:0] _aluIssInfo_res_param_dat_op2_T_130 = _GEN_221 | _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  _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 = _io_dptReq_0_ready_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  matrixOut_5_0_0 = ageMatrixW_0_0 & ~maskCondAluIss_0_0 | maskCondAluIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_5_0_1 = ageMatrixW_0_1 & ~maskCondAluIss_0_1 | maskCondAluIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_5_1_0 = ageMatrixR_1_0 & ~maskCondAluIss_0_0 | maskCondAluIss_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_5_1_1 = ageMatrixW_1_1 & ~maskCondAluIss_0_1 | maskCondAluIss_0_1; // @[Issue.scala 200:60]
  wire  _T_300 = matrixOut_5_0_0 & matrixOut_5_0_1 & (matrixOut_5_1_0 & matrixOut_5_1_1); // @[Issue.scala 628:31]
  wire  _T_304 = ~matrixOut_5_0_0 & ~matrixOut_5_0_1; // @[Issue.scala 629:65]
  wire  _T_308 = ~matrixOut_5_1_0 & ~matrixOut_5_1_1; // @[Issue.scala 629:65]
  wire [1:0] _T_309 = _T_304 + _T_308; // @[Bitwise.scala 51:90]
  wire  _T_311 = _T_309 == 2'h1; // @[Issue.scala 629:100]
  wire  _T_312 = matrixOut_5_0_0 & matrixOut_5_0_1 & (matrixOut_5_1_0 & matrixOut_5_1_1) | _T_311; // @[Issue.scala 628:92]
  wire  aluIssIdx_0 = _T_304 ? 1'h0 : 1'h1; // @[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_11 = _T_304 ? 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_12 = _T_308 ? aluIssInfo_1_param_dat_op2 : 64'h0; // @[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_14 = _T_304 ? 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_15 = _T_308 ? aluIssInfo_1_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssFifo_0_io_enq_bits_T_23 = _T_304 ? bufInfo_0_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _aluIssFifo_0_io_enq_bits_T_24 = _T_308 ? bufInfo_1_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire  _T_316 = aluIssFifo_0_io_enq_ready & aluIssFifo_0_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_318 = _T_316 & ~aluIssIdx_0; // @[Issue.scala 640:41]
  wire  _GEN_1804 = _T_316 & ~aluIssIdx_0 ? 1'h0 : bufValidDnxt_0_0; // @[Issue.scala 640:68 641:21 75:12]
  wire  _T_361 = _T_316 & aluIssIdx_0; // @[Issue.scala 640:41]
  wire  _GEN_1805 = _T_316 & aluIssIdx_0 ? 1'h0 : bufValidDnxt_0_1; // @[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 = _io_dptReq_0_ready_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  matrixOut_6_0_0 = ageMatrixW_0_0 & ~maskCondMulIss_0_0 | maskCondMulIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_6_0_1 = ageMatrixW_0_1 & ~maskCondMulIss_0_1 | maskCondMulIss_0_0; // @[Issue.scala 200:60]
  wire  matrixOut_6_1_0 = ageMatrixR_1_0 & ~maskCondMulIss_0_0 | maskCondMulIss_0_1; // @[Issue.scala 200:60]
  wire  matrixOut_6_1_1 = ageMatrixW_1_1 & ~maskCondMulIss_0_1 | maskCondMulIss_0_1; // @[Issue.scala 200:60]
  wire  _T_411 = matrixOut_6_0_0 & matrixOut_6_0_1 & (matrixOut_6_1_0 & matrixOut_6_1_1); // @[Issue.scala 693:33]
  wire  _T_415 = ~matrixOut_6_0_0 & ~matrixOut_6_0_1; // @[Issue.scala 694:67]
  wire  _T_419 = ~matrixOut_6_1_0 & ~matrixOut_6_1_1; // @[Issue.scala 694:67]
  wire [1:0] _T_420 = _T_415 + _T_419; // @[Bitwise.scala 51:90]
  wire  _T_422 = _T_420 == 2'h1; // @[Issue.scala 694:102]
  wire  _T_423 = matrixOut_6_0_0 & matrixOut_6_0_1 & (matrixOut_6_1_0 & matrixOut_6_1_1) | _T_422; // @[Issue.scala 693:95]
  wire  mulIssIdx_0 = _T_415 ? 1'h0 : 1'h1; // @[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_11 = _T_415 ? 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_12 = _T_419 ? mulIssInfo_1_param_dat_op2 : 64'h0; // @[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_14 = _T_415 ? 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_15 = _T_419 ? mulIssInfo_1_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _mulIssFifo_0_io_enq_bits_T_17 = _T_415 ? bufInfo_0_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _mulIssFifo_0_io_enq_bits_T_18 = _T_419 ? bufInfo_1_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire  _T_427 = mulIssFifo_0_io_enq_ready & mulIssFifo_0_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_429 = _T_427 & ~mulIssIdx_0; // @[Issue.scala 705:43]
  wire  _GEN_1806 = _T_427 & ~mulIssIdx_0 ? 1'h0 : _GEN_1804; // @[Issue.scala 705:70 706:23]
  wire  _T_454 = _T_427 & mulIssIdx_0; // @[Issue.scala 705:43]
  wire  _GEN_1807 = _T_427 & mulIssIdx_0 ? 1'h0 : _GEN_1805; // @[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 = _io_dptReq_0_ready_T_1 | _maskCondBruIss_1_T_8; // @[Issue.scala 751:20]
  wire  matrixOut_7_0_0 = ageMatrixW_0_0 & ~maskCondBruIss_0 | maskCondBruIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_7_0_1 = ageMatrixW_0_1 & ~maskCondBruIss_1 | maskCondBruIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_7_1_0 = ageMatrixR_1_0 & ~maskCondBruIss_0 | maskCondBruIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_7_1_1 = ageMatrixW_1_1 & ~maskCondBruIss_1 | maskCondBruIss_1; // @[Issue.scala 200:60]
  wire  _T_490 = ~matrixOut_7_0_0 & ~matrixOut_7_0_1; // @[Issue.scala 759:58]
  wire  _T_494 = ~matrixOut_7_1_0 & ~matrixOut_7_1_1; // @[Issue.scala 759:58]
  wire [1:0] _T_495 = _T_490 + _T_494; // @[Bitwise.scala 51:90]
  wire  _T_497 = _T_495 == 2'h1; // @[Issue.scala 759:92]
  wire  _T_498 = matrixOut_7_0_0 & matrixOut_7_0_1 & (matrixOut_7_1_0 & matrixOut_7_1_1) | _T_497; // @[Issue.scala 758:86]
  wire  bruIssIdx = _T_490 ? 1'h0 : 1'h1; // @[Issue.scala 762:39]
  wire  _bruIssFifo_io_enq_valid_T_5 = _T_490 & postIsOpReady_0_0 & postIsOpReady_0_1; // @[Issue.scala 765:115]
  wire  _bruIssFifo_io_enq_valid_T_11 = _T_494 & postIsOpReady_1_0 & postIsOpReady_1_1; // @[Issue.scala 765:115]
  wire [63:0] _bruIssFifo_io_enq_bits_T_15 = _bruIssFifo_io_enq_valid_T_5 ? mulIssInfo_0_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_16 = _bruIssFifo_io_enq_valid_T_11 ? mulIssInfo_1_param_dat_op2 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_18 = _bruIssFifo_io_enq_valid_T_5 ? mulIssInfo_0_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_19 = _bruIssFifo_io_enq_valid_T_11 ? mulIssInfo_1_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_21 = _bruIssFifo_io_enq_valid_T_5 ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_22 = _bruIssFifo_io_enq_valid_T_11 ? bufInfo_1_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_24 = _bruIssFifo_io_enq_valid_T_5 ? aluIssInfo_res_param_dat_op1_v64 : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _bruIssFifo_io_enq_bits_T_25 = _bruIssFifo_io_enq_valid_T_11 ? aluIssInfo_res_param_dat_op1_v64_1 : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _bruIssFifo_io_enq_bits_T_30 = _bruIssFifo_io_enq_valid_T_5 ? bufInfo_0_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _bruIssFifo_io_enq_bits_T_31 = _bruIssFifo_io_enq_valid_T_11 ? bufInfo_1_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire  _T_502 = bruIssFifo_io_enq_ready & bruIssFifo_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_504 = _T_502 & ~bruIssIdx; // @[Issue.scala 771:34]
  wire  _T_524 = _T_502 & bruIssIdx; // @[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_222 = {{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_222; // @[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_223 = {{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_223; // @[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_224 = {{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_224; // @[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_225 = {{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_225; // @[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_226 = {{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_226; // @[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_227 = {{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_227; // @[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 = _io_dptReq_0_ready_T_1 | _maskCondCsrIss_1_T_6; // @[Issue.scala 817:20]
  wire  matrixOut_8_0_0 = ageMatrixW_0_0 & ~maskCondCsrIss_0 | maskCondCsrIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_8_0_1 = ageMatrixW_0_1 & ~maskCondCsrIss_1 | maskCondCsrIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_8_1_0 = ageMatrixR_1_0 & ~maskCondCsrIss_0 | maskCondCsrIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_8_1_1 = ageMatrixW_1_1 & ~maskCondCsrIss_1 | maskCondCsrIss_1; // @[Issue.scala 200:60]
  wire  _T_555 = ~matrixOut_8_0_0 & ~matrixOut_8_0_1; // @[Issue.scala 825:58]
  wire  _T_559 = ~matrixOut_8_1_0 & ~matrixOut_8_1_1; // @[Issue.scala 825:58]
  wire [1:0] _T_560 = _T_555 + _T_559; // @[Bitwise.scala 51:90]
  wire  _T_562 = _T_560 == 2'h1; // @[Issue.scala 825:92]
  wire  _T_563 = matrixOut_8_0_0 & matrixOut_8_0_1 & (matrixOut_8_1_0 & matrixOut_8_1_1) | _T_562; // @[Issue.scala 824:86]
  wire  csrIssIdx = _T_555 ? 1'h0 : 1'h1; // @[Issue.scala 828:39]
  wire  _csrIssFifo_io_enq_valid_T_5 = _T_555 & postIsOpReady_0_0 & postIsOpReady_0_1; // @[Issue.scala 831:115]
  wire  _csrIssFifo_io_enq_valid_T_11 = _T_559 & postIsOpReady_1_0 & postIsOpReady_1_1; // @[Issue.scala 831:115]
  wire [63:0] _csrIssFifo_io_enq_bits_T_15 = _csrIssFifo_io_enq_valid_T_5 ? bufInfo_0_param_imm : 64'h0; // @[Mux.scala 27:73]
  wire [63:0] _csrIssFifo_io_enq_bits_T_16 = _csrIssFifo_io_enq_valid_T_11 ? bufInfo_1_param_imm : 64'h0; // @[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_18 = _csrIssFifo_io_enq_valid_T_5 ? 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_19 = _csrIssFifo_io_enq_valid_T_11 ? csrIssInfo_1_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _csrIssFifo_io_enq_bits_T_21 = _csrIssFifo_io_enq_valid_T_5 ? bufInfo_0_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _csrIssFifo_io_enq_bits_T_22 = _csrIssFifo_io_enq_valid_T_11 ? bufInfo_1_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire  _T_567 = csrIssFifo_io_enq_ready & csrIssFifo_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_569 = _T_567 & ~csrIssIdx; // @[Issue.scala 837:34]
  wire  _T_587 = _T_567 & csrIssIdx; // @[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} : bufOperator_0_0; // @[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_228 = {{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_228); // @[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} : bufOperator_1_0; // @[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_230 = {{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_230); // @[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  _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 = _io_dptReq_0_ready_T_1 | _maskCondLsuIss_1_T_42; // @[Issue.scala 880:20]
  wire  matrixOut_9_0_0 = ageMatrixW_0_0 & ~maskCondLsuIss_0 | maskCondLsuIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_9_0_1 = ageMatrixW_0_1 & ~maskCondLsuIss_1 | maskCondLsuIss_0; // @[Issue.scala 200:60]
  wire  matrixOut_9_1_0 = ageMatrixR_1_0 & ~maskCondLsuIss_0 | maskCondLsuIss_1; // @[Issue.scala 200:60]
  wire  matrixOut_9_1_1 = ageMatrixW_1_1 & ~maskCondLsuIss_1 | maskCondLsuIss_1; // @[Issue.scala 200:60]
  wire  _T_616 = ~matrixOut_9_0_0 & ~matrixOut_9_0_1; // @[Issue.scala 888:58]
  wire  _T_620 = ~matrixOut_9_1_0 & ~matrixOut_9_1_1; // @[Issue.scala 888:58]
  wire [1:0] _T_621 = _T_616 + _T_620; // @[Bitwise.scala 51:90]
  wire  _T_623 = _T_621 == 2'h1; // @[Issue.scala 888:92]
  wire  _T_624 = matrixOut_9_0_0 & matrixOut_9_0_1 & (matrixOut_9_1_0 & matrixOut_9_1_1) | _T_623; // @[Issue.scala 887:86]
  wire  lsuIssIdx = _T_616 ? 1'h0 : 1'h1; // @[Issue.scala 891:39]
  wire  _lsuIssFifo_io_enq_valid_T_5 = _T_616 & postIsOpReady_0_0 & postIsOpReady_0_1; // @[Issue.scala 894:115]
  wire  _lsuIssFifo_io_enq_valid_T_11 = _T_620 & postIsOpReady_1_0 & postIsOpReady_1_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_15 = _lsuIssFifo_io_enq_valid_T_5 ? 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_16 = _lsuIssFifo_io_enq_valid_T_11 ? lsuIssInfo_1_param_dat_op2 : 64'h0; // @[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_18 = _lsuIssFifo_io_enq_valid_T_5 ? 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_19 = _lsuIssFifo_io_enq_valid_T_11 ? lsuIssInfo_1_param_dat_op1 : 64'h0; // @[Mux.scala 27:73]
  wire [5:0] _lsuIssFifo_io_enq_bits_T_21 = _lsuIssFifo_io_enq_valid_T_5 ? bufInfo_0_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire [5:0] _lsuIssFifo_io_enq_bits_T_22 = _lsuIssFifo_io_enq_valid_T_11 ? bufInfo_1_phy_rd0 : 6'h0; // @[Mux.scala 27:73]
  wire  _T_628 = lsuIssFifo_io_enq_ready & lsuIssFifo_io_enq_valid; // @[Decoupled.scala 52:35]
  wire  _T_630 = _T_628 & ~lsuIssIdx; // @[Issue.scala 900:34]
  wire  _T_684 = _T_628 & lsuIssIdx; // @[Issue.scala 900:34]
  wire  _GEN_238 = _T_318 & _T_53; // @[Issue.scala 642:15]
  wire  _GEN_247 = _T_361 & _T_53; // @[Issue.scala 642:15]
  wire  _GEN_257 = _T_429 & _T_53; // @[Issue.scala 707:17]
  wire  _GEN_266 = _T_454 & _T_53; // @[Issue.scala 707:17]
  wire  _GEN_276 = _T_504 & _T_53; // @[Issue.scala 773:13]
  wire  _GEN_285 = _T_524 & _T_53; // @[Issue.scala 773:13]
  wire  _GEN_295 = _T_569 & _T_53; // @[Issue.scala 839:13]
  wire  _GEN_304 = _T_587 & _T_53; // @[Issue.scala 839:13]
  wire  _GEN_314 = _T_630 & _T_53; // @[Issue.scala 902:13]
  wire  _GEN_323 = _T_684 & _T_53; // @[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_27 ? selIRS1_0 : _rIOpNum_0_T_2; // @[Issue.scala 313:26]
  assign aluIssFifo_0_clock = clock;
  assign aluIssFifo_0_reset = io_flush | reset; // @[Issue.scala 648:39]
  assign aluIssFifo_0_io_enq_valid = ~_T_300; // @[Issue.scala 634:37]
  assign aluIssFifo_0_io_enq_bits_fun_add = _T_304 & aluIssInfo_0_fun_add | _T_308 & aluIssInfo_1_fun_add; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_slt = _T_304 & aluIssInfo_0_fun_slt | _T_308 & aluIssInfo_1_fun_slt; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_xor = _T_304 & aluIssInfo_0_fun_xor | _T_308 & aluIssInfo_1_fun_xor; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_or = _T_304 & aluIssInfo_0_fun_or | _T_308 & aluIssInfo_1_fun_or; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_and = _T_304 & aluIssInfo_0_fun_and | _T_308 & aluIssInfo_1_fun_and; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_sll = _T_304 & aluIssInfo_0_fun_sll | _T_308 & aluIssInfo_1_fun_sll; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_srl = _T_304 & aluIssInfo_0_fun_srl | _T_308 & aluIssInfo_1_fun_srl; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_fun_sra = _T_304 & aluIssInfo_0_fun_sra | _T_308 & aluIssInfo_1_fun_sra; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_param_rd0 = _aluIssFifo_0_io_enq_bits_T_23 | _aluIssFifo_0_io_enq_bits_T_24; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_param_is_32w = _T_304 & aluIssInfo_0_param_is_32w | _T_308 & aluIssInfo_1_param_is_32w
    ; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_param_is_usi = _T_304 & aluIssInfo_0_param_is_usi | _T_308 & aluIssInfo_1_param_is_usi
    ; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_param_dat_op1 = _aluIssFifo_0_io_enq_bits_T_14 | _aluIssFifo_0_io_enq_bits_T_15; // @[Mux.scala 27:73]
  assign aluIssFifo_0_io_enq_bits_param_dat_op2 = _aluIssFifo_0_io_enq_bits_T_11 | _aluIssFifo_0_io_enq_bits_T_12; // @[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_411; // @[Issue.scala 699:39]
  assign mulIssFifo_0_io_enq_bits_fun_mul = _T_415 & bufInfo_0_mul_isa_mul | _T_419 & bufInfo_1_mul_isa_mul; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_mulh = _T_415 & bufInfo_0_mul_isa_mulh | _T_419 & bufInfo_1_mul_isa_mulh; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_mulhsu = _T_415 & bufInfo_0_mul_isa_mulhsu | _T_419 & bufInfo_1_mul_isa_mulhsu; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_mulhu = _T_415 & bufInfo_0_mul_isa_mulhu | _T_419 & bufInfo_1_mul_isa_mulhu; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_div = _T_415 & bufInfo_0_mul_isa_div | _T_419 & bufInfo_1_mul_isa_div; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_divu = _T_415 & bufInfo_0_mul_isa_divu | _T_419 & bufInfo_1_mul_isa_divu; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_rem = _T_415 & bufInfo_0_mul_isa_rem | _T_419 & bufInfo_1_mul_isa_rem; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_remu = _T_415 & bufInfo_0_mul_isa_remu | _T_419 & bufInfo_1_mul_isa_remu; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_mulw = _T_415 & bufInfo_0_mul_isa_mulw | _T_419 & bufInfo_1_mul_isa_mulw; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_divw = _T_415 & bufInfo_0_mul_isa_divw | _T_419 & bufInfo_1_mul_isa_divw; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_divuw = _T_415 & bufInfo_0_mul_isa_divuw | _T_419 & bufInfo_1_mul_isa_divuw; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_remw = _T_415 & bufInfo_0_mul_isa_remw | _T_419 & bufInfo_1_mul_isa_remw; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_fun_remuw = _T_415 & bufInfo_0_mul_isa_remuw | _T_419 & bufInfo_1_mul_isa_remuw; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_param_rd0 = _mulIssFifo_0_io_enq_bits_T_17 | _mulIssFifo_0_io_enq_bits_T_18; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_param_dat_op1 = _mulIssFifo_0_io_enq_bits_T_14 | _mulIssFifo_0_io_enq_bits_T_15; // @[Mux.scala 27:73]
  assign mulIssFifo_0_io_enq_bits_param_dat_op2 = _mulIssFifo_0_io_enq_bits_T_11 | _mulIssFifo_0_io_enq_bits_T_12; // @[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_490 & postIsOpReady_0_0 & postIsOpReady_0_1 | _T_494 & postIsOpReady_1_0 &
    postIsOpReady_1_1; // @[Issue.scala 765:149]
  assign bruIssFifo_io_enq_bits_fun_jalr = _bruIssFifo_io_enq_valid_T_5 & bufInfo_0_bru_isa_jalr |
    _bruIssFifo_io_enq_valid_T_11 & bufInfo_1_bru_isa_jalr; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_beq = _bruIssFifo_io_enq_valid_T_5 & bufInfo_0_bru_isa_beq |
    _bruIssFifo_io_enq_valid_T_11 & bufInfo_1_bru_isa_beq; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_bne = _bruIssFifo_io_enq_valid_T_5 & bufInfo_0_bru_isa_bne |
    _bruIssFifo_io_enq_valid_T_11 & bufInfo_1_bru_isa_bne; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_blt = _bruIssFifo_io_enq_valid_T_5 & bufInfo_0_bru_isa_blt |
    _bruIssFifo_io_enq_valid_T_11 & bufInfo_1_bru_isa_blt; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_bge = _bruIssFifo_io_enq_valid_T_5 & bufInfo_0_bru_isa_bge |
    _bruIssFifo_io_enq_valid_T_11 & bufInfo_1_bru_isa_bge; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_bltu = _bruIssFifo_io_enq_valid_T_5 & bufInfo_0_bru_isa_bltu |
    _bruIssFifo_io_enq_valid_T_11 & bufInfo_1_bru_isa_bltu; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_fun_bgeu = _bruIssFifo_io_enq_valid_T_5 & bufInfo_0_bru_isa_bgeu |
    _bruIssFifo_io_enq_valid_T_11 & bufInfo_1_bru_isa_bgeu; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_rd0 = _bruIssFifo_io_enq_bits_T_30 | _bruIssFifo_io_enq_bits_T_31; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_is_rvc = _bruIssFifo_io_enq_valid_T_5 & bufInfo_0_param_is_rvc |
    _bruIssFifo_io_enq_valid_T_11 & bufInfo_1_param_is_rvc; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_pc = _bruIssFifo_io_enq_bits_T_24 | _bruIssFifo_io_enq_bits_T_25; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_imm = _bruIssFifo_io_enq_bits_T_21 | _bruIssFifo_io_enq_bits_T_22; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_dat_op1 = _bruIssFifo_io_enq_bits_T_18 | _bruIssFifo_io_enq_bits_T_19; // @[Mux.scala 27:73]
  assign bruIssFifo_io_enq_bits_param_dat_op2 = _bruIssFifo_io_enq_bits_T_15 | _bruIssFifo_io_enq_bits_T_16; // @[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_555 & postIsOpReady_0_0 & postIsOpReady_0_1 | _T_559 & postIsOpReady_1_0 &
    postIsOpReady_1_1; // @[Issue.scala 831:149]
  assign csrIssFifo_io_enq_bits_fun_rw = _csrIssFifo_io_enq_valid_T_5 & csrIssInfo_0_fun_rw |
    _csrIssFifo_io_enq_valid_T_11 & csrIssInfo_1_fun_rw; // @[Mux.scala 27:73]
  assign csrIssFifo_io_enq_bits_fun_rs = _csrIssFifo_io_enq_valid_T_5 & csrIssInfo_0_fun_rs |
    _csrIssFifo_io_enq_valid_T_11 & csrIssInfo_1_fun_rs; // @[Mux.scala 27:73]
  assign csrIssFifo_io_enq_bits_fun_rc = _csrIssFifo_io_enq_valid_T_5 & csrIssInfo_0_fun_rc |
    _csrIssFifo_io_enq_valid_T_11 & csrIssInfo_1_fun_rc; // @[Mux.scala 27:73]
  assign csrIssFifo_io_enq_bits_param_rd0 = _csrIssFifo_io_enq_bits_T_21 | _csrIssFifo_io_enq_bits_T_22; // @[Mux.scala 27:73]
  assign csrIssFifo_io_enq_bits_param_dat_op1 = _csrIssFifo_io_enq_bits_T_18 | _csrIssFifo_io_enq_bits_T_19; // @[Mux.scala 27:73]
  assign csrIssFifo_io_enq_bits_param_dat_op2 = _csrIssFifo_io_enq_bits_T_15 | _csrIssFifo_io_enq_bits_T_16; // @[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_616 & postIsOpReady_0_0 & postIsOpReady_0_1 | _T_620 & postIsOpReady_1_0 &
    postIsOpReady_1_1; // @[Issue.scala 894:149]
  assign lsuIssFifo_io_enq_bits_fun_lb = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_lb |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_lb; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lh = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_lh |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_lh; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lw = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_lw |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_lw; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_ld = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_ld |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_ld; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lbu = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_lbu |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_lbu; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lhu = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_lhu |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_lhu; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lwu = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_lwu |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_lwu; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sb = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_sb |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_sb; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sh = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_sh |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_sh; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sw = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_sw |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_sw; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sd = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_sd |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_sd; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_fence = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_fence |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_fence; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_fence_i = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_fence_i |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_fence_i; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sfence_vma = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_sfence_vma |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_sfence_vma; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lr_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_lr_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_lr_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sc_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_sc_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_sc_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoswap_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amoswap_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amoswap_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoadd_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amoadd_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amoadd_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoxor_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amoxor_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amoxor_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoand_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amoand_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amoand_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoor_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amoor_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amoor_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomin_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amomin_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amomin_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomax_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amomax_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amomax_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amominu_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amominu_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amominu_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomaxu_w = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amomaxu_w |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amomaxu_w; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_lr_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_lr_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_lr_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_sc_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_sc_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_sc_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoswap_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amoswap_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amoswap_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoadd_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amoadd_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amoadd_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoxor_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amoxor_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amoxor_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoand_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amoand_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amoand_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amoor_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amoor_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amoor_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomin_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amomin_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amomin_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomax_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amomax_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amomax_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amominu_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amominu_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amominu_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_amomaxu_d = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_amomaxu_d |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_amomaxu_d; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_flw = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_flw |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_flw; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_fsw = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_fsw |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_fsw; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_fld = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_fld |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_fld; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_fun_fsd = _lsuIssFifo_io_enq_valid_T_5 & bufInfo_0_lsu_isa_fsd |
    _lsuIssFifo_io_enq_valid_T_11 & bufInfo_1_lsu_isa_fsd; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_param_rd0 = _lsuIssFifo_io_enq_bits_T_21 | _lsuIssFifo_io_enq_bits_T_22; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_param_dat_op1 = _lsuIssFifo_io_enq_bits_T_18 | _lsuIssFifo_io_enq_bits_T_19; // @[Mux.scala 27:73]
  assign lsuIssFifo_io_enq_bits_param_dat_op2 = _lsuIssFifo_io_enq_bits_T_15 | _lsuIssFifo_io_enq_bits_T_16; // @[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_628 & ~lsuIssIdx) begin // @[Issue.scala 900:56]
      bufValid_0 <= 1'h0; // @[Issue.scala 901:19]
    end else if (_T_567 & ~csrIssIdx) begin // @[Issue.scala 837:56]
      bufValid_0 <= 1'h0; // @[Issue.scala 838:19]
    end else if (_T_502 & ~bruIssIdx) begin // @[Issue.scala 771:56]
      bufValid_0 <= 1'h0; // @[Issue.scala 772:19]
    end else begin
      bufValid_0 <= _GEN_1806;
    end
    if (reset) begin // @[Issue.scala 61:29]
      bufValid_1 <= 1'h0; // @[Issue.scala 61:29]
    end else if (_T_628 & lsuIssIdx) begin // @[Issue.scala 900:56]
      bufValid_1 <= 1'h0; // @[Issue.scala 901:19]
    end else if (_T_567 & csrIssIdx) begin // @[Issue.scala 837:56]
      bufValid_1 <= 1'h0; // @[Issue.scala 838:19]
    end else if (_T_502 & bruIssIdx) begin // @[Issue.scala 771:56]
      bufValid_1 <= 1'h0; // @[Issue.scala 772:19]
    end else begin
      bufValid_1 <= _GEN_1807;
    end
    if (!(io_flush)) begin // @[Issue.scala 86:22]
      if (_T) begin // @[Issue.scala 88:38]
        if (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (~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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_0_0 <= _GEN_1764;
    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_1200;
      end else if (~entrySel_0) begin // @[Issue.scala 125:36]
        isOpReady_0_0 <= 1'h0; // @[Issue.scala 125:36]
      end
    end
    if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_0_1 <= _GEN_1766;
    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_1210;
      end else if (~entrySel_0) begin // @[Issue.scala 131:36]
        isOpReady_0_1 <= 1'h0; // @[Issue.scala 131:36]
      end
    end
    if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_1_0 <= _GEN_1768;
    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_1201;
      end else if (entrySel_0) begin // @[Issue.scala 125:36]
        isOpReady_1_0 <= 1'h0; // @[Issue.scala 125:36]
      end
    end
    if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      isOpReady_1_1 <= _GEN_1770;
    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_1211;
      end else if (entrySel_0) begin // @[Issue.scala 131:36]
        isOpReady_1_1 <= 1'h0; // @[Issue.scala 131:36]
      end
    end
    if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      if (bufValid_0 & bufReqNum_0_0 == io_irgRsp_0_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_0_0 <= {{1'd0}, io_irgRsp_0_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_0_0 <= _GEN_1232;
      end
    end else begin
      bufOperator_0_0 <= _GEN_1232;
    end
    if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      if (bufValid_0 & bufReqNum_0_1 == io_irgRsp_0_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_0_1 <= {{1'd0}, io_irgRsp_0_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_0_1 <= _GEN_1236;
      end
    end else begin
      bufOperator_0_1 <= _GEN_1236;
    end
    if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      if (bufValid_1 & bufReqNum_1_0 == io_irgRsp_0_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_1_0 <= {{1'd0}, io_irgRsp_0_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_1_0 <= _GEN_1233;
      end
    end else begin
      bufOperator_1_0 <= _GEN_1233;
    end
    if (io_irgRsp_0_valid) begin // @[Issue.scala 486:33]
      if (bufValid_1 & bufReqNum_1_1 == io_irgRsp_0_bits_phy) begin // @[Issue.scala 489:98]
        bufOperator_1_1 <= {{1'd0}, io_irgRsp_0_bits_op}; // @[Issue.scala 492:32]
      end else begin
        bufOperator_1_1 <= _GEN_1237;
      end
    end else begin
      bufOperator_1_1 <= _GEN_1237;
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (~entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_0_0 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_0_0 <= _GEN_1242;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_0_1 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_0_1 <= _GEN_1244;
      end
    end
    if (_T) begin // @[Issue.scala 170:31]
      if (entrySel_0) begin // @[Issue.scala 172:44]
        ageMatrixW_1_1 <= 1'h0; // @[Issue.scala 172:44]
      end else begin
        ageMatrixW_1_1 <= _GEN_1245;
      end
    end
    `ifndef SYNTHESIS
    `ifdef PRINTF_COND
      if (`PRINTF_COND) begin
    `endif
        if (~reset & ~_T_51) 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_51 & ~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_53 & ~_T_99) 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_99 & _T_53) 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_53 & ~_T_147) 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_147 & _T_53) 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_53 & ~_T_195) 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_195 & _T_53) 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_53 & ~_T_243) 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_243 & _T_53) 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_53 & ~_T_312) 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_312 & _T_53) 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_318 & _T_53 & _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_318 & _T_53)) 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_238 & _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_238) 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_238 & _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_238) 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_361 & _T_53 & _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_361 & _T_53)) 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_247 & _io_dptReq_0_ready_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 (_io_dptReq_0_ready_T_1 & _GEN_247) 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_247 & _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_247) 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_53 & ~_T_423) 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_423 & _T_53) 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_429 & _T_53 & _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_429 & _T_53)) 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_257 & _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_257) 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_257 & _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_257) 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_454 & _T_53 & _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_454 & _T_53)) 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_266 & _io_dptReq_0_ready_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 (_io_dptReq_0_ready_T_1 & _GEN_266) 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_266 & _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_266) 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_53 & ~_T_498) 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_498 & _T_53) 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_504 & _T_53 & _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_504 & _T_53)) 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_276 & _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_276) 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_276 & _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_276) 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_524 & _T_53 & _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_524 & _T_53)) 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_285 & _io_dptReq_0_ready_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 (_io_dptReq_0_ready_T_1 & _GEN_285) 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_285 & _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_285) 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_53 & ~_T_563) 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_563 & _T_53) 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_569 & _T_53 & _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_569 & _T_53)) 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_295 & _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_295) 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_295 & _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_295) 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_587 & _T_53 & _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_587 & _T_53)) 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_304 & _io_dptReq_0_ready_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 (_io_dptReq_0_ready_T_1 & _GEN_304) 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_304 & _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_304) 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_53 & ~_T_624) 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_624 & _T_53) 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_630 & _T_53 & _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_630 & _T_53)) 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_314 & _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_314) 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_314 & _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_314) 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_684 & _T_53 & _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_684 & _T_53)) 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_323 & _io_dptReq_0_ready_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 (_io_dptReq_0_ready_T_1 & _GEN_323) 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_323 & _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_323) 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}};
  bufInfo_0_alu_isa_lui = _RAND_2[0:0];
  _RAND_3 = {1{`RANDOM}};
  bufInfo_0_alu_isa_auipc = _RAND_3[0:0];
  _RAND_4 = {1{`RANDOM}};
  bufInfo_0_alu_isa_addi = _RAND_4[0:0];
  _RAND_5 = {1{`RANDOM}};
  bufInfo_0_alu_isa_addiw = _RAND_5[0:0];
  _RAND_6 = {1{`RANDOM}};
  bufInfo_0_alu_isa_slti = _RAND_6[0:0];
  _RAND_7 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sltiu = _RAND_7[0:0];
  _RAND_8 = {1{`RANDOM}};
  bufInfo_0_alu_isa_xori = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  bufInfo_0_alu_isa_ori = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  bufInfo_0_alu_isa_andi = _RAND_10[0:0];
  _RAND_11 = {1{`RANDOM}};
  bufInfo_0_alu_isa_slli = _RAND_11[0:0];
  _RAND_12 = {1{`RANDOM}};
  bufInfo_0_alu_isa_slliw = _RAND_12[0:0];
  _RAND_13 = {1{`RANDOM}};
  bufInfo_0_alu_isa_srli = _RAND_13[0:0];
  _RAND_14 = {1{`RANDOM}};
  bufInfo_0_alu_isa_srliw = _RAND_14[0:0];
  _RAND_15 = {1{`RANDOM}};
  bufInfo_0_alu_isa_srai = _RAND_15[0:0];
  _RAND_16 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sraiw = _RAND_16[0:0];
  _RAND_17 = {1{`RANDOM}};
  bufInfo_0_alu_isa_add = _RAND_17[0:0];
  _RAND_18 = {1{`RANDOM}};
  bufInfo_0_alu_isa_addw = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sub = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  bufInfo_0_alu_isa_subw = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sll = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sllw = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  bufInfo_0_alu_isa_slt = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sltu = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  bufInfo_0_alu_isa_xor = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  bufInfo_0_alu_isa_srl = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  bufInfo_0_alu_isa_srlw = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sra = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  bufInfo_0_alu_isa_sraw = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  bufInfo_0_alu_isa_or = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  bufInfo_0_alu_isa_and = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  bufInfo_0_alu_isa_wfi = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  bufInfo_0_bru_isa_jal = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  bufInfo_0_bru_isa_jalr = _RAND_34[0:0];
  _RAND_35 = {1{`RANDOM}};
  bufInfo_0_bru_isa_beq = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  bufInfo_0_bru_isa_bne = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  bufInfo_0_bru_isa_blt = _RAND_37[0:0];
  _RAND_38 = {1{`RANDOM}};
  bufInfo_0_bru_isa_bge = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  bufInfo_0_bru_isa_bltu = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  bufInfo_0_bru_isa_bgeu = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lb = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lh = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lw = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_ld = _RAND_44[0:0];
  _RAND_45 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lbu = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lhu = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lwu = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sb = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sh = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sw = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sd = _RAND_51[0:0];
  _RAND_52 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_fence = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_fence_i = _RAND_53[0:0];
  _RAND_54 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sfence_vma = _RAND_54[0:0];
  _RAND_55 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lr_w = _RAND_55[0:0];
  _RAND_56 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sc_w = _RAND_56[0:0];
  _RAND_57 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoswap_w = _RAND_57[0:0];
  _RAND_58 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoadd_w = _RAND_58[0:0];
  _RAND_59 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoxor_w = _RAND_59[0:0];
  _RAND_60 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoand_w = _RAND_60[0:0];
  _RAND_61 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoor_w = _RAND_61[0:0];
  _RAND_62 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomin_w = _RAND_62[0:0];
  _RAND_63 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomax_w = _RAND_63[0:0];
  _RAND_64 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amominu_w = _RAND_64[0:0];
  _RAND_65 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomaxu_w = _RAND_65[0:0];
  _RAND_66 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_lr_d = _RAND_66[0:0];
  _RAND_67 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_sc_d = _RAND_67[0:0];
  _RAND_68 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoswap_d = _RAND_68[0:0];
  _RAND_69 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoadd_d = _RAND_69[0:0];
  _RAND_70 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoxor_d = _RAND_70[0:0];
  _RAND_71 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoand_d = _RAND_71[0:0];
  _RAND_72 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amoor_d = _RAND_72[0:0];
  _RAND_73 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomin_d = _RAND_73[0:0];
  _RAND_74 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomax_d = _RAND_74[0:0];
  _RAND_75 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amominu_d = _RAND_75[0:0];
  _RAND_76 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_amomaxu_d = _RAND_76[0:0];
  _RAND_77 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_flw = _RAND_77[0:0];
  _RAND_78 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_fsw = _RAND_78[0:0];
  _RAND_79 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_fld = _RAND_79[0:0];
  _RAND_80 = {1{`RANDOM}};
  bufInfo_0_lsu_isa_fsd = _RAND_80[0:0];
  _RAND_81 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rw = _RAND_81[0:0];
  _RAND_82 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rs = _RAND_82[0:0];
  _RAND_83 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rc = _RAND_83[0:0];
  _RAND_84 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rwi = _RAND_84[0:0];
  _RAND_85 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rsi = _RAND_85[0:0];
  _RAND_86 = {1{`RANDOM}};
  bufInfo_0_csr_isa_rci = _RAND_86[0:0];
  _RAND_87 = {1{`RANDOM}};
  bufInfo_0_mul_isa_mul = _RAND_87[0:0];
  _RAND_88 = {1{`RANDOM}};
  bufInfo_0_mul_isa_mulh = _RAND_88[0:0];
  _RAND_89 = {1{`RANDOM}};
  bufInfo_0_mul_isa_mulhsu = _RAND_89[0:0];
  _RAND_90 = {1{`RANDOM}};
  bufInfo_0_mul_isa_mulhu = _RAND_90[0:0];
  _RAND_91 = {1{`RANDOM}};
  bufInfo_0_mul_isa_div = _RAND_91[0:0];
  _RAND_92 = {1{`RANDOM}};
  bufInfo_0_mul_isa_divu = _RAND_92[0:0];
  _RAND_93 = {1{`RANDOM}};
  bufInfo_0_mul_isa_rem = _RAND_93[0:0];
  _RAND_94 = {1{`RANDOM}};
  bufInfo_0_mul_isa_remu = _RAND_94[0:0];
  _RAND_95 = {1{`RANDOM}};
  bufInfo_0_mul_isa_mulw = _RAND_95[0:0];
  _RAND_96 = {1{`RANDOM}};
  bufInfo_0_mul_isa_divw = _RAND_96[0:0];
  _RAND_97 = {1{`RANDOM}};
  bufInfo_0_mul_isa_divuw = _RAND_97[0:0];
  _RAND_98 = {1{`RANDOM}};
  bufInfo_0_mul_isa_remw = _RAND_98[0:0];
  _RAND_99 = {1{`RANDOM}};
  bufInfo_0_mul_isa_remuw = _RAND_99[0:0];
  _RAND_100 = {1{`RANDOM}};
  bufInfo_0_param_is_rvc = _RAND_100[0:0];
  _RAND_101 = {2{`RANDOM}};
  bufInfo_0_param_pc = _RAND_101[38:0];
  _RAND_102 = {2{`RANDOM}};
  bufInfo_0_param_imm = _RAND_102[63:0];
  _RAND_103 = {1{`RANDOM}};
  bufInfo_0_param_raw_rs1 = _RAND_103[4:0];
  _RAND_104 = {1{`RANDOM}};
  bufInfo_0_phy_rs1 = _RAND_104[5:0];
  _RAND_105 = {1{`RANDOM}};
  bufInfo_0_phy_rs2 = _RAND_105[5:0];
  _RAND_106 = {1{`RANDOM}};
  bufInfo_0_phy_rs3 = _RAND_106[5:0];
  _RAND_107 = {1{`RANDOM}};
  bufInfo_0_phy_rd0 = _RAND_107[5:0];
  _RAND_108 = {1{`RANDOM}};
  bufInfo_1_alu_isa_lui = _RAND_108[0:0];
  _RAND_109 = {1{`RANDOM}};
  bufInfo_1_alu_isa_auipc = _RAND_109[0:0];
  _RAND_110 = {1{`RANDOM}};
  bufInfo_1_alu_isa_addi = _RAND_110[0:0];
  _RAND_111 = {1{`RANDOM}};
  bufInfo_1_alu_isa_addiw = _RAND_111[0:0];
  _RAND_112 = {1{`RANDOM}};
  bufInfo_1_alu_isa_slti = _RAND_112[0:0];
  _RAND_113 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sltiu = _RAND_113[0:0];
  _RAND_114 = {1{`RANDOM}};
  bufInfo_1_alu_isa_xori = _RAND_114[0:0];
  _RAND_115 = {1{`RANDOM}};
  bufInfo_1_alu_isa_ori = _RAND_115[0:0];
  _RAND_116 = {1{`RANDOM}};
  bufInfo_1_alu_isa_andi = _RAND_116[0:0];
  _RAND_117 = {1{`RANDOM}};
  bufInfo_1_alu_isa_slli = _RAND_117[0:0];
  _RAND_118 = {1{`RANDOM}};
  bufInfo_1_alu_isa_slliw = _RAND_118[0:0];
  _RAND_119 = {1{`RANDOM}};
  bufInfo_1_alu_isa_srli = _RAND_119[0:0];
  _RAND_120 = {1{`RANDOM}};
  bufInfo_1_alu_isa_srliw = _RAND_120[0:0];
  _RAND_121 = {1{`RANDOM}};
  bufInfo_1_alu_isa_srai = _RAND_121[0:0];
  _RAND_122 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sraiw = _RAND_122[0:0];
  _RAND_123 = {1{`RANDOM}};
  bufInfo_1_alu_isa_add = _RAND_123[0:0];
  _RAND_124 = {1{`RANDOM}};
  bufInfo_1_alu_isa_addw = _RAND_124[0:0];
  _RAND_125 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sub = _RAND_125[0:0];
  _RAND_126 = {1{`RANDOM}};
  bufInfo_1_alu_isa_subw = _RAND_126[0:0];
  _RAND_127 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sll = _RAND_127[0:0];
  _RAND_128 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sllw = _RAND_128[0:0];
  _RAND_129 = {1{`RANDOM}};
  bufInfo_1_alu_isa_slt = _RAND_129[0:0];
  _RAND_130 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sltu = _RAND_130[0:0];
  _RAND_131 = {1{`RANDOM}};
  bufInfo_1_alu_isa_xor = _RAND_131[0:0];
  _RAND_132 = {1{`RANDOM}};
  bufInfo_1_alu_isa_srl = _RAND_132[0:0];
  _RAND_133 = {1{`RANDOM}};
  bufInfo_1_alu_isa_srlw = _RAND_133[0:0];
  _RAND_134 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sra = _RAND_134[0:0];
  _RAND_135 = {1{`RANDOM}};
  bufInfo_1_alu_isa_sraw = _RAND_135[0:0];
  _RAND_136 = {1{`RANDOM}};
  bufInfo_1_alu_isa_or = _RAND_136[0:0];
  _RAND_137 = {1{`RANDOM}};
  bufInfo_1_alu_isa_and = _RAND_137[0:0];
  _RAND_138 = {1{`RANDOM}};
  bufInfo_1_alu_isa_wfi = _RAND_138[0:0];
  _RAND_139 = {1{`RANDOM}};
  bufInfo_1_bru_isa_jal = _RAND_139[0:0];
  _RAND_140 = {1{`RANDOM}};
  bufInfo_1_bru_isa_jalr = _RAND_140[0:0];
  _RAND_141 = {1{`RANDOM}};
  bufInfo_1_bru_isa_beq = _RAND_141[0:0];
  _RAND_142 = {1{`RANDOM}};
  bufInfo_1_bru_isa_bne = _RAND_142[0:0];
  _RAND_143 = {1{`RANDOM}};
  bufInfo_1_bru_isa_blt = _RAND_143[0:0];
  _RAND_144 = {1{`RANDOM}};
  bufInfo_1_bru_isa_bge = _RAND_144[0:0];
  _RAND_145 = {1{`RANDOM}};
  bufInfo_1_bru_isa_bltu = _RAND_145[0:0];
  _RAND_146 = {1{`RANDOM}};
  bufInfo_1_bru_isa_bgeu = _RAND_146[0:0];
  _RAND_147 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lb = _RAND_147[0:0];
  _RAND_148 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lh = _RAND_148[0:0];
  _RAND_149 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lw = _RAND_149[0:0];
  _RAND_150 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_ld = _RAND_150[0:0];
  _RAND_151 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lbu = _RAND_151[0:0];
  _RAND_152 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lhu = _RAND_152[0:0];
  _RAND_153 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lwu = _RAND_153[0:0];
  _RAND_154 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sb = _RAND_154[0:0];
  _RAND_155 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sh = _RAND_155[0:0];
  _RAND_156 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sw = _RAND_156[0:0];
  _RAND_157 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sd = _RAND_157[0:0];
  _RAND_158 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_fence = _RAND_158[0:0];
  _RAND_159 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_fence_i = _RAND_159[0:0];
  _RAND_160 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sfence_vma = _RAND_160[0:0];
  _RAND_161 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lr_w = _RAND_161[0:0];
  _RAND_162 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sc_w = _RAND_162[0:0];
  _RAND_163 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoswap_w = _RAND_163[0:0];
  _RAND_164 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoadd_w = _RAND_164[0:0];
  _RAND_165 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoxor_w = _RAND_165[0:0];
  _RAND_166 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoand_w = _RAND_166[0:0];
  _RAND_167 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoor_w = _RAND_167[0:0];
  _RAND_168 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomin_w = _RAND_168[0:0];
  _RAND_169 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomax_w = _RAND_169[0:0];
  _RAND_170 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amominu_w = _RAND_170[0:0];
  _RAND_171 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomaxu_w = _RAND_171[0:0];
  _RAND_172 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_lr_d = _RAND_172[0:0];
  _RAND_173 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_sc_d = _RAND_173[0:0];
  _RAND_174 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoswap_d = _RAND_174[0:0];
  _RAND_175 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoadd_d = _RAND_175[0:0];
  _RAND_176 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoxor_d = _RAND_176[0:0];
  _RAND_177 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoand_d = _RAND_177[0:0];
  _RAND_178 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amoor_d = _RAND_178[0:0];
  _RAND_179 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomin_d = _RAND_179[0:0];
  _RAND_180 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomax_d = _RAND_180[0:0];
  _RAND_181 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amominu_d = _RAND_181[0:0];
  _RAND_182 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_amomaxu_d = _RAND_182[0:0];
  _RAND_183 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_flw = _RAND_183[0:0];
  _RAND_184 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_fsw = _RAND_184[0:0];
  _RAND_185 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_fld = _RAND_185[0:0];
  _RAND_186 = {1{`RANDOM}};
  bufInfo_1_lsu_isa_fsd = _RAND_186[0:0];
  _RAND_187 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rw = _RAND_187[0:0];
  _RAND_188 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rs = _RAND_188[0:0];
  _RAND_189 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rc = _RAND_189[0:0];
  _RAND_190 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rwi = _RAND_190[0:0];
  _RAND_191 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rsi = _RAND_191[0:0];
  _RAND_192 = {1{`RANDOM}};
  bufInfo_1_csr_isa_rci = _RAND_192[0:0];
  _RAND_193 = {1{`RANDOM}};
  bufInfo_1_mul_isa_mul = _RAND_193[0:0];
  _RAND_194 = {1{`RANDOM}};
  bufInfo_1_mul_isa_mulh = _RAND_194[0:0];
  _RAND_195 = {1{`RANDOM}};
  bufInfo_1_mul_isa_mulhsu = _RAND_195[0:0];
  _RAND_196 = {1{`RANDOM}};
  bufInfo_1_mul_isa_mulhu = _RAND_196[0:0];
  _RAND_197 = {1{`RANDOM}};
  bufInfo_1_mul_isa_div = _RAND_197[0:0];
  _RAND_198 = {1{`RANDOM}};
  bufInfo_1_mul_isa_divu = _RAND_198[0:0];
  _RAND_199 = {1{`RANDOM}};
  bufInfo_1_mul_isa_rem = _RAND_199[0:0];
  _RAND_200 = {1{`RANDOM}};
  bufInfo_1_mul_isa_remu = _RAND_200[0:0];
  _RAND_201 = {1{`RANDOM}};
  bufInfo_1_mul_isa_mulw = _RAND_201[0:0];
  _RAND_202 = {1{`RANDOM}};
  bufInfo_1_mul_isa_divw = _RAND_202[0:0];
  _RAND_203 = {1{`RANDOM}};
  bufInfo_1_mul_isa_divuw = _RAND_203[0:0];
  _RAND_204 = {1{`RANDOM}};
  bufInfo_1_mul_isa_remw = _RAND_204[0:0];
  _RAND_205 = {1{`RANDOM}};
  bufInfo_1_mul_isa_remuw = _RAND_205[0:0];
  _RAND_206 = {1{`RANDOM}};
  bufInfo_1_param_is_rvc = _RAND_206[0:0];
  _RAND_207 = {2{`RANDOM}};
  bufInfo_1_param_pc = _RAND_207[38:0];
  _RAND_208 = {2{`RANDOM}};
  bufInfo_1_param_imm = _RAND_208[63:0];
  _RAND_209 = {1{`RANDOM}};
  bufInfo_1_param_raw_rs1 = _RAND_209[4:0];
  _RAND_210 = {1{`RANDOM}};
  bufInfo_1_phy_rs1 = _RAND_210[5:0];
  _RAND_211 = {1{`RANDOM}};
  bufInfo_1_phy_rs2 = _RAND_211[5:0];
  _RAND_212 = {1{`RANDOM}};
  bufInfo_1_phy_rs3 = _RAND_212[5:0];
  _RAND_213 = {1{`RANDOM}};
  bufInfo_1_phy_rd0 = _RAND_213[5:0];
  _RAND_214 = {1{`RANDOM}};
  isOpReady_0_0 = _RAND_214[0:0];
  _RAND_215 = {1{`RANDOM}};
  isOpReady_0_1 = _RAND_215[0:0];
  _RAND_216 = {1{`RANDOM}};
  isOpReady_1_0 = _RAND_216[0:0];
  _RAND_217 = {1{`RANDOM}};
  isOpReady_1_1 = _RAND_217[0:0];
  _RAND_218 = {3{`RANDOM}};
  bufOperator_0_0 = _RAND_218[64:0];
  _RAND_219 = {3{`RANDOM}};
  bufOperator_0_1 = _RAND_219[64:0];
  _RAND_220 = {3{`RANDOM}};
  bufOperator_1_0 = _RAND_220[64:0];
  _RAND_221 = {3{`RANDOM}};
  bufOperator_1_1 = _RAND_221[64:0];
  _RAND_222 = {1{`RANDOM}};
  ageMatrixW_0_0 = _RAND_222[0:0];
  _RAND_223 = {1{`RANDOM}};
  ageMatrixW_0_1 = _RAND_223[0:0];
  _RAND_224 = {1{`RANDOM}};
  ageMatrixW_1_1 = _RAND_224[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 [127: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 [127: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 [63:0] _RAND_145;
  reg [31:0] _RAND_146;
  reg [31:0] _RAND_147;
  reg [31:0] _RAND_148;
`endif // RANDOMIZE_REG_INIT
  wire  datRAM_0_clock; // @[DcacheStage.scala 62:54]
  wire  datRAM_0_io_addrr; // @[DcacheStage.scala 62:54]
  wire  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  tagRAM_0_clock; // @[DcacheStage.scala 63:54]
  wire  tagRAM_0_io_addrr; // @[DcacheStage.scala 63:54]
  wire  tagRAM_0_io_addrw; // @[DcacheStage.scala 63:54]
  wire [26:0] tagRAM_0_io_dataw; // @[DcacheStage.scala 63:54]
  wire [26: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  _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; // @[Reg.scala 19:16]
  reg [26:0] tagBypassData; // @[Reg.scala 19:16]
  wire [26:0] tagInfoR_0 = isTagBypass ? tagBypassData : tagRAM_0_io_datar; // @[DcacheStage.scala 127:31]
  wire [26:0] tagInfoW = pipeStage1Bits_paddr[31:5]; // @[Dcache.scala 73:21]
  wire  addrSelW = pipeStage1Bits_paddr[4]; // @[Dcache.scala 74:21]
  reg  isCBValid_1_0; // @[DcacheStage.scala 84:26]
  reg  isCBValid_0_0; // @[DcacheStage.scala 84:26]
  wire  _GEN_72 = addrSelW ? isCBValid_1_0 : isCBValid_0_0; // @[DcacheStage.scala 241:{73,73}]
  wire  res_0 = tagInfoR_0 == tagInfoW & _GEN_72; // @[DcacheStage.scala 241:73]
  wire  isHit = |res_0; // @[DcacheStage.scala 77:30]
  reg  isCBDirty_0_0; // @[DcacheStage.scala 86:26]
  reg  isCBDirty_1_0; // @[DcacheStage.scala 86:26]
  wire  addrSelR = io_enq_bits_paddr[4]; // @[Dcache.scala 74:21]
  wire  _datEnW_0_T_19 = pipeStage1Bits_fun_sc_d | pipeStage1Bits_fun_sc_w; // @[riscv_isa.scala 140:20]
  wire  _datEnW_0_T_20 = 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 | _datEnW_0_T_19; // @[riscv_isa.scala 148:205]
  wire  _datEnW_0_T_25 = pipeStage1Bits_fun_sb | pipeStage1Bits_fun_sh | pipeStage1Bits_fun_sw | pipeStage1Bits_fun_sd
     | pipeStage1Bits_fun_fsw | pipeStage1Bits_fun_fsd; // @[riscv_isa.scala 144:40]
  wire  _datEnW_0_T_28 = _datEnW_0_T_20 | _datEnW_0_T_25 | _datEnW_0_T_19; // @[Dcache.scala 54:34]
  wire  _datEnW_0_T_29 = _datEnW_0_T_20 | _datEnW_0_T_25 | _datEnW_0_T_19 | pipeStage1Bits_fun_grant; // @[Dcache.scala 54:42]
  wire  _datEnW_0_T_30 = pipeStage1Valid & _datEnW_0_T_29; // @[DcacheStage.scala 100:41]
  wire  _datEnW_0_T_58 = pipeStage1Bits_fun_lr_d | pipeStage1Bits_fun_lr_w; // @[riscv_isa.scala 141:20]
  wire  _datEnW_0_T_59 = 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 | _datEnW_0_T_58; // @[riscv_isa.scala 143:65]
  wire  _datEnW_0_T_60 = _datEnW_0_T_20 | _datEnW_0_T_59; // @[Dcache.scala 50:27]
  wire  _datEnW_0_T_70 = _datEnW_0_T_20 | _datEnW_0_T_59 | _datEnW_0_T_25 | _datEnW_0_T_58 | _datEnW_0_T_19; // @[Dcache.scala 50:51]
  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 = _datEnW_0_T_19 ? ~is_sc_fail : 1'h1; // @[DcacheStage.scala 103:53]
  wire  _datEnW_0_T_75 = _datEnW_0_T_70 & 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 = pipeStage1Valid & 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 = _datEnW_0_T_70 ? 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 = _datEnW_0_T_25 ? 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 = _datEnW_0_T_19 ? 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_157 = {{127'd0}, amo_reAlign_64_a_align_data}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_4 = _GEN_157 << _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  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]
  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]
  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]
  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]
  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]
  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]
  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]
  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]
  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]
  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]
  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]
  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]
  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]
  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]
  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]
  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 [63:0] amo_reAlign_64_b_lo = {datInfoR_0_7,datInfoR_0_6,datInfoR_0_5,datInfoR_0_4,datInfoR_0_3,datInfoR_0_2,
    datInfoR_0_1,datInfoR_0_0}; // @[Cat.scala 33:92]
  wire [127:0] _amo_reAlign_64_b_T = {datInfoR_0_15,datInfoR_0_14,datInfoR_0_13,datInfoR_0_12,datInfoR_0_11,
    datInfoR_0_10,datInfoR_0_9,datInfoR_0_8,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_158 = {{127'd0}, _dataW_T_11}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_9 = _GEN_158 << _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_159 = {{127'd0}, _dataW_T_13}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_14 = _GEN_159 << _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_160 = {{127'd0}, _dataW_T_15}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_19 = _GEN_160 << _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_161 = {{127'd0}, _dataW_T_17}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_24 = _GEN_161 << _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_162 = {{127'd0}, _dataW_T_19}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_29 = _GEN_162 << _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_163 = {{127'd0}, _dataW_T_23}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_34 = _GEN_163 << _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_164 = {{127'd0}, _dataW_T_27}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_39 = _GEN_164 << _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_165 = {{127'd0}, _dataW_T_31}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_44 = _GEN_165 << _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_166 = {{127'd0}, _dataW_T_35}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_49 = _GEN_166 << _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_167 = {{127'd0}, _dataW_T_37}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_54 = _GEN_167 << _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_168 = {{127'd0}, _dataW_T_39}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_59 = _GEN_168 << _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_169 = {{127'd0}, _dataW_T_41}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_64 = _GEN_169 << _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_170 = {{127'd0}, _dataW_T_43}; // @[Util.scala 149:26]
  wire [190:0] _dataW_align_data_T_69 = _GEN_170 << _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]
  reg  killTrans; // @[DcacheStage.scala 146:26]
  wire  _T_92 = io_flush | killTrans; // @[DcacheStage.scala 157:18]
  wire  _T_133 = pipeStage1Valid & _datEnW_0_T_70; // @[DcacheStage.scala 159:32]
  wire  _T_134 = pipeStage1Valid & _datEnW_0_T_70 & isHit; // @[DcacheStage.scala 159:63]
  wire  _T_167 = ~reset; // @[DcacheStage.scala 164:13]
  wire  _T_196 = _datEnW_0_T_19 | _datEnW_0_T_58; // @[riscv_isa.scala 146:23]
  wire  _GEN_35 = tagInfoW == lr_addr[31:5] ? 1'h0 : is_pending_lr; // @[DcacheStage.scala 168:55 169:23 147:30]
  wire  _GEN_36 = _datEnW_0_T_25 | _datEnW_0_T_20 & ~_T_196 ? _GEN_35 : is_pending_lr; // @[DcacheStage.scala 167:107 147:30]
  wire  _GEN_37 = _datEnW_0_T_19 ? 1'h0 : _GEN_36; // @[DcacheStage.scala 165:45 166:21]
  wire  _GEN_38 = _datEnW_0_T_58 | _GEN_37; // @[DcacheStage.scala 160:38 161:21]
  wire  _T_202 = pipeStage1Valid & pipeStage1Bits_fun_probe; // @[DcacheStage.scala 172:32]
  wire  _GEN_49 = io_isCacheEmpty ? 1'h0 : killTrans; // @[DcacheStage.scala 180:34 181:15 146:26]
  wire  _GEN_50 = io_flush | _GEN_49; // @[DcacheStage.scala 178:20 179:15]
  wire  _GEN_103 = ~addrSelW; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_51 = ~addrSelW | isCBValid_0_0; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_52 = addrSelW | isCBValid_1_0; // @[DcacheStage.scala 228:{34,34} 84:26]
  wire  _GEN_53 = ~addrSelW ? 1'h0 : isCBDirty_0_0; // @[DcacheStage.scala 229:{34,34} 86:26]
  wire  _GEN_54 = addrSelW ? 1'h0 : isCBDirty_1_0; // @[DcacheStage.scala 229:{34,34} 86:26]
  wire  _GEN_55 = pipeStage1Bits_fun_grant ? _GEN_51 : isCBValid_0_0; // @[DcacheStage.scala 227:38 84:26]
  wire  _GEN_56 = pipeStage1Bits_fun_grant ? _GEN_52 : isCBValid_1_0; // @[DcacheStage.scala 227:38 84:26]
  wire  _GEN_57 = pipeStage1Bits_fun_grant ? _GEN_53 : isCBDirty_0_0; // @[DcacheStage.scala 227:38 86:26]
  wire  _GEN_58 = pipeStage1Bits_fun_grant ? _GEN_54 : isCBDirty_1_0; // @[DcacheStage.scala 227:38 86:26]
  wire  _GEN_59 = _GEN_103 | _GEN_57; // @[DcacheStage.scala 232:{34,34}]
  wire  _GEN_60 = addrSelW | _GEN_58; // @[DcacheStage.scala 232:{34,34}]
  wire  _T_253 = ~isHit; // @[DcacheStage.scala 283:46]
  reg  missUnitReqValid; // @[DcacheStage.scala 291:33]
  reg [31:0] missUnitReqPaddr; // @[DcacheStage.scala 292:29]
  wire  _T_299 = pipeStage1Valid & (_datEnW_0_T_70 | pipeStage1Bits_fun_preft) & _T_253; // @[DcacheStage.scala 297:87]
  wire [31:0] _missUnitReqPaddr_T = {{4'd0}, pipeStage1Bits_paddr[31:4]}; // @[DcacheStage.scala 299:46]
  wire [35:0] _GEN_143 = {_missUnitReqPaddr_T, 4'h0}; // @[DcacheStage.scala 299:60]
  wire [38:0] _missUnitReqPaddr_T_1 = {{3'd0}, _GEN_143}; // @[DcacheStage.scala 299:60]
  wire [38:0] _GEN_74 = pipeStage1Valid & (_datEnW_0_T_70 | pipeStage1Bits_fun_preft) & _T_253 ? _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 [31:0] _wbReqPaddr_T = {tagInfoR_0,addrSelW,4'h0}; // @[Cat.scala 33:92]
  wire  _GEN_76 = addrSelW ? isCBDirty_1_0 : isCBDirty_0_0; // @[DcacheStage.scala 326:{17,17}]
  wire [38:0] _GEN_78 = _T_202 ? _missUnitReqPaddr_T_1 : {{7'd0}, wbReqPaddr}; // @[DcacheStage.scala 328:60 330:17 308:23]
  wire  _GEN_81 = _T_202 | isPb; // @[DcacheStage.scala 328:60 333:17 311:24]
  wire  _GEN_82 = pipeStage1Valid & (pipeStage1Bits_fun_grant & ~(~_GEN_72)) | _T_202; // @[DcacheStage.scala 322:99 323:17]
  wire [38:0] _GEN_83 = pipeStage1Valid & (pipeStage1Bits_fun_grant & ~(~_GEN_72)) ? {{7'd0}, _wbReqPaddr_T} : _GEN_78; // @[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_348 = _T_133 & _T_253; // @[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 = _datEnW_0_T_59 ? 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 = _datEnW_0_T_60 | _datEnW_0_T_58; // @[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)
  );
  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)
  );
  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[4]; // @[Dcache.scala 74:21]
  assign datRAM_0_io_addrw = pipeStage1Bits_paddr[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 tagRAM_0_clock = clock;
  assign tagRAM_0_io_addrr = io_enq_bits_paddr[4]; // @[Dcache.scala 74:21]
  assign tagRAM_0_io_addrw = pipeStage1Bits_paddr[4]; // @[Dcache.scala 74:21]
  assign tagRAM_0_io_dataw = pipeStage1Bits_paddr[31:5]; // @[Dcache.scala 73:21]
  assign tagRAM_0_io_enw = pipeStage1Valid & pipeStage1Bits_fun_grant; // @[DcacheStage.scala 106:52]
  assign tagRAM_0_io_enr = io_enq_ready & io_enq_valid; // @[Decoupled.scala 52:35]
  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 <= _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_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 (addrSelW) begin // @[DcacheStage.scala 236:34]
          isCBValid_1_0 <= 1'h0; // @[DcacheStage.scala 236:34]
        end else begin
          isCBValid_1_0 <= _GEN_56;
        end
      end else begin
        isCBValid_1_0 <= _GEN_56;
      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 (~addrSelW) begin // @[DcacheStage.scala 236:34]
          isCBValid_0_0 <= 1'h0; // @[DcacheStage.scala 236:34]
        end else begin
          isCBValid_0_0 <= _GEN_55;
        end
      end else begin
        isCBValid_0_0 <= _GEN_55;
      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_59;
      end else if (pipeStage1Bits_fun_grant) begin // @[DcacheStage.scala 227:38]
        isCBDirty_0_0 <= _GEN_53;
      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_60;
      end else if (pipeStage1Bits_fun_grant) begin // @[DcacheStage.scala 227:38]
        isCBDirty_1_0 <= _GEN_54;
      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 & _datEnW_0_T_70 & isHit) begin // @[DcacheStage.scala 159:73]
      is_pending_lr <= _GEN_38;
    end else if (pipeStage1Valid & pipeStage1Bits_fun_probe) begin // @[DcacheStage.scala 172:61]
      is_pending_lr <= _GEN_35;
    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 & _datEnW_0_T_70 & isHit) begin // @[DcacheStage.scala 159:73]
        if (_datEnW_0_T_58) 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 & _datEnW_0_T_70 & isHit) begin // @[DcacheStage.scala 159:73]
        if (_datEnW_0_T_58) 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 (_datBypassData_T_3) begin // @[Reg.scala 20:18]
      datBypassWM_15 <= datInfoWM_15; // @[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_3) begin // @[Reg.scala 20:18]
      datBypassWM_13 <= datInfoWM_13; // @[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_3) begin // @[Reg.scala 20:18]
      datBypassWM_11 <= datInfoWM_11; // @[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_3) begin // @[Reg.scala 20:18]
      datBypassWM_9 <= datInfoWM_9; // @[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_3) begin // @[Reg.scala 20:18]
      datBypassWM_7 <= datInfoWM_7; // @[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_3) begin // @[Reg.scala 20:18]
      datBypassWM_5 <= datInfoWM_5; // @[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_3) begin // @[Reg.scala 20:18]
      datBypassWM_3 <= datInfoWM_3; // @[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_3) begin // @[Reg.scala 20:18]
      datBypassWM_1 <= datInfoWM_1; // @[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_50;
    end
    if (reset) begin // @[DcacheStage.scala 291:33]
      missUnitReqValid <= 1'h0; // @[DcacheStage.scala 291:33]
    end else begin
      missUnitReqValid <= _T_299;
    end
    missUnitReqPaddr <= _GEN_74[31:0];
    if (reset) begin // @[DcacheStage.scala 307:27]
      wbReqValid <= 1'h0; // @[DcacheStage.scala 307:27]
    end else begin
      wbReqValid <= _GEN_82;
    end
    wbReqPaddr <= _GEN_83[31:0];
    if (pipeStage1Valid & (pipeStage1Bits_fun_grant & ~(~_GEN_72))) begin // @[DcacheStage.scala 322:99]
      wbReqData <= _amo_reAlign_64_b_T; // @[DcacheStage.scala 325:17]
    end else if (_T_202) begin // @[DcacheStage.scala 328:60]
      wbReqData <= _amo_reAlign_64_b_T; // @[DcacheStage.scala 331:17]
    end
    if (pipeStage1Valid & (pipeStage1Bits_fun_grant & ~(~_GEN_72))) begin // @[DcacheStage.scala 322:99]
      if (addrSelW) begin // @[DcacheStage.scala 326:17]
        wbReqisData <= isCBDirty_1_0; // @[DcacheStage.scala 326:17]
      end else begin
        wbReqisData <= isCBDirty_0_0;
      end
    end else if (_T_202) begin // @[DcacheStage.scala 328:60]
      wbReqisData <= _GEN_76 & isHit; // @[DcacheStage.scala 332:17]
    end
    if (pipeStage1Valid & (pipeStage1Bits_fun_grant & ~(~_GEN_72))) begin // @[DcacheStage.scala 322:99]
      isPb <= 1'h0; // @[DcacheStage.scala 327:17]
    end else begin
      isPb <= _GEN_81;
    end
    if (reset) begin // @[DcacheStage.scala 347:28]
      reloadValid <= 1'h0; // @[DcacheStage.scala 347:28]
    end else begin
      reloadValid <= _T_348;
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_chkIdx <= pipeStage1Bits_chkIdx; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_paddr <= pipeStage1Bits_paddr; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_wdata <= pipeStage1Bits_wdata; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_wstrb <= pipeStage1Bits_wstrb; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lb <= pipeStage1Bits_fun_lb; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lh <= pipeStage1Bits_fun_lh; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lw <= pipeStage1Bits_fun_lw; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_ld <= pipeStage1Bits_fun_ld; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lbu <= pipeStage1Bits_fun_lbu; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lhu <= pipeStage1Bits_fun_lhu; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lwu <= pipeStage1Bits_fun_lwu; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sb <= pipeStage1Bits_fun_sb; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sh <= pipeStage1Bits_fun_sh; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sw <= pipeStage1Bits_fun_sw; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sd <= pipeStage1Bits_fun_sd; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lr_w <= pipeStage1Bits_fun_lr_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sc_w <= pipeStage1Bits_fun_sc_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoswap_w <= pipeStage1Bits_fun_amoswap_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoadd_w <= pipeStage1Bits_fun_amoadd_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoxor_w <= pipeStage1Bits_fun_amoxor_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoand_w <= pipeStage1Bits_fun_amoand_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoor_w <= pipeStage1Bits_fun_amoor_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomin_w <= pipeStage1Bits_fun_amomin_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomax_w <= pipeStage1Bits_fun_amomax_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amominu_w <= pipeStage1Bits_fun_amominu_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomaxu_w <= pipeStage1Bits_fun_amomaxu_w; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_lr_d <= pipeStage1Bits_fun_lr_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_sc_d <= pipeStage1Bits_fun_sc_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoswap_d <= pipeStage1Bits_fun_amoswap_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoadd_d <= pipeStage1Bits_fun_amoadd_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoxor_d <= pipeStage1Bits_fun_amoxor_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoand_d <= pipeStage1Bits_fun_amoand_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amoor_d <= pipeStage1Bits_fun_amoor_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomin_d <= pipeStage1Bits_fun_amomin_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomax_d <= pipeStage1Bits_fun_amomax_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amominu_d <= pipeStage1Bits_fun_amominu_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_amomaxu_d <= pipeStage1Bits_fun_amomaxu_d; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_flw <= pipeStage1Bits_fun_flw; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_fsw <= pipeStage1Bits_fun_fsw; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_fld <= pipeStage1Bits_fun_fld; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_fsd <= pipeStage1Bits_fun_fsd; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_probe <= pipeStage1Bits_fun_probe; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_grant <= pipeStage1Bits_fun_grant; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) begin // @[DcacheStage.scala 350:67]
      reloadBits_fun_preft <= pipeStage1Bits_fun_preft; // @[DcacheStage.scala 352:17]
    end
    if (_T_133 & _T_253) 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_134;
    end
    if (_T_134) begin // @[DcacheStage.scala 368:66]
      deqBits_chkIdx <= pipeStage1Bits_chkIdx; // @[DcacheStage.scala 395:24]
    end
    if (_T_134) begin // @[DcacheStage.scala 368:66]
      deqBits_wb_rd0 <= pipeStage1Bits_rd_rd0; // @[DcacheStage.scala 394:25]
    end
    if (_T_134) begin // @[DcacheStage.scala 368:66]
      if (_datEnW_0_T_19) 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_134) begin // @[DcacheStage.scala 368:66]
      deqBits_is_load_amo <= _deqBits_is_load_amo_T_31; // @[DcacheStage.scala 396:25]
    end
    if (_T_134) begin // @[DcacheStage.scala 368:66]
      deqBits_is_flw <= pipeStage1Bits_fun_flw; // @[DcacheStage.scala 397:25]
    end
    if (_T_134) 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_92 & _T_134 & _datEnW_0_T_58 & ~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_92 & _T_134 & _datEnW_0_T_58 & ~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 (_T_202 & ~isHit & _T_167) 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 = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  tagBypassData = _RAND_47[26:0];
  _RAND_48 = {1{`RANDOM}};
  isCBValid_1_0 = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  isCBValid_0_0 = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  isCBDirty_0_0 = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  isCBDirty_1_0 = _RAND_51[0:0];
  _RAND_52 = {1{`RANDOM}};
  is_pending_lr = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  is_lr_64_32n = _RAND_53[0:0];
  _RAND_54 = {1{`RANDOM}};
  lr_addr = _RAND_54[31:0];
  _RAND_55 = {1{`RANDOM}};
  isDatBypass = _RAND_55[0:0];
  _RAND_56 = {1{`RANDOM}};
  datBypassData_0 = _RAND_56[7:0];
  _RAND_57 = {1{`RANDOM}};
  datBypassData_1 = _RAND_57[7:0];
  _RAND_58 = {1{`RANDOM}};
  datBypassData_2 = _RAND_58[7:0];
  _RAND_59 = {1{`RANDOM}};
  datBypassData_3 = _RAND_59[7:0];
  _RAND_60 = {1{`RANDOM}};
  datBypassData_4 = _RAND_60[7:0];
  _RAND_61 = {1{`RANDOM}};
  datBypassData_5 = _RAND_61[7:0];
  _RAND_62 = {1{`RANDOM}};
  datBypassData_6 = _RAND_62[7:0];
  _RAND_63 = {1{`RANDOM}};
  datBypassData_7 = _RAND_63[7:0];
  _RAND_64 = {1{`RANDOM}};
  datBypassData_8 = _RAND_64[7:0];
  _RAND_65 = {1{`RANDOM}};
  datBypassData_9 = _RAND_65[7:0];
  _RAND_66 = {1{`RANDOM}};
  datBypassData_10 = _RAND_66[7:0];
  _RAND_67 = {1{`RANDOM}};
  datBypassData_11 = _RAND_67[7:0];
  _RAND_68 = {1{`RANDOM}};
  datBypassData_12 = _RAND_68[7:0];
  _RAND_69 = {1{`RANDOM}};
  datBypassData_13 = _RAND_69[7:0];
  _RAND_70 = {1{`RANDOM}};
  datBypassData_14 = _RAND_70[7:0];
  _RAND_71 = {1{`RANDOM}};
  datBypassData_15 = _RAND_71[7:0];
  _RAND_72 = {1{`RANDOM}};
  datBypassWM_15 = _RAND_72[0:0];
  _RAND_73 = {1{`RANDOM}};
  datBypassWM_14 = _RAND_73[0:0];
  _RAND_74 = {1{`RANDOM}};
  datBypassWM_13 = _RAND_74[0:0];
  _RAND_75 = {1{`RANDOM}};
  datBypassWM_12 = _RAND_75[0:0];
  _RAND_76 = {1{`RANDOM}};
  datBypassWM_11 = _RAND_76[0:0];
  _RAND_77 = {1{`RANDOM}};
  datBypassWM_10 = _RAND_77[0:0];
  _RAND_78 = {1{`RANDOM}};
  datBypassWM_9 = _RAND_78[0:0];
  _RAND_79 = {1{`RANDOM}};
  datBypassWM_8 = _RAND_79[0:0];
  _RAND_80 = {1{`RANDOM}};
  datBypassWM_7 = _RAND_80[0:0];
  _RAND_81 = {1{`RANDOM}};
  datBypassWM_6 = _RAND_81[0:0];
  _RAND_82 = {1{`RANDOM}};
  datBypassWM_5 = _RAND_82[0:0];
  _RAND_83 = {1{`RANDOM}};
  datBypassWM_4 = _RAND_83[0:0];
  _RAND_84 = {1{`RANDOM}};
  datBypassWM_3 = _RAND_84[0:0];
  _RAND_85 = {1{`RANDOM}};
  datBypassWM_2 = _RAND_85[0:0];
  _RAND_86 = {1{`RANDOM}};
  datBypassWM_1 = _RAND_86[0:0];
  _RAND_87 = {1{`RANDOM}};
  datBypassWM_0 = _RAND_87[0:0];
  _RAND_88 = {1{`RANDOM}};
  killTrans = _RAND_88[0:0];
  _RAND_89 = {1{`RANDOM}};
  missUnitReqValid = _RAND_89[0:0];
  _RAND_90 = {1{`RANDOM}};
  missUnitReqPaddr = _RAND_90[31:0];
  _RAND_91 = {1{`RANDOM}};
  wbReqValid = _RAND_91[0:0];
  _RAND_92 = {1{`RANDOM}};
  wbReqPaddr = _RAND_92[31:0];
  _RAND_93 = {4{`RANDOM}};
  wbReqData = _RAND_93[127:0];
  _RAND_94 = {1{`RANDOM}};
  wbReqisData = _RAND_94[0:0];
  _RAND_95 = {1{`RANDOM}};
  isPb = _RAND_95[0:0];
  _RAND_96 = {1{`RANDOM}};
  reloadValid = _RAND_96[0:0];
  _RAND_97 = {1{`RANDOM}};
  reloadBits_chkIdx = _RAND_97[0:0];
  _RAND_98 = {1{`RANDOM}};
  reloadBits_paddr = _RAND_98[31:0];
  _RAND_99 = {4{`RANDOM}};
  reloadBits_wdata = _RAND_99[127:0];
  _RAND_100 = {1{`RANDOM}};
  reloadBits_wstrb = _RAND_100[15:0];
  _RAND_101 = {1{`RANDOM}};
  reloadBits_fun_lb = _RAND_101[0:0];
  _RAND_102 = {1{`RANDOM}};
  reloadBits_fun_lh = _RAND_102[0:0];
  _RAND_103 = {1{`RANDOM}};
  reloadBits_fun_lw = _RAND_103[0:0];
  _RAND_104 = {1{`RANDOM}};
  reloadBits_fun_ld = _RAND_104[0:0];
  _RAND_105 = {1{`RANDOM}};
  reloadBits_fun_lbu = _RAND_105[0:0];
  _RAND_106 = {1{`RANDOM}};
  reloadBits_fun_lhu = _RAND_106[0:0];
  _RAND_107 = {1{`RANDOM}};
  reloadBits_fun_lwu = _RAND_107[0:0];
  _RAND_108 = {1{`RANDOM}};
  reloadBits_fun_sb = _RAND_108[0:0];
  _RAND_109 = {1{`RANDOM}};
  reloadBits_fun_sh = _RAND_109[0:0];
  _RAND_110 = {1{`RANDOM}};
  reloadBits_fun_sw = _RAND_110[0:0];
  _RAND_111 = {1{`RANDOM}};
  reloadBits_fun_sd = _RAND_111[0:0];
  _RAND_112 = {1{`RANDOM}};
  reloadBits_fun_lr_w = _RAND_112[0:0];
  _RAND_113 = {1{`RANDOM}};
  reloadBits_fun_sc_w = _RAND_113[0:0];
  _RAND_114 = {1{`RANDOM}};
  reloadBits_fun_amoswap_w = _RAND_114[0:0];
  _RAND_115 = {1{`RANDOM}};
  reloadBits_fun_amoadd_w = _RAND_115[0:0];
  _RAND_116 = {1{`RANDOM}};
  reloadBits_fun_amoxor_w = _RAND_116[0:0];
  _RAND_117 = {1{`RANDOM}};
  reloadBits_fun_amoand_w = _RAND_117[0:0];
  _RAND_118 = {1{`RANDOM}};
  reloadBits_fun_amoor_w = _RAND_118[0:0];
  _RAND_119 = {1{`RANDOM}};
  reloadBits_fun_amomin_w = _RAND_119[0:0];
  _RAND_120 = {1{`RANDOM}};
  reloadBits_fun_amomax_w = _RAND_120[0:0];
  _RAND_121 = {1{`RANDOM}};
  reloadBits_fun_amominu_w = _RAND_121[0:0];
  _RAND_122 = {1{`RANDOM}};
  reloadBits_fun_amomaxu_w = _RAND_122[0:0];
  _RAND_123 = {1{`RANDOM}};
  reloadBits_fun_lr_d = _RAND_123[0:0];
  _RAND_124 = {1{`RANDOM}};
  reloadBits_fun_sc_d = _RAND_124[0:0];
  _RAND_125 = {1{`RANDOM}};
  reloadBits_fun_amoswap_d = _RAND_125[0:0];
  _RAND_126 = {1{`RANDOM}};
  reloadBits_fun_amoadd_d = _RAND_126[0:0];
  _RAND_127 = {1{`RANDOM}};
  reloadBits_fun_amoxor_d = _RAND_127[0:0];
  _RAND_128 = {1{`RANDOM}};
  reloadBits_fun_amoand_d = _RAND_128[0:0];
  _RAND_129 = {1{`RANDOM}};
  reloadBits_fun_amoor_d = _RAND_129[0:0];
  _RAND_130 = {1{`RANDOM}};
  reloadBits_fun_amomin_d = _RAND_130[0:0];
  _RAND_131 = {1{`RANDOM}};
  reloadBits_fun_amomax_d = _RAND_131[0:0];
  _RAND_132 = {1{`RANDOM}};
  reloadBits_fun_amominu_d = _RAND_132[0:0];
  _RAND_133 = {1{`RANDOM}};
  reloadBits_fun_amomaxu_d = _RAND_133[0:0];
  _RAND_134 = {1{`RANDOM}};
  reloadBits_fun_flw = _RAND_134[0:0];
  _RAND_135 = {1{`RANDOM}};
  reloadBits_fun_fsw = _RAND_135[0:0];
  _RAND_136 = {1{`RANDOM}};
  reloadBits_fun_fld = _RAND_136[0:0];
  _RAND_137 = {1{`RANDOM}};
  reloadBits_fun_fsd = _RAND_137[0:0];
  _RAND_138 = {1{`RANDOM}};
  reloadBits_fun_probe = _RAND_138[0:0];
  _RAND_139 = {1{`RANDOM}};
  reloadBits_fun_grant = _RAND_139[0:0];
  _RAND_140 = {1{`RANDOM}};
  reloadBits_fun_preft = _RAND_140[0:0];
  _RAND_141 = {1{`RANDOM}};
  reloadBits_rd_rd0 = _RAND_141[5:0];
  _RAND_142 = {1{`RANDOM}};
  deqValid = _RAND_142[0:0];
  _RAND_143 = {1{`RANDOM}};
  deqBits_chkIdx = _RAND_143[0:0];
  _RAND_144 = {1{`RANDOM}};
  deqBits_wb_rd0 = _RAND_144[5:0];
  _RAND_145 = {2{`RANDOM}};
  deqBits_wb_res = _RAND_145[63:0];
  _RAND_146 = {1{`RANDOM}};
  deqBits_is_load_amo = _RAND_146[0:0];
  _RAND_147 = {1{`RANDOM}};
  deqBits_is_flw = _RAND_147[0:0];
  _RAND_148 = {1{`RANDOM}};
  deqBits_is_fld = _RAND_148[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,
  output        io_rgRsp_0_valid,
  output [5:0]  io_rgRsp_0_bits_phy,
  output [63:0] io_rgRsp_0_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;
`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_3033 = {{1'd0}, _T_19}; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_58 = _GEN_3033 + _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_3034 = {{1'd0}, _T_2}; // @[Regfiles.scala 165:40]
  wire [2:0] _io_rename_0_req_ready_T_90 = _GEN_3034 + _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}]
  wire  _T_108 = io_exe_writeBack_0_ready & io_exe_writeBack_0_valid; // @[Decoupled.scala 52:35]
  wire [1:0] _GEN_1421 = 6'h1 == io_exe_writeBack_0_bits_rd0 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1422 = 6'h2 == io_exe_writeBack_0_bits_rd0 ? log_reg_2 : _GEN_1421; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1423 = 6'h3 == io_exe_writeBack_0_bits_rd0 ? log_reg_3 : _GEN_1422; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1424 = 6'h4 == io_exe_writeBack_0_bits_rd0 ? log_reg_4 : _GEN_1423; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1425 = 6'h5 == io_exe_writeBack_0_bits_rd0 ? log_reg_5 : _GEN_1424; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1426 = 6'h6 == io_exe_writeBack_0_bits_rd0 ? log_reg_6 : _GEN_1425; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1427 = 6'h7 == io_exe_writeBack_0_bits_rd0 ? log_reg_7 : _GEN_1426; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1428 = 6'h8 == io_exe_writeBack_0_bits_rd0 ? log_reg_8 : _GEN_1427; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1429 = 6'h9 == io_exe_writeBack_0_bits_rd0 ? log_reg_9 : _GEN_1428; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1430 = 6'ha == io_exe_writeBack_0_bits_rd0 ? log_reg_10 : _GEN_1429; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1431 = 6'hb == io_exe_writeBack_0_bits_rd0 ? log_reg_11 : _GEN_1430; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1432 = 6'hc == io_exe_writeBack_0_bits_rd0 ? log_reg_12 : _GEN_1431; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1433 = 6'hd == io_exe_writeBack_0_bits_rd0 ? log_reg_13 : _GEN_1432; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1434 = 6'he == io_exe_writeBack_0_bits_rd0 ? log_reg_14 : _GEN_1433; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1435 = 6'hf == io_exe_writeBack_0_bits_rd0 ? log_reg_15 : _GEN_1434; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1436 = 6'h10 == io_exe_writeBack_0_bits_rd0 ? log_reg_16 : _GEN_1435; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1437 = 6'h11 == io_exe_writeBack_0_bits_rd0 ? log_reg_17 : _GEN_1436; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1438 = 6'h12 == io_exe_writeBack_0_bits_rd0 ? log_reg_18 : _GEN_1437; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1439 = 6'h13 == io_exe_writeBack_0_bits_rd0 ? log_reg_19 : _GEN_1438; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1440 = 6'h14 == io_exe_writeBack_0_bits_rd0 ? log_reg_20 : _GEN_1439; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1441 = 6'h15 == io_exe_writeBack_0_bits_rd0 ? log_reg_21 : _GEN_1440; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1442 = 6'h16 == io_exe_writeBack_0_bits_rd0 ? log_reg_22 : _GEN_1441; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1443 = 6'h17 == io_exe_writeBack_0_bits_rd0 ? log_reg_23 : _GEN_1442; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1444 = 6'h18 == io_exe_writeBack_0_bits_rd0 ? log_reg_24 : _GEN_1443; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1445 = 6'h19 == io_exe_writeBack_0_bits_rd0 ? log_reg_25 : _GEN_1444; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1446 = 6'h1a == io_exe_writeBack_0_bits_rd0 ? log_reg_26 : _GEN_1445; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1447 = 6'h1b == io_exe_writeBack_0_bits_rd0 ? log_reg_27 : _GEN_1446; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1448 = 6'h1c == io_exe_writeBack_0_bits_rd0 ? log_reg_28 : _GEN_1447; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1449 = 6'h1d == io_exe_writeBack_0_bits_rd0 ? log_reg_29 : _GEN_1448; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1450 = 6'h1e == io_exe_writeBack_0_bits_rd0 ? log_reg_30 : _GEN_1449; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1451 = 6'h1f == io_exe_writeBack_0_bits_rd0 ? log_reg_31 : _GEN_1450; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1452 = 6'h20 == io_exe_writeBack_0_bits_rd0 ? log_reg_32 : _GEN_1451; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1453 = 6'h21 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1452; // @[Regfiles.scala 203:{24,24}]
  wire [1:0] _GEN_1454 = 6'h0 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1221; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1455 = 6'h1 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1222; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1456 = 6'h2 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1223; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1457 = 6'h3 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1224; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1458 = 6'h4 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1225; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1459 = 6'h5 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1226; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1460 = 6'h6 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1227; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1461 = 6'h7 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1228; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1462 = 6'h8 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1229; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1463 = 6'h9 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1230; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1464 = 6'ha == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1231; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1465 = 6'hb == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1232; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1466 = 6'hc == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1233; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1467 = 6'hd == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1234; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1468 = 6'he == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1235; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1469 = 6'hf == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1236; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1470 = 6'h10 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1237; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1471 = 6'h11 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1238; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1472 = 6'h12 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1239; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1473 = 6'h13 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1240; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1474 = 6'h14 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1241; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1475 = 6'h15 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1242; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1476 = 6'h16 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1243; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1477 = 6'h17 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1244; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1478 = 6'h18 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1245; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1479 = 6'h19 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1246; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1480 = 6'h1a == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1247; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1481 = 6'h1b == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1248; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1482 = 6'h1c == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1249; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1483 = 6'h1d == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1250; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1484 = 6'h1e == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1251; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1485 = 6'h1f == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1252; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1486 = 6'h20 == io_exe_writeBack_0_bits_rd0 ? 2'h3 : _GEN_1253; // @[Regfiles.scala 204:{20,20}]
  wire [1:0] _GEN_1520 = _T_108 ? _GEN_1454 : _GEN_1221; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1521 = _T_108 ? _GEN_1455 : _GEN_1222; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1522 = _T_108 ? _GEN_1456 : _GEN_1223; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1523 = _T_108 ? _GEN_1457 : _GEN_1224; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1524 = _T_108 ? _GEN_1458 : _GEN_1225; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1525 = _T_108 ? _GEN_1459 : _GEN_1226; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1526 = _T_108 ? _GEN_1460 : _GEN_1227; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1527 = _T_108 ? _GEN_1461 : _GEN_1228; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1528 = _T_108 ? _GEN_1462 : _GEN_1229; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1529 = _T_108 ? _GEN_1463 : _GEN_1230; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1530 = _T_108 ? _GEN_1464 : _GEN_1231; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1531 = _T_108 ? _GEN_1465 : _GEN_1232; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1532 = _T_108 ? _GEN_1466 : _GEN_1233; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1533 = _T_108 ? _GEN_1467 : _GEN_1234; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1534 = _T_108 ? _GEN_1468 : _GEN_1235; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1535 = _T_108 ? _GEN_1469 : _GEN_1236; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1536 = _T_108 ? _GEN_1470 : _GEN_1237; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1537 = _T_108 ? _GEN_1471 : _GEN_1238; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1538 = _T_108 ? _GEN_1472 : _GEN_1239; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1539 = _T_108 ? _GEN_1473 : _GEN_1240; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1540 = _T_108 ? _GEN_1474 : _GEN_1241; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1541 = _T_108 ? _GEN_1475 : _GEN_1242; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1542 = _T_108 ? _GEN_1476 : _GEN_1243; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1543 = _T_108 ? _GEN_1477 : _GEN_1244; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1544 = _T_108 ? _GEN_1478 : _GEN_1245; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1545 = _T_108 ? _GEN_1479 : _GEN_1246; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1546 = _T_108 ? _GEN_1480 : _GEN_1247; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1547 = _T_108 ? _GEN_1481 : _GEN_1248; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1548 = _T_108 ? _GEN_1482 : _GEN_1249; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1549 = _T_108 ? _GEN_1483 : _GEN_1250; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1550 = _T_108 ? _GEN_1484 : _GEN_1251; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1551 = _T_108 ? _GEN_1485 : _GEN_1252; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1552 = _T_108 ? _GEN_1486 : _GEN_1253; // @[Regfiles.scala 201:38]
  wire [1:0] _GEN_1587 = 6'h1 == io_commit_0_phy ? log_reg_1 : log_reg_0; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1588 = 6'h2 == io_commit_0_phy ? log_reg_2 : _GEN_1587; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1589 = 6'h3 == io_commit_0_phy ? log_reg_3 : _GEN_1588; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1590 = 6'h4 == io_commit_0_phy ? log_reg_4 : _GEN_1589; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1591 = 6'h5 == io_commit_0_phy ? log_reg_5 : _GEN_1590; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1592 = 6'h6 == io_commit_0_phy ? log_reg_6 : _GEN_1591; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1593 = 6'h7 == io_commit_0_phy ? log_reg_7 : _GEN_1592; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1594 = 6'h8 == io_commit_0_phy ? log_reg_8 : _GEN_1593; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1595 = 6'h9 == io_commit_0_phy ? log_reg_9 : _GEN_1594; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1596 = 6'ha == io_commit_0_phy ? log_reg_10 : _GEN_1595; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1597 = 6'hb == io_commit_0_phy ? log_reg_11 : _GEN_1596; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1598 = 6'hc == io_commit_0_phy ? log_reg_12 : _GEN_1597; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1599 = 6'hd == io_commit_0_phy ? log_reg_13 : _GEN_1598; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1600 = 6'he == io_commit_0_phy ? log_reg_14 : _GEN_1599; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1601 = 6'hf == io_commit_0_phy ? log_reg_15 : _GEN_1600; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1602 = 6'h10 == io_commit_0_phy ? log_reg_16 : _GEN_1601; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1603 = 6'h11 == io_commit_0_phy ? log_reg_17 : _GEN_1602; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1604 = 6'h12 == io_commit_0_phy ? log_reg_18 : _GEN_1603; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1605 = 6'h13 == io_commit_0_phy ? log_reg_19 : _GEN_1604; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1606 = 6'h14 == io_commit_0_phy ? log_reg_20 : _GEN_1605; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1607 = 6'h15 == io_commit_0_phy ? log_reg_21 : _GEN_1606; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1608 = 6'h16 == io_commit_0_phy ? log_reg_22 : _GEN_1607; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1609 = 6'h17 == io_commit_0_phy ? log_reg_23 : _GEN_1608; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1610 = 6'h18 == io_commit_0_phy ? log_reg_24 : _GEN_1609; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1611 = 6'h19 == io_commit_0_phy ? log_reg_25 : _GEN_1610; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1612 = 6'h1a == io_commit_0_phy ? log_reg_26 : _GEN_1611; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1613 = 6'h1b == io_commit_0_phy ? log_reg_27 : _GEN_1612; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1614 = 6'h1c == io_commit_0_phy ? log_reg_28 : _GEN_1613; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1615 = 6'h1d == io_commit_0_phy ? log_reg_29 : _GEN_1614; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1616 = 6'h1e == io_commit_0_phy ? log_reg_30 : _GEN_1615; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1617 = 6'h1f == io_commit_0_phy ? log_reg_31 : _GEN_1616; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1618 = 6'h20 == io_commit_0_phy ? log_reg_32 : _GEN_1617; // @[Regfiles.scala 219:{46,46}]
  wire [1:0] _GEN_1619 = 6'h21 == io_commit_0_phy ? 2'h3 : _GEN_1618; // @[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_1620 = _T_39 ? _log_reg_0_T_64 : _GEN_1520; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1621 = _T_39 ? _log_reg_1_T_64 : _GEN_1521; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1622 = _T_39 ? _log_reg_2_T_64 : _GEN_1522; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1623 = _T_39 ? _log_reg_3_T_64 : _GEN_1523; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1624 = _T_39 ? _log_reg_4_T_64 : _GEN_1524; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1625 = _T_39 ? _log_reg_5_T_64 : _GEN_1525; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1626 = _T_39 ? _log_reg_6_T_64 : _GEN_1526; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1627 = _T_39 ? _log_reg_7_T_64 : _GEN_1527; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1628 = _T_39 ? _log_reg_8_T_64 : _GEN_1528; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1629 = _T_39 ? _log_reg_9_T_64 : _GEN_1529; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1630 = _T_39 ? _log_reg_10_T_64 : _GEN_1530; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1631 = _T_39 ? _log_reg_11_T_64 : _GEN_1531; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1632 = _T_39 ? _log_reg_12_T_64 : _GEN_1532; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1633 = _T_39 ? _log_reg_13_T_64 : _GEN_1533; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1634 = _T_39 ? _log_reg_14_T_64 : _GEN_1534; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1635 = _T_39 ? _log_reg_15_T_64 : _GEN_1535; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1636 = _T_39 ? _log_reg_16_T_64 : _GEN_1536; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1637 = _T_39 ? _log_reg_17_T_64 : _GEN_1537; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1638 = _T_39 ? _log_reg_18_T_64 : _GEN_1538; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1639 = _T_39 ? _log_reg_19_T_64 : _GEN_1539; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1640 = _T_39 ? _log_reg_20_T_64 : _GEN_1540; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1641 = _T_39 ? _log_reg_21_T_64 : _GEN_1541; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1642 = _T_39 ? _log_reg_22_T_64 : _GEN_1542; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1643 = _T_39 ? _log_reg_23_T_64 : _GEN_1543; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1644 = _T_39 ? _log_reg_24_T_64 : _GEN_1544; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1645 = _T_39 ? _log_reg_25_T_64 : _GEN_1545; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1646 = _T_39 ? _log_reg_26_T_64 : _GEN_1546; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1647 = _T_39 ? _log_reg_27_T_64 : _GEN_1547; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1648 = _T_39 ? _log_reg_28_T_64 : _GEN_1548; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1649 = _T_39 ? _log_reg_29_T_64 : _GEN_1549; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1650 = _T_39 ? _log_reg_30_T_64 : _GEN_1550; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1651 = _T_39 ? _log_reg_31_T_64 : _GEN_1551; // @[Regfiles.scala 221:64 223:57]
  wire [1:0] _GEN_1652 = _T_39 ? _log_reg_32_T_64 : _GEN_1552; // @[Regfiles.scala 221:64 223:57]
  wire  _T_114 = io_commit_0_is_MisPredict | io_commit_0_is_comfirm; // @[Regfiles.scala 225:38]
  wire [5:0] _GEN_1654 = 5'h1 == io_commit_0_raw ? archit_ptr_1 : archit_ptr_0; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1655 = 5'h2 == io_commit_0_raw ? archit_ptr_2 : _GEN_1654; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1656 = 5'h3 == io_commit_0_raw ? archit_ptr_3 : _GEN_1655; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1657 = 5'h4 == io_commit_0_raw ? archit_ptr_4 : _GEN_1656; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1658 = 5'h5 == io_commit_0_raw ? archit_ptr_5 : _GEN_1657; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1659 = 5'h6 == io_commit_0_raw ? archit_ptr_6 : _GEN_1658; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1660 = 5'h7 == io_commit_0_raw ? archit_ptr_7 : _GEN_1659; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1661 = 5'h8 == io_commit_0_raw ? archit_ptr_8 : _GEN_1660; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1662 = 5'h9 == io_commit_0_raw ? archit_ptr_9 : _GEN_1661; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1663 = 5'ha == io_commit_0_raw ? archit_ptr_10 : _GEN_1662; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1664 = 5'hb == io_commit_0_raw ? archit_ptr_11 : _GEN_1663; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1665 = 5'hc == io_commit_0_raw ? archit_ptr_12 : _GEN_1664; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1666 = 5'hd == io_commit_0_raw ? archit_ptr_13 : _GEN_1665; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1667 = 5'he == io_commit_0_raw ? archit_ptr_14 : _GEN_1666; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1668 = 5'hf == io_commit_0_raw ? archit_ptr_15 : _GEN_1667; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1669 = 5'h10 == io_commit_0_raw ? archit_ptr_16 : _GEN_1668; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1670 = 5'h11 == io_commit_0_raw ? archit_ptr_17 : _GEN_1669; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1671 = 5'h12 == io_commit_0_raw ? archit_ptr_18 : _GEN_1670; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1672 = 5'h13 == io_commit_0_raw ? archit_ptr_19 : _GEN_1671; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1673 = 5'h14 == io_commit_0_raw ? archit_ptr_20 : _GEN_1672; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1674 = 5'h15 == io_commit_0_raw ? archit_ptr_21 : _GEN_1673; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1675 = 5'h16 == io_commit_0_raw ? archit_ptr_22 : _GEN_1674; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1676 = 5'h17 == io_commit_0_raw ? archit_ptr_23 : _GEN_1675; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1677 = 5'h18 == io_commit_0_raw ? archit_ptr_24 : _GEN_1676; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1678 = 5'h19 == io_commit_0_raw ? archit_ptr_25 : _GEN_1677; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1679 = 5'h1a == io_commit_0_raw ? archit_ptr_26 : _GEN_1678; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1680 = 5'h1b == io_commit_0_raw ? archit_ptr_27 : _GEN_1679; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1681 = 5'h1c == io_commit_0_raw ? archit_ptr_28 : _GEN_1680; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1682 = 5'h1d == io_commit_0_raw ? archit_ptr_29 : _GEN_1681; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1683 = 5'h1e == io_commit_0_raw ? archit_ptr_30 : _GEN_1682; // @[Regfiles.scala 229:{18,18}]
  wire [5:0] _GEN_1684 = 5'h1f == io_commit_0_raw ? archit_ptr_31 : _GEN_1683; // @[Regfiles.scala 229:{18,18}]
  wire [1:0] _GEN_1882 = 6'h1 == archit_ptr_0 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1883 = 6'h2 == archit_ptr_0 ? log_reg_2 : _GEN_1882; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1884 = 6'h3 == archit_ptr_0 ? log_reg_3 : _GEN_1883; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1885 = 6'h4 == archit_ptr_0 ? log_reg_4 : _GEN_1884; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1886 = 6'h5 == archit_ptr_0 ? log_reg_5 : _GEN_1885; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1887 = 6'h6 == archit_ptr_0 ? log_reg_6 : _GEN_1886; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1888 = 6'h7 == archit_ptr_0 ? log_reg_7 : _GEN_1887; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1889 = 6'h8 == archit_ptr_0 ? log_reg_8 : _GEN_1888; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1890 = 6'h9 == archit_ptr_0 ? log_reg_9 : _GEN_1889; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1891 = 6'ha == archit_ptr_0 ? log_reg_10 : _GEN_1890; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1892 = 6'hb == archit_ptr_0 ? log_reg_11 : _GEN_1891; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1893 = 6'hc == archit_ptr_0 ? log_reg_12 : _GEN_1892; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1894 = 6'hd == archit_ptr_0 ? log_reg_13 : _GEN_1893; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1895 = 6'he == archit_ptr_0 ? log_reg_14 : _GEN_1894; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1896 = 6'hf == archit_ptr_0 ? log_reg_15 : _GEN_1895; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1897 = 6'h10 == archit_ptr_0 ? log_reg_16 : _GEN_1896; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1898 = 6'h11 == archit_ptr_0 ? log_reg_17 : _GEN_1897; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1899 = 6'h12 == archit_ptr_0 ? log_reg_18 : _GEN_1898; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1900 = 6'h13 == archit_ptr_0 ? log_reg_19 : _GEN_1899; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1901 = 6'h14 == archit_ptr_0 ? log_reg_20 : _GEN_1900; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1902 = 6'h15 == archit_ptr_0 ? log_reg_21 : _GEN_1901; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1903 = 6'h16 == archit_ptr_0 ? log_reg_22 : _GEN_1902; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1904 = 6'h17 == archit_ptr_0 ? log_reg_23 : _GEN_1903; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1905 = 6'h18 == archit_ptr_0 ? log_reg_24 : _GEN_1904; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1906 = 6'h19 == archit_ptr_0 ? log_reg_25 : _GEN_1905; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1907 = 6'h1a == archit_ptr_0 ? log_reg_26 : _GEN_1906; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1908 = 6'h1b == archit_ptr_0 ? log_reg_27 : _GEN_1907; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1909 = 6'h1c == archit_ptr_0 ? log_reg_28 : _GEN_1908; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1910 = 6'h1d == archit_ptr_0 ? log_reg_29 : _GEN_1909; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1911 = 6'h1e == archit_ptr_0 ? log_reg_30 : _GEN_1910; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1912 = 6'h1f == archit_ptr_0 ? log_reg_31 : _GEN_1911; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1913 = 6'h20 == archit_ptr_0 ? log_reg_32 : _GEN_1912; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1914 = 6'h21 == archit_ptr_0 ? 2'h3 : _GEN_1913; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1916 = 6'h1 == archit_ptr_1 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1917 = 6'h2 == archit_ptr_1 ? log_reg_2 : _GEN_1916; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1918 = 6'h3 == archit_ptr_1 ? log_reg_3 : _GEN_1917; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1919 = 6'h4 == archit_ptr_1 ? log_reg_4 : _GEN_1918; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1920 = 6'h5 == archit_ptr_1 ? log_reg_5 : _GEN_1919; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1921 = 6'h6 == archit_ptr_1 ? log_reg_6 : _GEN_1920; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1922 = 6'h7 == archit_ptr_1 ? log_reg_7 : _GEN_1921; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1923 = 6'h8 == archit_ptr_1 ? log_reg_8 : _GEN_1922; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1924 = 6'h9 == archit_ptr_1 ? log_reg_9 : _GEN_1923; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1925 = 6'ha == archit_ptr_1 ? log_reg_10 : _GEN_1924; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1926 = 6'hb == archit_ptr_1 ? log_reg_11 : _GEN_1925; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1927 = 6'hc == archit_ptr_1 ? log_reg_12 : _GEN_1926; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1928 = 6'hd == archit_ptr_1 ? log_reg_13 : _GEN_1927; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1929 = 6'he == archit_ptr_1 ? log_reg_14 : _GEN_1928; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1930 = 6'hf == archit_ptr_1 ? log_reg_15 : _GEN_1929; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1931 = 6'h10 == archit_ptr_1 ? log_reg_16 : _GEN_1930; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1932 = 6'h11 == archit_ptr_1 ? log_reg_17 : _GEN_1931; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1933 = 6'h12 == archit_ptr_1 ? log_reg_18 : _GEN_1932; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1934 = 6'h13 == archit_ptr_1 ? log_reg_19 : _GEN_1933; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1935 = 6'h14 == archit_ptr_1 ? log_reg_20 : _GEN_1934; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1936 = 6'h15 == archit_ptr_1 ? log_reg_21 : _GEN_1935; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1937 = 6'h16 == archit_ptr_1 ? log_reg_22 : _GEN_1936; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1938 = 6'h17 == archit_ptr_1 ? log_reg_23 : _GEN_1937; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1939 = 6'h18 == archit_ptr_1 ? log_reg_24 : _GEN_1938; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1940 = 6'h19 == archit_ptr_1 ? log_reg_25 : _GEN_1939; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1941 = 6'h1a == archit_ptr_1 ? log_reg_26 : _GEN_1940; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1942 = 6'h1b == archit_ptr_1 ? log_reg_27 : _GEN_1941; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1943 = 6'h1c == archit_ptr_1 ? log_reg_28 : _GEN_1942; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1944 = 6'h1d == archit_ptr_1 ? log_reg_29 : _GEN_1943; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1945 = 6'h1e == archit_ptr_1 ? log_reg_30 : _GEN_1944; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1946 = 6'h1f == archit_ptr_1 ? log_reg_31 : _GEN_1945; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1947 = 6'h20 == archit_ptr_1 ? log_reg_32 : _GEN_1946; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1948 = 6'h21 == archit_ptr_1 ? 2'h3 : _GEN_1947; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1950 = 6'h1 == archit_ptr_2 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1951 = 6'h2 == archit_ptr_2 ? log_reg_2 : _GEN_1950; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1952 = 6'h3 == archit_ptr_2 ? log_reg_3 : _GEN_1951; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1953 = 6'h4 == archit_ptr_2 ? log_reg_4 : _GEN_1952; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1954 = 6'h5 == archit_ptr_2 ? log_reg_5 : _GEN_1953; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1955 = 6'h6 == archit_ptr_2 ? log_reg_6 : _GEN_1954; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1956 = 6'h7 == archit_ptr_2 ? log_reg_7 : _GEN_1955; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1957 = 6'h8 == archit_ptr_2 ? log_reg_8 : _GEN_1956; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1958 = 6'h9 == archit_ptr_2 ? log_reg_9 : _GEN_1957; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1959 = 6'ha == archit_ptr_2 ? log_reg_10 : _GEN_1958; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1960 = 6'hb == archit_ptr_2 ? log_reg_11 : _GEN_1959; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1961 = 6'hc == archit_ptr_2 ? log_reg_12 : _GEN_1960; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1962 = 6'hd == archit_ptr_2 ? log_reg_13 : _GEN_1961; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1963 = 6'he == archit_ptr_2 ? log_reg_14 : _GEN_1962; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1964 = 6'hf == archit_ptr_2 ? log_reg_15 : _GEN_1963; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1965 = 6'h10 == archit_ptr_2 ? log_reg_16 : _GEN_1964; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1966 = 6'h11 == archit_ptr_2 ? log_reg_17 : _GEN_1965; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1967 = 6'h12 == archit_ptr_2 ? log_reg_18 : _GEN_1966; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1968 = 6'h13 == archit_ptr_2 ? log_reg_19 : _GEN_1967; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1969 = 6'h14 == archit_ptr_2 ? log_reg_20 : _GEN_1968; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1970 = 6'h15 == archit_ptr_2 ? log_reg_21 : _GEN_1969; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1971 = 6'h16 == archit_ptr_2 ? log_reg_22 : _GEN_1970; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1972 = 6'h17 == archit_ptr_2 ? log_reg_23 : _GEN_1971; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1973 = 6'h18 == archit_ptr_2 ? log_reg_24 : _GEN_1972; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1974 = 6'h19 == archit_ptr_2 ? log_reg_25 : _GEN_1973; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1975 = 6'h1a == archit_ptr_2 ? log_reg_26 : _GEN_1974; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1976 = 6'h1b == archit_ptr_2 ? log_reg_27 : _GEN_1975; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1977 = 6'h1c == archit_ptr_2 ? log_reg_28 : _GEN_1976; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1978 = 6'h1d == archit_ptr_2 ? log_reg_29 : _GEN_1977; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1979 = 6'h1e == archit_ptr_2 ? log_reg_30 : _GEN_1978; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1980 = 6'h1f == archit_ptr_2 ? log_reg_31 : _GEN_1979; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1981 = 6'h20 == archit_ptr_2 ? log_reg_32 : _GEN_1980; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1982 = 6'h21 == archit_ptr_2 ? 2'h3 : _GEN_1981; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1984 = 6'h1 == archit_ptr_3 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1985 = 6'h2 == archit_ptr_3 ? log_reg_2 : _GEN_1984; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1986 = 6'h3 == archit_ptr_3 ? log_reg_3 : _GEN_1985; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1987 = 6'h4 == archit_ptr_3 ? log_reg_4 : _GEN_1986; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1988 = 6'h5 == archit_ptr_3 ? log_reg_5 : _GEN_1987; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1989 = 6'h6 == archit_ptr_3 ? log_reg_6 : _GEN_1988; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1990 = 6'h7 == archit_ptr_3 ? log_reg_7 : _GEN_1989; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1991 = 6'h8 == archit_ptr_3 ? log_reg_8 : _GEN_1990; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1992 = 6'h9 == archit_ptr_3 ? log_reg_9 : _GEN_1991; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1993 = 6'ha == archit_ptr_3 ? log_reg_10 : _GEN_1992; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1994 = 6'hb == archit_ptr_3 ? log_reg_11 : _GEN_1993; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1995 = 6'hc == archit_ptr_3 ? log_reg_12 : _GEN_1994; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1996 = 6'hd == archit_ptr_3 ? log_reg_13 : _GEN_1995; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1997 = 6'he == archit_ptr_3 ? log_reg_14 : _GEN_1996; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1998 = 6'hf == archit_ptr_3 ? log_reg_15 : _GEN_1997; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_1999 = 6'h10 == archit_ptr_3 ? log_reg_16 : _GEN_1998; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2000 = 6'h11 == archit_ptr_3 ? log_reg_17 : _GEN_1999; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2001 = 6'h12 == archit_ptr_3 ? log_reg_18 : _GEN_2000; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2002 = 6'h13 == archit_ptr_3 ? log_reg_19 : _GEN_2001; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2003 = 6'h14 == archit_ptr_3 ? log_reg_20 : _GEN_2002; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2004 = 6'h15 == archit_ptr_3 ? log_reg_21 : _GEN_2003; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2005 = 6'h16 == archit_ptr_3 ? log_reg_22 : _GEN_2004; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2006 = 6'h17 == archit_ptr_3 ? log_reg_23 : _GEN_2005; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2007 = 6'h18 == archit_ptr_3 ? log_reg_24 : _GEN_2006; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2008 = 6'h19 == archit_ptr_3 ? log_reg_25 : _GEN_2007; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2009 = 6'h1a == archit_ptr_3 ? log_reg_26 : _GEN_2008; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2010 = 6'h1b == archit_ptr_3 ? log_reg_27 : _GEN_2009; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2011 = 6'h1c == archit_ptr_3 ? log_reg_28 : _GEN_2010; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2012 = 6'h1d == archit_ptr_3 ? log_reg_29 : _GEN_2011; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2013 = 6'h1e == archit_ptr_3 ? log_reg_30 : _GEN_2012; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2014 = 6'h1f == archit_ptr_3 ? log_reg_31 : _GEN_2013; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2015 = 6'h20 == archit_ptr_3 ? log_reg_32 : _GEN_2014; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2016 = 6'h21 == archit_ptr_3 ? 2'h3 : _GEN_2015; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2018 = 6'h1 == archit_ptr_4 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2019 = 6'h2 == archit_ptr_4 ? log_reg_2 : _GEN_2018; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2020 = 6'h3 == archit_ptr_4 ? log_reg_3 : _GEN_2019; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2021 = 6'h4 == archit_ptr_4 ? log_reg_4 : _GEN_2020; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2022 = 6'h5 == archit_ptr_4 ? log_reg_5 : _GEN_2021; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2023 = 6'h6 == archit_ptr_4 ? log_reg_6 : _GEN_2022; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2024 = 6'h7 == archit_ptr_4 ? log_reg_7 : _GEN_2023; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2025 = 6'h8 == archit_ptr_4 ? log_reg_8 : _GEN_2024; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2026 = 6'h9 == archit_ptr_4 ? log_reg_9 : _GEN_2025; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2027 = 6'ha == archit_ptr_4 ? log_reg_10 : _GEN_2026; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2028 = 6'hb == archit_ptr_4 ? log_reg_11 : _GEN_2027; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2029 = 6'hc == archit_ptr_4 ? log_reg_12 : _GEN_2028; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2030 = 6'hd == archit_ptr_4 ? log_reg_13 : _GEN_2029; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2031 = 6'he == archit_ptr_4 ? log_reg_14 : _GEN_2030; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2032 = 6'hf == archit_ptr_4 ? log_reg_15 : _GEN_2031; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2033 = 6'h10 == archit_ptr_4 ? log_reg_16 : _GEN_2032; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2034 = 6'h11 == archit_ptr_4 ? log_reg_17 : _GEN_2033; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2035 = 6'h12 == archit_ptr_4 ? log_reg_18 : _GEN_2034; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2036 = 6'h13 == archit_ptr_4 ? log_reg_19 : _GEN_2035; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2037 = 6'h14 == archit_ptr_4 ? log_reg_20 : _GEN_2036; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2038 = 6'h15 == archit_ptr_4 ? log_reg_21 : _GEN_2037; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2039 = 6'h16 == archit_ptr_4 ? log_reg_22 : _GEN_2038; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2040 = 6'h17 == archit_ptr_4 ? log_reg_23 : _GEN_2039; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2041 = 6'h18 == archit_ptr_4 ? log_reg_24 : _GEN_2040; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2042 = 6'h19 == archit_ptr_4 ? log_reg_25 : _GEN_2041; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2043 = 6'h1a == archit_ptr_4 ? log_reg_26 : _GEN_2042; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2044 = 6'h1b == archit_ptr_4 ? log_reg_27 : _GEN_2043; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2045 = 6'h1c == archit_ptr_4 ? log_reg_28 : _GEN_2044; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2046 = 6'h1d == archit_ptr_4 ? log_reg_29 : _GEN_2045; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2047 = 6'h1e == archit_ptr_4 ? log_reg_30 : _GEN_2046; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2048 = 6'h1f == archit_ptr_4 ? log_reg_31 : _GEN_2047; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2049 = 6'h20 == archit_ptr_4 ? log_reg_32 : _GEN_2048; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2050 = 6'h21 == archit_ptr_4 ? 2'h3 : _GEN_2049; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2052 = 6'h1 == archit_ptr_5 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2053 = 6'h2 == archit_ptr_5 ? log_reg_2 : _GEN_2052; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2054 = 6'h3 == archit_ptr_5 ? log_reg_3 : _GEN_2053; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2055 = 6'h4 == archit_ptr_5 ? log_reg_4 : _GEN_2054; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2056 = 6'h5 == archit_ptr_5 ? log_reg_5 : _GEN_2055; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2057 = 6'h6 == archit_ptr_5 ? log_reg_6 : _GEN_2056; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2058 = 6'h7 == archit_ptr_5 ? log_reg_7 : _GEN_2057; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2059 = 6'h8 == archit_ptr_5 ? log_reg_8 : _GEN_2058; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2060 = 6'h9 == archit_ptr_5 ? log_reg_9 : _GEN_2059; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2061 = 6'ha == archit_ptr_5 ? log_reg_10 : _GEN_2060; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2062 = 6'hb == archit_ptr_5 ? log_reg_11 : _GEN_2061; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2063 = 6'hc == archit_ptr_5 ? log_reg_12 : _GEN_2062; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2064 = 6'hd == archit_ptr_5 ? log_reg_13 : _GEN_2063; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2065 = 6'he == archit_ptr_5 ? log_reg_14 : _GEN_2064; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2066 = 6'hf == archit_ptr_5 ? log_reg_15 : _GEN_2065; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2067 = 6'h10 == archit_ptr_5 ? log_reg_16 : _GEN_2066; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2068 = 6'h11 == archit_ptr_5 ? log_reg_17 : _GEN_2067; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2069 = 6'h12 == archit_ptr_5 ? log_reg_18 : _GEN_2068; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2070 = 6'h13 == archit_ptr_5 ? log_reg_19 : _GEN_2069; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2071 = 6'h14 == archit_ptr_5 ? log_reg_20 : _GEN_2070; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2072 = 6'h15 == archit_ptr_5 ? log_reg_21 : _GEN_2071; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2073 = 6'h16 == archit_ptr_5 ? log_reg_22 : _GEN_2072; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2074 = 6'h17 == archit_ptr_5 ? log_reg_23 : _GEN_2073; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2075 = 6'h18 == archit_ptr_5 ? log_reg_24 : _GEN_2074; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2076 = 6'h19 == archit_ptr_5 ? log_reg_25 : _GEN_2075; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2077 = 6'h1a == archit_ptr_5 ? log_reg_26 : _GEN_2076; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2078 = 6'h1b == archit_ptr_5 ? log_reg_27 : _GEN_2077; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2079 = 6'h1c == archit_ptr_5 ? log_reg_28 : _GEN_2078; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2080 = 6'h1d == archit_ptr_5 ? log_reg_29 : _GEN_2079; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2081 = 6'h1e == archit_ptr_5 ? log_reg_30 : _GEN_2080; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2082 = 6'h1f == archit_ptr_5 ? log_reg_31 : _GEN_2081; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2083 = 6'h20 == archit_ptr_5 ? log_reg_32 : _GEN_2082; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2084 = 6'h21 == archit_ptr_5 ? 2'h3 : _GEN_2083; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2086 = 6'h1 == archit_ptr_6 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2087 = 6'h2 == archit_ptr_6 ? log_reg_2 : _GEN_2086; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2088 = 6'h3 == archit_ptr_6 ? log_reg_3 : _GEN_2087; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2089 = 6'h4 == archit_ptr_6 ? log_reg_4 : _GEN_2088; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2090 = 6'h5 == archit_ptr_6 ? log_reg_5 : _GEN_2089; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2091 = 6'h6 == archit_ptr_6 ? log_reg_6 : _GEN_2090; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2092 = 6'h7 == archit_ptr_6 ? log_reg_7 : _GEN_2091; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2093 = 6'h8 == archit_ptr_6 ? log_reg_8 : _GEN_2092; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2094 = 6'h9 == archit_ptr_6 ? log_reg_9 : _GEN_2093; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2095 = 6'ha == archit_ptr_6 ? log_reg_10 : _GEN_2094; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2096 = 6'hb == archit_ptr_6 ? log_reg_11 : _GEN_2095; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2097 = 6'hc == archit_ptr_6 ? log_reg_12 : _GEN_2096; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2098 = 6'hd == archit_ptr_6 ? log_reg_13 : _GEN_2097; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2099 = 6'he == archit_ptr_6 ? log_reg_14 : _GEN_2098; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2100 = 6'hf == archit_ptr_6 ? log_reg_15 : _GEN_2099; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2101 = 6'h10 == archit_ptr_6 ? log_reg_16 : _GEN_2100; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2102 = 6'h11 == archit_ptr_6 ? log_reg_17 : _GEN_2101; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2103 = 6'h12 == archit_ptr_6 ? log_reg_18 : _GEN_2102; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2104 = 6'h13 == archit_ptr_6 ? log_reg_19 : _GEN_2103; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2105 = 6'h14 == archit_ptr_6 ? log_reg_20 : _GEN_2104; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2106 = 6'h15 == archit_ptr_6 ? log_reg_21 : _GEN_2105; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2107 = 6'h16 == archit_ptr_6 ? log_reg_22 : _GEN_2106; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2108 = 6'h17 == archit_ptr_6 ? log_reg_23 : _GEN_2107; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2109 = 6'h18 == archit_ptr_6 ? log_reg_24 : _GEN_2108; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2110 = 6'h19 == archit_ptr_6 ? log_reg_25 : _GEN_2109; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2111 = 6'h1a == archit_ptr_6 ? log_reg_26 : _GEN_2110; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2112 = 6'h1b == archit_ptr_6 ? log_reg_27 : _GEN_2111; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2113 = 6'h1c == archit_ptr_6 ? log_reg_28 : _GEN_2112; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2114 = 6'h1d == archit_ptr_6 ? log_reg_29 : _GEN_2113; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2115 = 6'h1e == archit_ptr_6 ? log_reg_30 : _GEN_2114; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2116 = 6'h1f == archit_ptr_6 ? log_reg_31 : _GEN_2115; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2117 = 6'h20 == archit_ptr_6 ? log_reg_32 : _GEN_2116; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2118 = 6'h21 == archit_ptr_6 ? 2'h3 : _GEN_2117; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2120 = 6'h1 == archit_ptr_7 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2121 = 6'h2 == archit_ptr_7 ? log_reg_2 : _GEN_2120; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2122 = 6'h3 == archit_ptr_7 ? log_reg_3 : _GEN_2121; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2123 = 6'h4 == archit_ptr_7 ? log_reg_4 : _GEN_2122; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2124 = 6'h5 == archit_ptr_7 ? log_reg_5 : _GEN_2123; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2125 = 6'h6 == archit_ptr_7 ? log_reg_6 : _GEN_2124; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2126 = 6'h7 == archit_ptr_7 ? log_reg_7 : _GEN_2125; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2127 = 6'h8 == archit_ptr_7 ? log_reg_8 : _GEN_2126; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2128 = 6'h9 == archit_ptr_7 ? log_reg_9 : _GEN_2127; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2129 = 6'ha == archit_ptr_7 ? log_reg_10 : _GEN_2128; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2130 = 6'hb == archit_ptr_7 ? log_reg_11 : _GEN_2129; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2131 = 6'hc == archit_ptr_7 ? log_reg_12 : _GEN_2130; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2132 = 6'hd == archit_ptr_7 ? log_reg_13 : _GEN_2131; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2133 = 6'he == archit_ptr_7 ? log_reg_14 : _GEN_2132; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2134 = 6'hf == archit_ptr_7 ? log_reg_15 : _GEN_2133; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2135 = 6'h10 == archit_ptr_7 ? log_reg_16 : _GEN_2134; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2136 = 6'h11 == archit_ptr_7 ? log_reg_17 : _GEN_2135; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2137 = 6'h12 == archit_ptr_7 ? log_reg_18 : _GEN_2136; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2138 = 6'h13 == archit_ptr_7 ? log_reg_19 : _GEN_2137; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2139 = 6'h14 == archit_ptr_7 ? log_reg_20 : _GEN_2138; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2140 = 6'h15 == archit_ptr_7 ? log_reg_21 : _GEN_2139; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2141 = 6'h16 == archit_ptr_7 ? log_reg_22 : _GEN_2140; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2142 = 6'h17 == archit_ptr_7 ? log_reg_23 : _GEN_2141; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2143 = 6'h18 == archit_ptr_7 ? log_reg_24 : _GEN_2142; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2144 = 6'h19 == archit_ptr_7 ? log_reg_25 : _GEN_2143; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2145 = 6'h1a == archit_ptr_7 ? log_reg_26 : _GEN_2144; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2146 = 6'h1b == archit_ptr_7 ? log_reg_27 : _GEN_2145; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2147 = 6'h1c == archit_ptr_7 ? log_reg_28 : _GEN_2146; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2148 = 6'h1d == archit_ptr_7 ? log_reg_29 : _GEN_2147; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2149 = 6'h1e == archit_ptr_7 ? log_reg_30 : _GEN_2148; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2150 = 6'h1f == archit_ptr_7 ? log_reg_31 : _GEN_2149; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2151 = 6'h20 == archit_ptr_7 ? log_reg_32 : _GEN_2150; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2152 = 6'h21 == archit_ptr_7 ? 2'h3 : _GEN_2151; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2154 = 6'h1 == archit_ptr_8 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2155 = 6'h2 == archit_ptr_8 ? log_reg_2 : _GEN_2154; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2156 = 6'h3 == archit_ptr_8 ? log_reg_3 : _GEN_2155; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2157 = 6'h4 == archit_ptr_8 ? log_reg_4 : _GEN_2156; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2158 = 6'h5 == archit_ptr_8 ? log_reg_5 : _GEN_2157; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2159 = 6'h6 == archit_ptr_8 ? log_reg_6 : _GEN_2158; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2160 = 6'h7 == archit_ptr_8 ? log_reg_7 : _GEN_2159; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2161 = 6'h8 == archit_ptr_8 ? log_reg_8 : _GEN_2160; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2162 = 6'h9 == archit_ptr_8 ? log_reg_9 : _GEN_2161; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2163 = 6'ha == archit_ptr_8 ? log_reg_10 : _GEN_2162; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2164 = 6'hb == archit_ptr_8 ? log_reg_11 : _GEN_2163; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2165 = 6'hc == archit_ptr_8 ? log_reg_12 : _GEN_2164; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2166 = 6'hd == archit_ptr_8 ? log_reg_13 : _GEN_2165; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2167 = 6'he == archit_ptr_8 ? log_reg_14 : _GEN_2166; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2168 = 6'hf == archit_ptr_8 ? log_reg_15 : _GEN_2167; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2169 = 6'h10 == archit_ptr_8 ? log_reg_16 : _GEN_2168; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2170 = 6'h11 == archit_ptr_8 ? log_reg_17 : _GEN_2169; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2171 = 6'h12 == archit_ptr_8 ? log_reg_18 : _GEN_2170; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2172 = 6'h13 == archit_ptr_8 ? log_reg_19 : _GEN_2171; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2173 = 6'h14 == archit_ptr_8 ? log_reg_20 : _GEN_2172; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2174 = 6'h15 == archit_ptr_8 ? log_reg_21 : _GEN_2173; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2175 = 6'h16 == archit_ptr_8 ? log_reg_22 : _GEN_2174; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2176 = 6'h17 == archit_ptr_8 ? log_reg_23 : _GEN_2175; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2177 = 6'h18 == archit_ptr_8 ? log_reg_24 : _GEN_2176; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2178 = 6'h19 == archit_ptr_8 ? log_reg_25 : _GEN_2177; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2179 = 6'h1a == archit_ptr_8 ? log_reg_26 : _GEN_2178; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2180 = 6'h1b == archit_ptr_8 ? log_reg_27 : _GEN_2179; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2181 = 6'h1c == archit_ptr_8 ? log_reg_28 : _GEN_2180; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2182 = 6'h1d == archit_ptr_8 ? log_reg_29 : _GEN_2181; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2183 = 6'h1e == archit_ptr_8 ? log_reg_30 : _GEN_2182; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2184 = 6'h1f == archit_ptr_8 ? log_reg_31 : _GEN_2183; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2185 = 6'h20 == archit_ptr_8 ? log_reg_32 : _GEN_2184; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2186 = 6'h21 == archit_ptr_8 ? 2'h3 : _GEN_2185; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2188 = 6'h1 == archit_ptr_9 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2189 = 6'h2 == archit_ptr_9 ? log_reg_2 : _GEN_2188; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2190 = 6'h3 == archit_ptr_9 ? log_reg_3 : _GEN_2189; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2191 = 6'h4 == archit_ptr_9 ? log_reg_4 : _GEN_2190; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2192 = 6'h5 == archit_ptr_9 ? log_reg_5 : _GEN_2191; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2193 = 6'h6 == archit_ptr_9 ? log_reg_6 : _GEN_2192; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2194 = 6'h7 == archit_ptr_9 ? log_reg_7 : _GEN_2193; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2195 = 6'h8 == archit_ptr_9 ? log_reg_8 : _GEN_2194; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2196 = 6'h9 == archit_ptr_9 ? log_reg_9 : _GEN_2195; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2197 = 6'ha == archit_ptr_9 ? log_reg_10 : _GEN_2196; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2198 = 6'hb == archit_ptr_9 ? log_reg_11 : _GEN_2197; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2199 = 6'hc == archit_ptr_9 ? log_reg_12 : _GEN_2198; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2200 = 6'hd == archit_ptr_9 ? log_reg_13 : _GEN_2199; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2201 = 6'he == archit_ptr_9 ? log_reg_14 : _GEN_2200; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2202 = 6'hf == archit_ptr_9 ? log_reg_15 : _GEN_2201; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2203 = 6'h10 == archit_ptr_9 ? log_reg_16 : _GEN_2202; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2204 = 6'h11 == archit_ptr_9 ? log_reg_17 : _GEN_2203; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2205 = 6'h12 == archit_ptr_9 ? log_reg_18 : _GEN_2204; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2206 = 6'h13 == archit_ptr_9 ? log_reg_19 : _GEN_2205; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2207 = 6'h14 == archit_ptr_9 ? log_reg_20 : _GEN_2206; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2208 = 6'h15 == archit_ptr_9 ? log_reg_21 : _GEN_2207; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2209 = 6'h16 == archit_ptr_9 ? log_reg_22 : _GEN_2208; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2210 = 6'h17 == archit_ptr_9 ? log_reg_23 : _GEN_2209; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2211 = 6'h18 == archit_ptr_9 ? log_reg_24 : _GEN_2210; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2212 = 6'h19 == archit_ptr_9 ? log_reg_25 : _GEN_2211; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2213 = 6'h1a == archit_ptr_9 ? log_reg_26 : _GEN_2212; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2214 = 6'h1b == archit_ptr_9 ? log_reg_27 : _GEN_2213; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2215 = 6'h1c == archit_ptr_9 ? log_reg_28 : _GEN_2214; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2216 = 6'h1d == archit_ptr_9 ? log_reg_29 : _GEN_2215; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2217 = 6'h1e == archit_ptr_9 ? log_reg_30 : _GEN_2216; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2218 = 6'h1f == archit_ptr_9 ? log_reg_31 : _GEN_2217; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2219 = 6'h20 == archit_ptr_9 ? log_reg_32 : _GEN_2218; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2220 = 6'h21 == archit_ptr_9 ? 2'h3 : _GEN_2219; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2222 = 6'h1 == archit_ptr_10 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2223 = 6'h2 == archit_ptr_10 ? log_reg_2 : _GEN_2222; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2224 = 6'h3 == archit_ptr_10 ? log_reg_3 : _GEN_2223; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2225 = 6'h4 == archit_ptr_10 ? log_reg_4 : _GEN_2224; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2226 = 6'h5 == archit_ptr_10 ? log_reg_5 : _GEN_2225; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2227 = 6'h6 == archit_ptr_10 ? log_reg_6 : _GEN_2226; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2228 = 6'h7 == archit_ptr_10 ? log_reg_7 : _GEN_2227; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2229 = 6'h8 == archit_ptr_10 ? log_reg_8 : _GEN_2228; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2230 = 6'h9 == archit_ptr_10 ? log_reg_9 : _GEN_2229; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2231 = 6'ha == archit_ptr_10 ? log_reg_10 : _GEN_2230; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2232 = 6'hb == archit_ptr_10 ? log_reg_11 : _GEN_2231; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2233 = 6'hc == archit_ptr_10 ? log_reg_12 : _GEN_2232; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2234 = 6'hd == archit_ptr_10 ? log_reg_13 : _GEN_2233; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2235 = 6'he == archit_ptr_10 ? log_reg_14 : _GEN_2234; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2236 = 6'hf == archit_ptr_10 ? log_reg_15 : _GEN_2235; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2237 = 6'h10 == archit_ptr_10 ? log_reg_16 : _GEN_2236; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2238 = 6'h11 == archit_ptr_10 ? log_reg_17 : _GEN_2237; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2239 = 6'h12 == archit_ptr_10 ? log_reg_18 : _GEN_2238; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2240 = 6'h13 == archit_ptr_10 ? log_reg_19 : _GEN_2239; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2241 = 6'h14 == archit_ptr_10 ? log_reg_20 : _GEN_2240; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2242 = 6'h15 == archit_ptr_10 ? log_reg_21 : _GEN_2241; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2243 = 6'h16 == archit_ptr_10 ? log_reg_22 : _GEN_2242; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2244 = 6'h17 == archit_ptr_10 ? log_reg_23 : _GEN_2243; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2245 = 6'h18 == archit_ptr_10 ? log_reg_24 : _GEN_2244; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2246 = 6'h19 == archit_ptr_10 ? log_reg_25 : _GEN_2245; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2247 = 6'h1a == archit_ptr_10 ? log_reg_26 : _GEN_2246; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2248 = 6'h1b == archit_ptr_10 ? log_reg_27 : _GEN_2247; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2249 = 6'h1c == archit_ptr_10 ? log_reg_28 : _GEN_2248; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2250 = 6'h1d == archit_ptr_10 ? log_reg_29 : _GEN_2249; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2251 = 6'h1e == archit_ptr_10 ? log_reg_30 : _GEN_2250; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2252 = 6'h1f == archit_ptr_10 ? log_reg_31 : _GEN_2251; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2253 = 6'h20 == archit_ptr_10 ? log_reg_32 : _GEN_2252; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2254 = 6'h21 == archit_ptr_10 ? 2'h3 : _GEN_2253; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2256 = 6'h1 == archit_ptr_11 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2257 = 6'h2 == archit_ptr_11 ? log_reg_2 : _GEN_2256; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2258 = 6'h3 == archit_ptr_11 ? log_reg_3 : _GEN_2257; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2259 = 6'h4 == archit_ptr_11 ? log_reg_4 : _GEN_2258; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2260 = 6'h5 == archit_ptr_11 ? log_reg_5 : _GEN_2259; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2261 = 6'h6 == archit_ptr_11 ? log_reg_6 : _GEN_2260; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2262 = 6'h7 == archit_ptr_11 ? log_reg_7 : _GEN_2261; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2263 = 6'h8 == archit_ptr_11 ? log_reg_8 : _GEN_2262; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2264 = 6'h9 == archit_ptr_11 ? log_reg_9 : _GEN_2263; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2265 = 6'ha == archit_ptr_11 ? log_reg_10 : _GEN_2264; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2266 = 6'hb == archit_ptr_11 ? log_reg_11 : _GEN_2265; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2267 = 6'hc == archit_ptr_11 ? log_reg_12 : _GEN_2266; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2268 = 6'hd == archit_ptr_11 ? log_reg_13 : _GEN_2267; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2269 = 6'he == archit_ptr_11 ? log_reg_14 : _GEN_2268; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2270 = 6'hf == archit_ptr_11 ? log_reg_15 : _GEN_2269; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2271 = 6'h10 == archit_ptr_11 ? log_reg_16 : _GEN_2270; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2272 = 6'h11 == archit_ptr_11 ? log_reg_17 : _GEN_2271; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2273 = 6'h12 == archit_ptr_11 ? log_reg_18 : _GEN_2272; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2274 = 6'h13 == archit_ptr_11 ? log_reg_19 : _GEN_2273; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2275 = 6'h14 == archit_ptr_11 ? log_reg_20 : _GEN_2274; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2276 = 6'h15 == archit_ptr_11 ? log_reg_21 : _GEN_2275; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2277 = 6'h16 == archit_ptr_11 ? log_reg_22 : _GEN_2276; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2278 = 6'h17 == archit_ptr_11 ? log_reg_23 : _GEN_2277; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2279 = 6'h18 == archit_ptr_11 ? log_reg_24 : _GEN_2278; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2280 = 6'h19 == archit_ptr_11 ? log_reg_25 : _GEN_2279; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2281 = 6'h1a == archit_ptr_11 ? log_reg_26 : _GEN_2280; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2282 = 6'h1b == archit_ptr_11 ? log_reg_27 : _GEN_2281; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2283 = 6'h1c == archit_ptr_11 ? log_reg_28 : _GEN_2282; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2284 = 6'h1d == archit_ptr_11 ? log_reg_29 : _GEN_2283; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2285 = 6'h1e == archit_ptr_11 ? log_reg_30 : _GEN_2284; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2286 = 6'h1f == archit_ptr_11 ? log_reg_31 : _GEN_2285; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2287 = 6'h20 == archit_ptr_11 ? log_reg_32 : _GEN_2286; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2288 = 6'h21 == archit_ptr_11 ? 2'h3 : _GEN_2287; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2290 = 6'h1 == archit_ptr_12 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2291 = 6'h2 == archit_ptr_12 ? log_reg_2 : _GEN_2290; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2292 = 6'h3 == archit_ptr_12 ? log_reg_3 : _GEN_2291; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2293 = 6'h4 == archit_ptr_12 ? log_reg_4 : _GEN_2292; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2294 = 6'h5 == archit_ptr_12 ? log_reg_5 : _GEN_2293; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2295 = 6'h6 == archit_ptr_12 ? log_reg_6 : _GEN_2294; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2296 = 6'h7 == archit_ptr_12 ? log_reg_7 : _GEN_2295; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2297 = 6'h8 == archit_ptr_12 ? log_reg_8 : _GEN_2296; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2298 = 6'h9 == archit_ptr_12 ? log_reg_9 : _GEN_2297; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2299 = 6'ha == archit_ptr_12 ? log_reg_10 : _GEN_2298; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2300 = 6'hb == archit_ptr_12 ? log_reg_11 : _GEN_2299; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2301 = 6'hc == archit_ptr_12 ? log_reg_12 : _GEN_2300; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2302 = 6'hd == archit_ptr_12 ? log_reg_13 : _GEN_2301; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2303 = 6'he == archit_ptr_12 ? log_reg_14 : _GEN_2302; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2304 = 6'hf == archit_ptr_12 ? log_reg_15 : _GEN_2303; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2305 = 6'h10 == archit_ptr_12 ? log_reg_16 : _GEN_2304; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2306 = 6'h11 == archit_ptr_12 ? log_reg_17 : _GEN_2305; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2307 = 6'h12 == archit_ptr_12 ? log_reg_18 : _GEN_2306; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2308 = 6'h13 == archit_ptr_12 ? log_reg_19 : _GEN_2307; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2309 = 6'h14 == archit_ptr_12 ? log_reg_20 : _GEN_2308; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2310 = 6'h15 == archit_ptr_12 ? log_reg_21 : _GEN_2309; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2311 = 6'h16 == archit_ptr_12 ? log_reg_22 : _GEN_2310; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2312 = 6'h17 == archit_ptr_12 ? log_reg_23 : _GEN_2311; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2313 = 6'h18 == archit_ptr_12 ? log_reg_24 : _GEN_2312; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2314 = 6'h19 == archit_ptr_12 ? log_reg_25 : _GEN_2313; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2315 = 6'h1a == archit_ptr_12 ? log_reg_26 : _GEN_2314; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2316 = 6'h1b == archit_ptr_12 ? log_reg_27 : _GEN_2315; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2317 = 6'h1c == archit_ptr_12 ? log_reg_28 : _GEN_2316; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2318 = 6'h1d == archit_ptr_12 ? log_reg_29 : _GEN_2317; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2319 = 6'h1e == archit_ptr_12 ? log_reg_30 : _GEN_2318; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2320 = 6'h1f == archit_ptr_12 ? log_reg_31 : _GEN_2319; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2321 = 6'h20 == archit_ptr_12 ? log_reg_32 : _GEN_2320; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2322 = 6'h21 == archit_ptr_12 ? 2'h3 : _GEN_2321; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2324 = 6'h1 == archit_ptr_13 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2325 = 6'h2 == archit_ptr_13 ? log_reg_2 : _GEN_2324; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2326 = 6'h3 == archit_ptr_13 ? log_reg_3 : _GEN_2325; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2327 = 6'h4 == archit_ptr_13 ? log_reg_4 : _GEN_2326; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2328 = 6'h5 == archit_ptr_13 ? log_reg_5 : _GEN_2327; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2329 = 6'h6 == archit_ptr_13 ? log_reg_6 : _GEN_2328; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2330 = 6'h7 == archit_ptr_13 ? log_reg_7 : _GEN_2329; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2331 = 6'h8 == archit_ptr_13 ? log_reg_8 : _GEN_2330; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2332 = 6'h9 == archit_ptr_13 ? log_reg_9 : _GEN_2331; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2333 = 6'ha == archit_ptr_13 ? log_reg_10 : _GEN_2332; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2334 = 6'hb == archit_ptr_13 ? log_reg_11 : _GEN_2333; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2335 = 6'hc == archit_ptr_13 ? log_reg_12 : _GEN_2334; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2336 = 6'hd == archit_ptr_13 ? log_reg_13 : _GEN_2335; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2337 = 6'he == archit_ptr_13 ? log_reg_14 : _GEN_2336; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2338 = 6'hf == archit_ptr_13 ? log_reg_15 : _GEN_2337; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2339 = 6'h10 == archit_ptr_13 ? log_reg_16 : _GEN_2338; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2340 = 6'h11 == archit_ptr_13 ? log_reg_17 : _GEN_2339; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2341 = 6'h12 == archit_ptr_13 ? log_reg_18 : _GEN_2340; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2342 = 6'h13 == archit_ptr_13 ? log_reg_19 : _GEN_2341; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2343 = 6'h14 == archit_ptr_13 ? log_reg_20 : _GEN_2342; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2344 = 6'h15 == archit_ptr_13 ? log_reg_21 : _GEN_2343; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2345 = 6'h16 == archit_ptr_13 ? log_reg_22 : _GEN_2344; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2346 = 6'h17 == archit_ptr_13 ? log_reg_23 : _GEN_2345; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2347 = 6'h18 == archit_ptr_13 ? log_reg_24 : _GEN_2346; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2348 = 6'h19 == archit_ptr_13 ? log_reg_25 : _GEN_2347; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2349 = 6'h1a == archit_ptr_13 ? log_reg_26 : _GEN_2348; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2350 = 6'h1b == archit_ptr_13 ? log_reg_27 : _GEN_2349; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2351 = 6'h1c == archit_ptr_13 ? log_reg_28 : _GEN_2350; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2352 = 6'h1d == archit_ptr_13 ? log_reg_29 : _GEN_2351; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2353 = 6'h1e == archit_ptr_13 ? log_reg_30 : _GEN_2352; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2354 = 6'h1f == archit_ptr_13 ? log_reg_31 : _GEN_2353; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2355 = 6'h20 == archit_ptr_13 ? log_reg_32 : _GEN_2354; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2356 = 6'h21 == archit_ptr_13 ? 2'h3 : _GEN_2355; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2358 = 6'h1 == archit_ptr_14 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2359 = 6'h2 == archit_ptr_14 ? log_reg_2 : _GEN_2358; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2360 = 6'h3 == archit_ptr_14 ? log_reg_3 : _GEN_2359; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2361 = 6'h4 == archit_ptr_14 ? log_reg_4 : _GEN_2360; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2362 = 6'h5 == archit_ptr_14 ? log_reg_5 : _GEN_2361; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2363 = 6'h6 == archit_ptr_14 ? log_reg_6 : _GEN_2362; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2364 = 6'h7 == archit_ptr_14 ? log_reg_7 : _GEN_2363; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2365 = 6'h8 == archit_ptr_14 ? log_reg_8 : _GEN_2364; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2366 = 6'h9 == archit_ptr_14 ? log_reg_9 : _GEN_2365; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2367 = 6'ha == archit_ptr_14 ? log_reg_10 : _GEN_2366; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2368 = 6'hb == archit_ptr_14 ? log_reg_11 : _GEN_2367; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2369 = 6'hc == archit_ptr_14 ? log_reg_12 : _GEN_2368; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2370 = 6'hd == archit_ptr_14 ? log_reg_13 : _GEN_2369; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2371 = 6'he == archit_ptr_14 ? log_reg_14 : _GEN_2370; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2372 = 6'hf == archit_ptr_14 ? log_reg_15 : _GEN_2371; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2373 = 6'h10 == archit_ptr_14 ? log_reg_16 : _GEN_2372; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2374 = 6'h11 == archit_ptr_14 ? log_reg_17 : _GEN_2373; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2375 = 6'h12 == archit_ptr_14 ? log_reg_18 : _GEN_2374; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2376 = 6'h13 == archit_ptr_14 ? log_reg_19 : _GEN_2375; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2377 = 6'h14 == archit_ptr_14 ? log_reg_20 : _GEN_2376; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2378 = 6'h15 == archit_ptr_14 ? log_reg_21 : _GEN_2377; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2379 = 6'h16 == archit_ptr_14 ? log_reg_22 : _GEN_2378; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2380 = 6'h17 == archit_ptr_14 ? log_reg_23 : _GEN_2379; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2381 = 6'h18 == archit_ptr_14 ? log_reg_24 : _GEN_2380; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2382 = 6'h19 == archit_ptr_14 ? log_reg_25 : _GEN_2381; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2383 = 6'h1a == archit_ptr_14 ? log_reg_26 : _GEN_2382; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2384 = 6'h1b == archit_ptr_14 ? log_reg_27 : _GEN_2383; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2385 = 6'h1c == archit_ptr_14 ? log_reg_28 : _GEN_2384; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2386 = 6'h1d == archit_ptr_14 ? log_reg_29 : _GEN_2385; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2387 = 6'h1e == archit_ptr_14 ? log_reg_30 : _GEN_2386; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2388 = 6'h1f == archit_ptr_14 ? log_reg_31 : _GEN_2387; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2389 = 6'h20 == archit_ptr_14 ? log_reg_32 : _GEN_2388; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2390 = 6'h21 == archit_ptr_14 ? 2'h3 : _GEN_2389; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2392 = 6'h1 == archit_ptr_15 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2393 = 6'h2 == archit_ptr_15 ? log_reg_2 : _GEN_2392; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2394 = 6'h3 == archit_ptr_15 ? log_reg_3 : _GEN_2393; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2395 = 6'h4 == archit_ptr_15 ? log_reg_4 : _GEN_2394; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2396 = 6'h5 == archit_ptr_15 ? log_reg_5 : _GEN_2395; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2397 = 6'h6 == archit_ptr_15 ? log_reg_6 : _GEN_2396; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2398 = 6'h7 == archit_ptr_15 ? log_reg_7 : _GEN_2397; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2399 = 6'h8 == archit_ptr_15 ? log_reg_8 : _GEN_2398; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2400 = 6'h9 == archit_ptr_15 ? log_reg_9 : _GEN_2399; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2401 = 6'ha == archit_ptr_15 ? log_reg_10 : _GEN_2400; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2402 = 6'hb == archit_ptr_15 ? log_reg_11 : _GEN_2401; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2403 = 6'hc == archit_ptr_15 ? log_reg_12 : _GEN_2402; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2404 = 6'hd == archit_ptr_15 ? log_reg_13 : _GEN_2403; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2405 = 6'he == archit_ptr_15 ? log_reg_14 : _GEN_2404; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2406 = 6'hf == archit_ptr_15 ? log_reg_15 : _GEN_2405; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2407 = 6'h10 == archit_ptr_15 ? log_reg_16 : _GEN_2406; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2408 = 6'h11 == archit_ptr_15 ? log_reg_17 : _GEN_2407; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2409 = 6'h12 == archit_ptr_15 ? log_reg_18 : _GEN_2408; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2410 = 6'h13 == archit_ptr_15 ? log_reg_19 : _GEN_2409; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2411 = 6'h14 == archit_ptr_15 ? log_reg_20 : _GEN_2410; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2412 = 6'h15 == archit_ptr_15 ? log_reg_21 : _GEN_2411; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2413 = 6'h16 == archit_ptr_15 ? log_reg_22 : _GEN_2412; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2414 = 6'h17 == archit_ptr_15 ? log_reg_23 : _GEN_2413; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2415 = 6'h18 == archit_ptr_15 ? log_reg_24 : _GEN_2414; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2416 = 6'h19 == archit_ptr_15 ? log_reg_25 : _GEN_2415; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2417 = 6'h1a == archit_ptr_15 ? log_reg_26 : _GEN_2416; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2418 = 6'h1b == archit_ptr_15 ? log_reg_27 : _GEN_2417; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2419 = 6'h1c == archit_ptr_15 ? log_reg_28 : _GEN_2418; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2420 = 6'h1d == archit_ptr_15 ? log_reg_29 : _GEN_2419; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2421 = 6'h1e == archit_ptr_15 ? log_reg_30 : _GEN_2420; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2422 = 6'h1f == archit_ptr_15 ? log_reg_31 : _GEN_2421; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2423 = 6'h20 == archit_ptr_15 ? log_reg_32 : _GEN_2422; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2424 = 6'h21 == archit_ptr_15 ? 2'h3 : _GEN_2423; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2426 = 6'h1 == archit_ptr_16 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2427 = 6'h2 == archit_ptr_16 ? log_reg_2 : _GEN_2426; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2428 = 6'h3 == archit_ptr_16 ? log_reg_3 : _GEN_2427; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2429 = 6'h4 == archit_ptr_16 ? log_reg_4 : _GEN_2428; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2430 = 6'h5 == archit_ptr_16 ? log_reg_5 : _GEN_2429; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2431 = 6'h6 == archit_ptr_16 ? log_reg_6 : _GEN_2430; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2432 = 6'h7 == archit_ptr_16 ? log_reg_7 : _GEN_2431; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2433 = 6'h8 == archit_ptr_16 ? log_reg_8 : _GEN_2432; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2434 = 6'h9 == archit_ptr_16 ? log_reg_9 : _GEN_2433; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2435 = 6'ha == archit_ptr_16 ? log_reg_10 : _GEN_2434; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2436 = 6'hb == archit_ptr_16 ? log_reg_11 : _GEN_2435; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2437 = 6'hc == archit_ptr_16 ? log_reg_12 : _GEN_2436; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2438 = 6'hd == archit_ptr_16 ? log_reg_13 : _GEN_2437; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2439 = 6'he == archit_ptr_16 ? log_reg_14 : _GEN_2438; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2440 = 6'hf == archit_ptr_16 ? log_reg_15 : _GEN_2439; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2441 = 6'h10 == archit_ptr_16 ? log_reg_16 : _GEN_2440; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2442 = 6'h11 == archit_ptr_16 ? log_reg_17 : _GEN_2441; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2443 = 6'h12 == archit_ptr_16 ? log_reg_18 : _GEN_2442; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2444 = 6'h13 == archit_ptr_16 ? log_reg_19 : _GEN_2443; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2445 = 6'h14 == archit_ptr_16 ? log_reg_20 : _GEN_2444; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2446 = 6'h15 == archit_ptr_16 ? log_reg_21 : _GEN_2445; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2447 = 6'h16 == archit_ptr_16 ? log_reg_22 : _GEN_2446; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2448 = 6'h17 == archit_ptr_16 ? log_reg_23 : _GEN_2447; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2449 = 6'h18 == archit_ptr_16 ? log_reg_24 : _GEN_2448; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2450 = 6'h19 == archit_ptr_16 ? log_reg_25 : _GEN_2449; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2451 = 6'h1a == archit_ptr_16 ? log_reg_26 : _GEN_2450; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2452 = 6'h1b == archit_ptr_16 ? log_reg_27 : _GEN_2451; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2453 = 6'h1c == archit_ptr_16 ? log_reg_28 : _GEN_2452; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2454 = 6'h1d == archit_ptr_16 ? log_reg_29 : _GEN_2453; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2455 = 6'h1e == archit_ptr_16 ? log_reg_30 : _GEN_2454; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2456 = 6'h1f == archit_ptr_16 ? log_reg_31 : _GEN_2455; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2457 = 6'h20 == archit_ptr_16 ? log_reg_32 : _GEN_2456; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2458 = 6'h21 == archit_ptr_16 ? 2'h3 : _GEN_2457; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2460 = 6'h1 == archit_ptr_17 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2461 = 6'h2 == archit_ptr_17 ? log_reg_2 : _GEN_2460; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2462 = 6'h3 == archit_ptr_17 ? log_reg_3 : _GEN_2461; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2463 = 6'h4 == archit_ptr_17 ? log_reg_4 : _GEN_2462; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2464 = 6'h5 == archit_ptr_17 ? log_reg_5 : _GEN_2463; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2465 = 6'h6 == archit_ptr_17 ? log_reg_6 : _GEN_2464; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2466 = 6'h7 == archit_ptr_17 ? log_reg_7 : _GEN_2465; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2467 = 6'h8 == archit_ptr_17 ? log_reg_8 : _GEN_2466; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2468 = 6'h9 == archit_ptr_17 ? log_reg_9 : _GEN_2467; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2469 = 6'ha == archit_ptr_17 ? log_reg_10 : _GEN_2468; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2470 = 6'hb == archit_ptr_17 ? log_reg_11 : _GEN_2469; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2471 = 6'hc == archit_ptr_17 ? log_reg_12 : _GEN_2470; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2472 = 6'hd == archit_ptr_17 ? log_reg_13 : _GEN_2471; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2473 = 6'he == archit_ptr_17 ? log_reg_14 : _GEN_2472; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2474 = 6'hf == archit_ptr_17 ? log_reg_15 : _GEN_2473; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2475 = 6'h10 == archit_ptr_17 ? log_reg_16 : _GEN_2474; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2476 = 6'h11 == archit_ptr_17 ? log_reg_17 : _GEN_2475; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2477 = 6'h12 == archit_ptr_17 ? log_reg_18 : _GEN_2476; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2478 = 6'h13 == archit_ptr_17 ? log_reg_19 : _GEN_2477; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2479 = 6'h14 == archit_ptr_17 ? log_reg_20 : _GEN_2478; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2480 = 6'h15 == archit_ptr_17 ? log_reg_21 : _GEN_2479; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2481 = 6'h16 == archit_ptr_17 ? log_reg_22 : _GEN_2480; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2482 = 6'h17 == archit_ptr_17 ? log_reg_23 : _GEN_2481; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2483 = 6'h18 == archit_ptr_17 ? log_reg_24 : _GEN_2482; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2484 = 6'h19 == archit_ptr_17 ? log_reg_25 : _GEN_2483; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2485 = 6'h1a == archit_ptr_17 ? log_reg_26 : _GEN_2484; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2486 = 6'h1b == archit_ptr_17 ? log_reg_27 : _GEN_2485; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2487 = 6'h1c == archit_ptr_17 ? log_reg_28 : _GEN_2486; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2488 = 6'h1d == archit_ptr_17 ? log_reg_29 : _GEN_2487; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2489 = 6'h1e == archit_ptr_17 ? log_reg_30 : _GEN_2488; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2490 = 6'h1f == archit_ptr_17 ? log_reg_31 : _GEN_2489; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2491 = 6'h20 == archit_ptr_17 ? log_reg_32 : _GEN_2490; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2492 = 6'h21 == archit_ptr_17 ? 2'h3 : _GEN_2491; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2494 = 6'h1 == archit_ptr_18 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2495 = 6'h2 == archit_ptr_18 ? log_reg_2 : _GEN_2494; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2496 = 6'h3 == archit_ptr_18 ? log_reg_3 : _GEN_2495; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2497 = 6'h4 == archit_ptr_18 ? log_reg_4 : _GEN_2496; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2498 = 6'h5 == archit_ptr_18 ? log_reg_5 : _GEN_2497; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2499 = 6'h6 == archit_ptr_18 ? log_reg_6 : _GEN_2498; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2500 = 6'h7 == archit_ptr_18 ? log_reg_7 : _GEN_2499; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2501 = 6'h8 == archit_ptr_18 ? log_reg_8 : _GEN_2500; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2502 = 6'h9 == archit_ptr_18 ? log_reg_9 : _GEN_2501; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2503 = 6'ha == archit_ptr_18 ? log_reg_10 : _GEN_2502; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2504 = 6'hb == archit_ptr_18 ? log_reg_11 : _GEN_2503; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2505 = 6'hc == archit_ptr_18 ? log_reg_12 : _GEN_2504; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2506 = 6'hd == archit_ptr_18 ? log_reg_13 : _GEN_2505; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2507 = 6'he == archit_ptr_18 ? log_reg_14 : _GEN_2506; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2508 = 6'hf == archit_ptr_18 ? log_reg_15 : _GEN_2507; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2509 = 6'h10 == archit_ptr_18 ? log_reg_16 : _GEN_2508; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2510 = 6'h11 == archit_ptr_18 ? log_reg_17 : _GEN_2509; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2511 = 6'h12 == archit_ptr_18 ? log_reg_18 : _GEN_2510; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2512 = 6'h13 == archit_ptr_18 ? log_reg_19 : _GEN_2511; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2513 = 6'h14 == archit_ptr_18 ? log_reg_20 : _GEN_2512; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2514 = 6'h15 == archit_ptr_18 ? log_reg_21 : _GEN_2513; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2515 = 6'h16 == archit_ptr_18 ? log_reg_22 : _GEN_2514; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2516 = 6'h17 == archit_ptr_18 ? log_reg_23 : _GEN_2515; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2517 = 6'h18 == archit_ptr_18 ? log_reg_24 : _GEN_2516; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2518 = 6'h19 == archit_ptr_18 ? log_reg_25 : _GEN_2517; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2519 = 6'h1a == archit_ptr_18 ? log_reg_26 : _GEN_2518; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2520 = 6'h1b == archit_ptr_18 ? log_reg_27 : _GEN_2519; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2521 = 6'h1c == archit_ptr_18 ? log_reg_28 : _GEN_2520; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2522 = 6'h1d == archit_ptr_18 ? log_reg_29 : _GEN_2521; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2523 = 6'h1e == archit_ptr_18 ? log_reg_30 : _GEN_2522; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2524 = 6'h1f == archit_ptr_18 ? log_reg_31 : _GEN_2523; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2525 = 6'h20 == archit_ptr_18 ? log_reg_32 : _GEN_2524; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2526 = 6'h21 == archit_ptr_18 ? 2'h3 : _GEN_2525; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2528 = 6'h1 == archit_ptr_19 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2529 = 6'h2 == archit_ptr_19 ? log_reg_2 : _GEN_2528; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2530 = 6'h3 == archit_ptr_19 ? log_reg_3 : _GEN_2529; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2531 = 6'h4 == archit_ptr_19 ? log_reg_4 : _GEN_2530; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2532 = 6'h5 == archit_ptr_19 ? log_reg_5 : _GEN_2531; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2533 = 6'h6 == archit_ptr_19 ? log_reg_6 : _GEN_2532; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2534 = 6'h7 == archit_ptr_19 ? log_reg_7 : _GEN_2533; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2535 = 6'h8 == archit_ptr_19 ? log_reg_8 : _GEN_2534; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2536 = 6'h9 == archit_ptr_19 ? log_reg_9 : _GEN_2535; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2537 = 6'ha == archit_ptr_19 ? log_reg_10 : _GEN_2536; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2538 = 6'hb == archit_ptr_19 ? log_reg_11 : _GEN_2537; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2539 = 6'hc == archit_ptr_19 ? log_reg_12 : _GEN_2538; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2540 = 6'hd == archit_ptr_19 ? log_reg_13 : _GEN_2539; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2541 = 6'he == archit_ptr_19 ? log_reg_14 : _GEN_2540; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2542 = 6'hf == archit_ptr_19 ? log_reg_15 : _GEN_2541; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2543 = 6'h10 == archit_ptr_19 ? log_reg_16 : _GEN_2542; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2544 = 6'h11 == archit_ptr_19 ? log_reg_17 : _GEN_2543; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2545 = 6'h12 == archit_ptr_19 ? log_reg_18 : _GEN_2544; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2546 = 6'h13 == archit_ptr_19 ? log_reg_19 : _GEN_2545; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2547 = 6'h14 == archit_ptr_19 ? log_reg_20 : _GEN_2546; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2548 = 6'h15 == archit_ptr_19 ? log_reg_21 : _GEN_2547; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2549 = 6'h16 == archit_ptr_19 ? log_reg_22 : _GEN_2548; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2550 = 6'h17 == archit_ptr_19 ? log_reg_23 : _GEN_2549; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2551 = 6'h18 == archit_ptr_19 ? log_reg_24 : _GEN_2550; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2552 = 6'h19 == archit_ptr_19 ? log_reg_25 : _GEN_2551; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2553 = 6'h1a == archit_ptr_19 ? log_reg_26 : _GEN_2552; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2554 = 6'h1b == archit_ptr_19 ? log_reg_27 : _GEN_2553; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2555 = 6'h1c == archit_ptr_19 ? log_reg_28 : _GEN_2554; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2556 = 6'h1d == archit_ptr_19 ? log_reg_29 : _GEN_2555; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2557 = 6'h1e == archit_ptr_19 ? log_reg_30 : _GEN_2556; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2558 = 6'h1f == archit_ptr_19 ? log_reg_31 : _GEN_2557; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2559 = 6'h20 == archit_ptr_19 ? log_reg_32 : _GEN_2558; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2560 = 6'h21 == archit_ptr_19 ? 2'h3 : _GEN_2559; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2562 = 6'h1 == archit_ptr_20 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2563 = 6'h2 == archit_ptr_20 ? log_reg_2 : _GEN_2562; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2564 = 6'h3 == archit_ptr_20 ? log_reg_3 : _GEN_2563; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2565 = 6'h4 == archit_ptr_20 ? log_reg_4 : _GEN_2564; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2566 = 6'h5 == archit_ptr_20 ? log_reg_5 : _GEN_2565; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2567 = 6'h6 == archit_ptr_20 ? log_reg_6 : _GEN_2566; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2568 = 6'h7 == archit_ptr_20 ? log_reg_7 : _GEN_2567; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2569 = 6'h8 == archit_ptr_20 ? log_reg_8 : _GEN_2568; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2570 = 6'h9 == archit_ptr_20 ? log_reg_9 : _GEN_2569; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2571 = 6'ha == archit_ptr_20 ? log_reg_10 : _GEN_2570; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2572 = 6'hb == archit_ptr_20 ? log_reg_11 : _GEN_2571; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2573 = 6'hc == archit_ptr_20 ? log_reg_12 : _GEN_2572; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2574 = 6'hd == archit_ptr_20 ? log_reg_13 : _GEN_2573; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2575 = 6'he == archit_ptr_20 ? log_reg_14 : _GEN_2574; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2576 = 6'hf == archit_ptr_20 ? log_reg_15 : _GEN_2575; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2577 = 6'h10 == archit_ptr_20 ? log_reg_16 : _GEN_2576; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2578 = 6'h11 == archit_ptr_20 ? log_reg_17 : _GEN_2577; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2579 = 6'h12 == archit_ptr_20 ? log_reg_18 : _GEN_2578; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2580 = 6'h13 == archit_ptr_20 ? log_reg_19 : _GEN_2579; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2581 = 6'h14 == archit_ptr_20 ? log_reg_20 : _GEN_2580; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2582 = 6'h15 == archit_ptr_20 ? log_reg_21 : _GEN_2581; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2583 = 6'h16 == archit_ptr_20 ? log_reg_22 : _GEN_2582; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2584 = 6'h17 == archit_ptr_20 ? log_reg_23 : _GEN_2583; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2585 = 6'h18 == archit_ptr_20 ? log_reg_24 : _GEN_2584; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2586 = 6'h19 == archit_ptr_20 ? log_reg_25 : _GEN_2585; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2587 = 6'h1a == archit_ptr_20 ? log_reg_26 : _GEN_2586; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2588 = 6'h1b == archit_ptr_20 ? log_reg_27 : _GEN_2587; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2589 = 6'h1c == archit_ptr_20 ? log_reg_28 : _GEN_2588; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2590 = 6'h1d == archit_ptr_20 ? log_reg_29 : _GEN_2589; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2591 = 6'h1e == archit_ptr_20 ? log_reg_30 : _GEN_2590; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2592 = 6'h1f == archit_ptr_20 ? log_reg_31 : _GEN_2591; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2593 = 6'h20 == archit_ptr_20 ? log_reg_32 : _GEN_2592; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2594 = 6'h21 == archit_ptr_20 ? 2'h3 : _GEN_2593; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2596 = 6'h1 == archit_ptr_21 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2597 = 6'h2 == archit_ptr_21 ? log_reg_2 : _GEN_2596; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2598 = 6'h3 == archit_ptr_21 ? log_reg_3 : _GEN_2597; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2599 = 6'h4 == archit_ptr_21 ? log_reg_4 : _GEN_2598; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2600 = 6'h5 == archit_ptr_21 ? log_reg_5 : _GEN_2599; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2601 = 6'h6 == archit_ptr_21 ? log_reg_6 : _GEN_2600; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2602 = 6'h7 == archit_ptr_21 ? log_reg_7 : _GEN_2601; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2603 = 6'h8 == archit_ptr_21 ? log_reg_8 : _GEN_2602; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2604 = 6'h9 == archit_ptr_21 ? log_reg_9 : _GEN_2603; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2605 = 6'ha == archit_ptr_21 ? log_reg_10 : _GEN_2604; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2606 = 6'hb == archit_ptr_21 ? log_reg_11 : _GEN_2605; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2607 = 6'hc == archit_ptr_21 ? log_reg_12 : _GEN_2606; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2608 = 6'hd == archit_ptr_21 ? log_reg_13 : _GEN_2607; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2609 = 6'he == archit_ptr_21 ? log_reg_14 : _GEN_2608; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2610 = 6'hf == archit_ptr_21 ? log_reg_15 : _GEN_2609; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2611 = 6'h10 == archit_ptr_21 ? log_reg_16 : _GEN_2610; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2612 = 6'h11 == archit_ptr_21 ? log_reg_17 : _GEN_2611; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2613 = 6'h12 == archit_ptr_21 ? log_reg_18 : _GEN_2612; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2614 = 6'h13 == archit_ptr_21 ? log_reg_19 : _GEN_2613; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2615 = 6'h14 == archit_ptr_21 ? log_reg_20 : _GEN_2614; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2616 = 6'h15 == archit_ptr_21 ? log_reg_21 : _GEN_2615; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2617 = 6'h16 == archit_ptr_21 ? log_reg_22 : _GEN_2616; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2618 = 6'h17 == archit_ptr_21 ? log_reg_23 : _GEN_2617; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2619 = 6'h18 == archit_ptr_21 ? log_reg_24 : _GEN_2618; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2620 = 6'h19 == archit_ptr_21 ? log_reg_25 : _GEN_2619; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2621 = 6'h1a == archit_ptr_21 ? log_reg_26 : _GEN_2620; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2622 = 6'h1b == archit_ptr_21 ? log_reg_27 : _GEN_2621; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2623 = 6'h1c == archit_ptr_21 ? log_reg_28 : _GEN_2622; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2624 = 6'h1d == archit_ptr_21 ? log_reg_29 : _GEN_2623; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2625 = 6'h1e == archit_ptr_21 ? log_reg_30 : _GEN_2624; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2626 = 6'h1f == archit_ptr_21 ? log_reg_31 : _GEN_2625; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2627 = 6'h20 == archit_ptr_21 ? log_reg_32 : _GEN_2626; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2628 = 6'h21 == archit_ptr_21 ? 2'h3 : _GEN_2627; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2630 = 6'h1 == archit_ptr_22 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2631 = 6'h2 == archit_ptr_22 ? log_reg_2 : _GEN_2630; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2632 = 6'h3 == archit_ptr_22 ? log_reg_3 : _GEN_2631; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2633 = 6'h4 == archit_ptr_22 ? log_reg_4 : _GEN_2632; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2634 = 6'h5 == archit_ptr_22 ? log_reg_5 : _GEN_2633; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2635 = 6'h6 == archit_ptr_22 ? log_reg_6 : _GEN_2634; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2636 = 6'h7 == archit_ptr_22 ? log_reg_7 : _GEN_2635; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2637 = 6'h8 == archit_ptr_22 ? log_reg_8 : _GEN_2636; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2638 = 6'h9 == archit_ptr_22 ? log_reg_9 : _GEN_2637; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2639 = 6'ha == archit_ptr_22 ? log_reg_10 : _GEN_2638; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2640 = 6'hb == archit_ptr_22 ? log_reg_11 : _GEN_2639; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2641 = 6'hc == archit_ptr_22 ? log_reg_12 : _GEN_2640; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2642 = 6'hd == archit_ptr_22 ? log_reg_13 : _GEN_2641; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2643 = 6'he == archit_ptr_22 ? log_reg_14 : _GEN_2642; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2644 = 6'hf == archit_ptr_22 ? log_reg_15 : _GEN_2643; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2645 = 6'h10 == archit_ptr_22 ? log_reg_16 : _GEN_2644; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2646 = 6'h11 == archit_ptr_22 ? log_reg_17 : _GEN_2645; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2647 = 6'h12 == archit_ptr_22 ? log_reg_18 : _GEN_2646; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2648 = 6'h13 == archit_ptr_22 ? log_reg_19 : _GEN_2647; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2649 = 6'h14 == archit_ptr_22 ? log_reg_20 : _GEN_2648; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2650 = 6'h15 == archit_ptr_22 ? log_reg_21 : _GEN_2649; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2651 = 6'h16 == archit_ptr_22 ? log_reg_22 : _GEN_2650; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2652 = 6'h17 == archit_ptr_22 ? log_reg_23 : _GEN_2651; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2653 = 6'h18 == archit_ptr_22 ? log_reg_24 : _GEN_2652; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2654 = 6'h19 == archit_ptr_22 ? log_reg_25 : _GEN_2653; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2655 = 6'h1a == archit_ptr_22 ? log_reg_26 : _GEN_2654; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2656 = 6'h1b == archit_ptr_22 ? log_reg_27 : _GEN_2655; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2657 = 6'h1c == archit_ptr_22 ? log_reg_28 : _GEN_2656; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2658 = 6'h1d == archit_ptr_22 ? log_reg_29 : _GEN_2657; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2659 = 6'h1e == archit_ptr_22 ? log_reg_30 : _GEN_2658; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2660 = 6'h1f == archit_ptr_22 ? log_reg_31 : _GEN_2659; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2661 = 6'h20 == archit_ptr_22 ? log_reg_32 : _GEN_2660; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2662 = 6'h21 == archit_ptr_22 ? 2'h3 : _GEN_2661; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2664 = 6'h1 == archit_ptr_23 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2665 = 6'h2 == archit_ptr_23 ? log_reg_2 : _GEN_2664; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2666 = 6'h3 == archit_ptr_23 ? log_reg_3 : _GEN_2665; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2667 = 6'h4 == archit_ptr_23 ? log_reg_4 : _GEN_2666; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2668 = 6'h5 == archit_ptr_23 ? log_reg_5 : _GEN_2667; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2669 = 6'h6 == archit_ptr_23 ? log_reg_6 : _GEN_2668; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2670 = 6'h7 == archit_ptr_23 ? log_reg_7 : _GEN_2669; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2671 = 6'h8 == archit_ptr_23 ? log_reg_8 : _GEN_2670; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2672 = 6'h9 == archit_ptr_23 ? log_reg_9 : _GEN_2671; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2673 = 6'ha == archit_ptr_23 ? log_reg_10 : _GEN_2672; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2674 = 6'hb == archit_ptr_23 ? log_reg_11 : _GEN_2673; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2675 = 6'hc == archit_ptr_23 ? log_reg_12 : _GEN_2674; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2676 = 6'hd == archit_ptr_23 ? log_reg_13 : _GEN_2675; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2677 = 6'he == archit_ptr_23 ? log_reg_14 : _GEN_2676; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2678 = 6'hf == archit_ptr_23 ? log_reg_15 : _GEN_2677; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2679 = 6'h10 == archit_ptr_23 ? log_reg_16 : _GEN_2678; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2680 = 6'h11 == archit_ptr_23 ? log_reg_17 : _GEN_2679; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2681 = 6'h12 == archit_ptr_23 ? log_reg_18 : _GEN_2680; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2682 = 6'h13 == archit_ptr_23 ? log_reg_19 : _GEN_2681; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2683 = 6'h14 == archit_ptr_23 ? log_reg_20 : _GEN_2682; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2684 = 6'h15 == archit_ptr_23 ? log_reg_21 : _GEN_2683; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2685 = 6'h16 == archit_ptr_23 ? log_reg_22 : _GEN_2684; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2686 = 6'h17 == archit_ptr_23 ? log_reg_23 : _GEN_2685; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2687 = 6'h18 == archit_ptr_23 ? log_reg_24 : _GEN_2686; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2688 = 6'h19 == archit_ptr_23 ? log_reg_25 : _GEN_2687; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2689 = 6'h1a == archit_ptr_23 ? log_reg_26 : _GEN_2688; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2690 = 6'h1b == archit_ptr_23 ? log_reg_27 : _GEN_2689; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2691 = 6'h1c == archit_ptr_23 ? log_reg_28 : _GEN_2690; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2692 = 6'h1d == archit_ptr_23 ? log_reg_29 : _GEN_2691; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2693 = 6'h1e == archit_ptr_23 ? log_reg_30 : _GEN_2692; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2694 = 6'h1f == archit_ptr_23 ? log_reg_31 : _GEN_2693; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2695 = 6'h20 == archit_ptr_23 ? log_reg_32 : _GEN_2694; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2696 = 6'h21 == archit_ptr_23 ? 2'h3 : _GEN_2695; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2698 = 6'h1 == archit_ptr_24 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2699 = 6'h2 == archit_ptr_24 ? log_reg_2 : _GEN_2698; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2700 = 6'h3 == archit_ptr_24 ? log_reg_3 : _GEN_2699; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2701 = 6'h4 == archit_ptr_24 ? log_reg_4 : _GEN_2700; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2702 = 6'h5 == archit_ptr_24 ? log_reg_5 : _GEN_2701; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2703 = 6'h6 == archit_ptr_24 ? log_reg_6 : _GEN_2702; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2704 = 6'h7 == archit_ptr_24 ? log_reg_7 : _GEN_2703; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2705 = 6'h8 == archit_ptr_24 ? log_reg_8 : _GEN_2704; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2706 = 6'h9 == archit_ptr_24 ? log_reg_9 : _GEN_2705; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2707 = 6'ha == archit_ptr_24 ? log_reg_10 : _GEN_2706; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2708 = 6'hb == archit_ptr_24 ? log_reg_11 : _GEN_2707; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2709 = 6'hc == archit_ptr_24 ? log_reg_12 : _GEN_2708; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2710 = 6'hd == archit_ptr_24 ? log_reg_13 : _GEN_2709; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2711 = 6'he == archit_ptr_24 ? log_reg_14 : _GEN_2710; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2712 = 6'hf == archit_ptr_24 ? log_reg_15 : _GEN_2711; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2713 = 6'h10 == archit_ptr_24 ? log_reg_16 : _GEN_2712; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2714 = 6'h11 == archit_ptr_24 ? log_reg_17 : _GEN_2713; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2715 = 6'h12 == archit_ptr_24 ? log_reg_18 : _GEN_2714; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2716 = 6'h13 == archit_ptr_24 ? log_reg_19 : _GEN_2715; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2717 = 6'h14 == archit_ptr_24 ? log_reg_20 : _GEN_2716; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2718 = 6'h15 == archit_ptr_24 ? log_reg_21 : _GEN_2717; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2719 = 6'h16 == archit_ptr_24 ? log_reg_22 : _GEN_2718; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2720 = 6'h17 == archit_ptr_24 ? log_reg_23 : _GEN_2719; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2721 = 6'h18 == archit_ptr_24 ? log_reg_24 : _GEN_2720; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2722 = 6'h19 == archit_ptr_24 ? log_reg_25 : _GEN_2721; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2723 = 6'h1a == archit_ptr_24 ? log_reg_26 : _GEN_2722; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2724 = 6'h1b == archit_ptr_24 ? log_reg_27 : _GEN_2723; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2725 = 6'h1c == archit_ptr_24 ? log_reg_28 : _GEN_2724; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2726 = 6'h1d == archit_ptr_24 ? log_reg_29 : _GEN_2725; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2727 = 6'h1e == archit_ptr_24 ? log_reg_30 : _GEN_2726; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2728 = 6'h1f == archit_ptr_24 ? log_reg_31 : _GEN_2727; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2729 = 6'h20 == archit_ptr_24 ? log_reg_32 : _GEN_2728; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2730 = 6'h21 == archit_ptr_24 ? 2'h3 : _GEN_2729; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2732 = 6'h1 == archit_ptr_25 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2733 = 6'h2 == archit_ptr_25 ? log_reg_2 : _GEN_2732; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2734 = 6'h3 == archit_ptr_25 ? log_reg_3 : _GEN_2733; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2735 = 6'h4 == archit_ptr_25 ? log_reg_4 : _GEN_2734; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2736 = 6'h5 == archit_ptr_25 ? log_reg_5 : _GEN_2735; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2737 = 6'h6 == archit_ptr_25 ? log_reg_6 : _GEN_2736; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2738 = 6'h7 == archit_ptr_25 ? log_reg_7 : _GEN_2737; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2739 = 6'h8 == archit_ptr_25 ? log_reg_8 : _GEN_2738; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2740 = 6'h9 == archit_ptr_25 ? log_reg_9 : _GEN_2739; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2741 = 6'ha == archit_ptr_25 ? log_reg_10 : _GEN_2740; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2742 = 6'hb == archit_ptr_25 ? log_reg_11 : _GEN_2741; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2743 = 6'hc == archit_ptr_25 ? log_reg_12 : _GEN_2742; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2744 = 6'hd == archit_ptr_25 ? log_reg_13 : _GEN_2743; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2745 = 6'he == archit_ptr_25 ? log_reg_14 : _GEN_2744; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2746 = 6'hf == archit_ptr_25 ? log_reg_15 : _GEN_2745; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2747 = 6'h10 == archit_ptr_25 ? log_reg_16 : _GEN_2746; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2748 = 6'h11 == archit_ptr_25 ? log_reg_17 : _GEN_2747; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2749 = 6'h12 == archit_ptr_25 ? log_reg_18 : _GEN_2748; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2750 = 6'h13 == archit_ptr_25 ? log_reg_19 : _GEN_2749; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2751 = 6'h14 == archit_ptr_25 ? log_reg_20 : _GEN_2750; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2752 = 6'h15 == archit_ptr_25 ? log_reg_21 : _GEN_2751; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2753 = 6'h16 == archit_ptr_25 ? log_reg_22 : _GEN_2752; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2754 = 6'h17 == archit_ptr_25 ? log_reg_23 : _GEN_2753; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2755 = 6'h18 == archit_ptr_25 ? log_reg_24 : _GEN_2754; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2756 = 6'h19 == archit_ptr_25 ? log_reg_25 : _GEN_2755; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2757 = 6'h1a == archit_ptr_25 ? log_reg_26 : _GEN_2756; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2758 = 6'h1b == archit_ptr_25 ? log_reg_27 : _GEN_2757; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2759 = 6'h1c == archit_ptr_25 ? log_reg_28 : _GEN_2758; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2760 = 6'h1d == archit_ptr_25 ? log_reg_29 : _GEN_2759; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2761 = 6'h1e == archit_ptr_25 ? log_reg_30 : _GEN_2760; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2762 = 6'h1f == archit_ptr_25 ? log_reg_31 : _GEN_2761; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2763 = 6'h20 == archit_ptr_25 ? log_reg_32 : _GEN_2762; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2764 = 6'h21 == archit_ptr_25 ? 2'h3 : _GEN_2763; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2766 = 6'h1 == archit_ptr_26 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2767 = 6'h2 == archit_ptr_26 ? log_reg_2 : _GEN_2766; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2768 = 6'h3 == archit_ptr_26 ? log_reg_3 : _GEN_2767; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2769 = 6'h4 == archit_ptr_26 ? log_reg_4 : _GEN_2768; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2770 = 6'h5 == archit_ptr_26 ? log_reg_5 : _GEN_2769; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2771 = 6'h6 == archit_ptr_26 ? log_reg_6 : _GEN_2770; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2772 = 6'h7 == archit_ptr_26 ? log_reg_7 : _GEN_2771; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2773 = 6'h8 == archit_ptr_26 ? log_reg_8 : _GEN_2772; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2774 = 6'h9 == archit_ptr_26 ? log_reg_9 : _GEN_2773; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2775 = 6'ha == archit_ptr_26 ? log_reg_10 : _GEN_2774; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2776 = 6'hb == archit_ptr_26 ? log_reg_11 : _GEN_2775; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2777 = 6'hc == archit_ptr_26 ? log_reg_12 : _GEN_2776; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2778 = 6'hd == archit_ptr_26 ? log_reg_13 : _GEN_2777; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2779 = 6'he == archit_ptr_26 ? log_reg_14 : _GEN_2778; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2780 = 6'hf == archit_ptr_26 ? log_reg_15 : _GEN_2779; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2781 = 6'h10 == archit_ptr_26 ? log_reg_16 : _GEN_2780; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2782 = 6'h11 == archit_ptr_26 ? log_reg_17 : _GEN_2781; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2783 = 6'h12 == archit_ptr_26 ? log_reg_18 : _GEN_2782; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2784 = 6'h13 == archit_ptr_26 ? log_reg_19 : _GEN_2783; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2785 = 6'h14 == archit_ptr_26 ? log_reg_20 : _GEN_2784; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2786 = 6'h15 == archit_ptr_26 ? log_reg_21 : _GEN_2785; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2787 = 6'h16 == archit_ptr_26 ? log_reg_22 : _GEN_2786; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2788 = 6'h17 == archit_ptr_26 ? log_reg_23 : _GEN_2787; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2789 = 6'h18 == archit_ptr_26 ? log_reg_24 : _GEN_2788; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2790 = 6'h19 == archit_ptr_26 ? log_reg_25 : _GEN_2789; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2791 = 6'h1a == archit_ptr_26 ? log_reg_26 : _GEN_2790; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2792 = 6'h1b == archit_ptr_26 ? log_reg_27 : _GEN_2791; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2793 = 6'h1c == archit_ptr_26 ? log_reg_28 : _GEN_2792; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2794 = 6'h1d == archit_ptr_26 ? log_reg_29 : _GEN_2793; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2795 = 6'h1e == archit_ptr_26 ? log_reg_30 : _GEN_2794; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2796 = 6'h1f == archit_ptr_26 ? log_reg_31 : _GEN_2795; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2797 = 6'h20 == archit_ptr_26 ? log_reg_32 : _GEN_2796; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2798 = 6'h21 == archit_ptr_26 ? 2'h3 : _GEN_2797; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2800 = 6'h1 == archit_ptr_27 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2801 = 6'h2 == archit_ptr_27 ? log_reg_2 : _GEN_2800; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2802 = 6'h3 == archit_ptr_27 ? log_reg_3 : _GEN_2801; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2803 = 6'h4 == archit_ptr_27 ? log_reg_4 : _GEN_2802; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2804 = 6'h5 == archit_ptr_27 ? log_reg_5 : _GEN_2803; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2805 = 6'h6 == archit_ptr_27 ? log_reg_6 : _GEN_2804; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2806 = 6'h7 == archit_ptr_27 ? log_reg_7 : _GEN_2805; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2807 = 6'h8 == archit_ptr_27 ? log_reg_8 : _GEN_2806; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2808 = 6'h9 == archit_ptr_27 ? log_reg_9 : _GEN_2807; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2809 = 6'ha == archit_ptr_27 ? log_reg_10 : _GEN_2808; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2810 = 6'hb == archit_ptr_27 ? log_reg_11 : _GEN_2809; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2811 = 6'hc == archit_ptr_27 ? log_reg_12 : _GEN_2810; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2812 = 6'hd == archit_ptr_27 ? log_reg_13 : _GEN_2811; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2813 = 6'he == archit_ptr_27 ? log_reg_14 : _GEN_2812; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2814 = 6'hf == archit_ptr_27 ? log_reg_15 : _GEN_2813; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2815 = 6'h10 == archit_ptr_27 ? log_reg_16 : _GEN_2814; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2816 = 6'h11 == archit_ptr_27 ? log_reg_17 : _GEN_2815; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2817 = 6'h12 == archit_ptr_27 ? log_reg_18 : _GEN_2816; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2818 = 6'h13 == archit_ptr_27 ? log_reg_19 : _GEN_2817; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2819 = 6'h14 == archit_ptr_27 ? log_reg_20 : _GEN_2818; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2820 = 6'h15 == archit_ptr_27 ? log_reg_21 : _GEN_2819; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2821 = 6'h16 == archit_ptr_27 ? log_reg_22 : _GEN_2820; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2822 = 6'h17 == archit_ptr_27 ? log_reg_23 : _GEN_2821; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2823 = 6'h18 == archit_ptr_27 ? log_reg_24 : _GEN_2822; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2824 = 6'h19 == archit_ptr_27 ? log_reg_25 : _GEN_2823; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2825 = 6'h1a == archit_ptr_27 ? log_reg_26 : _GEN_2824; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2826 = 6'h1b == archit_ptr_27 ? log_reg_27 : _GEN_2825; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2827 = 6'h1c == archit_ptr_27 ? log_reg_28 : _GEN_2826; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2828 = 6'h1d == archit_ptr_27 ? log_reg_29 : _GEN_2827; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2829 = 6'h1e == archit_ptr_27 ? log_reg_30 : _GEN_2828; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2830 = 6'h1f == archit_ptr_27 ? log_reg_31 : _GEN_2829; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2831 = 6'h20 == archit_ptr_27 ? log_reg_32 : _GEN_2830; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2832 = 6'h21 == archit_ptr_27 ? 2'h3 : _GEN_2831; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2834 = 6'h1 == archit_ptr_28 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2835 = 6'h2 == archit_ptr_28 ? log_reg_2 : _GEN_2834; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2836 = 6'h3 == archit_ptr_28 ? log_reg_3 : _GEN_2835; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2837 = 6'h4 == archit_ptr_28 ? log_reg_4 : _GEN_2836; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2838 = 6'h5 == archit_ptr_28 ? log_reg_5 : _GEN_2837; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2839 = 6'h6 == archit_ptr_28 ? log_reg_6 : _GEN_2838; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2840 = 6'h7 == archit_ptr_28 ? log_reg_7 : _GEN_2839; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2841 = 6'h8 == archit_ptr_28 ? log_reg_8 : _GEN_2840; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2842 = 6'h9 == archit_ptr_28 ? log_reg_9 : _GEN_2841; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2843 = 6'ha == archit_ptr_28 ? log_reg_10 : _GEN_2842; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2844 = 6'hb == archit_ptr_28 ? log_reg_11 : _GEN_2843; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2845 = 6'hc == archit_ptr_28 ? log_reg_12 : _GEN_2844; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2846 = 6'hd == archit_ptr_28 ? log_reg_13 : _GEN_2845; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2847 = 6'he == archit_ptr_28 ? log_reg_14 : _GEN_2846; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2848 = 6'hf == archit_ptr_28 ? log_reg_15 : _GEN_2847; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2849 = 6'h10 == archit_ptr_28 ? log_reg_16 : _GEN_2848; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2850 = 6'h11 == archit_ptr_28 ? log_reg_17 : _GEN_2849; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2851 = 6'h12 == archit_ptr_28 ? log_reg_18 : _GEN_2850; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2852 = 6'h13 == archit_ptr_28 ? log_reg_19 : _GEN_2851; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2853 = 6'h14 == archit_ptr_28 ? log_reg_20 : _GEN_2852; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2854 = 6'h15 == archit_ptr_28 ? log_reg_21 : _GEN_2853; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2855 = 6'h16 == archit_ptr_28 ? log_reg_22 : _GEN_2854; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2856 = 6'h17 == archit_ptr_28 ? log_reg_23 : _GEN_2855; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2857 = 6'h18 == archit_ptr_28 ? log_reg_24 : _GEN_2856; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2858 = 6'h19 == archit_ptr_28 ? log_reg_25 : _GEN_2857; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2859 = 6'h1a == archit_ptr_28 ? log_reg_26 : _GEN_2858; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2860 = 6'h1b == archit_ptr_28 ? log_reg_27 : _GEN_2859; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2861 = 6'h1c == archit_ptr_28 ? log_reg_28 : _GEN_2860; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2862 = 6'h1d == archit_ptr_28 ? log_reg_29 : _GEN_2861; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2863 = 6'h1e == archit_ptr_28 ? log_reg_30 : _GEN_2862; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2864 = 6'h1f == archit_ptr_28 ? log_reg_31 : _GEN_2863; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2865 = 6'h20 == archit_ptr_28 ? log_reg_32 : _GEN_2864; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2866 = 6'h21 == archit_ptr_28 ? 2'h3 : _GEN_2865; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2868 = 6'h1 == archit_ptr_29 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2869 = 6'h2 == archit_ptr_29 ? log_reg_2 : _GEN_2868; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2870 = 6'h3 == archit_ptr_29 ? log_reg_3 : _GEN_2869; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2871 = 6'h4 == archit_ptr_29 ? log_reg_4 : _GEN_2870; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2872 = 6'h5 == archit_ptr_29 ? log_reg_5 : _GEN_2871; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2873 = 6'h6 == archit_ptr_29 ? log_reg_6 : _GEN_2872; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2874 = 6'h7 == archit_ptr_29 ? log_reg_7 : _GEN_2873; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2875 = 6'h8 == archit_ptr_29 ? log_reg_8 : _GEN_2874; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2876 = 6'h9 == archit_ptr_29 ? log_reg_9 : _GEN_2875; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2877 = 6'ha == archit_ptr_29 ? log_reg_10 : _GEN_2876; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2878 = 6'hb == archit_ptr_29 ? log_reg_11 : _GEN_2877; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2879 = 6'hc == archit_ptr_29 ? log_reg_12 : _GEN_2878; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2880 = 6'hd == archit_ptr_29 ? log_reg_13 : _GEN_2879; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2881 = 6'he == archit_ptr_29 ? log_reg_14 : _GEN_2880; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2882 = 6'hf == archit_ptr_29 ? log_reg_15 : _GEN_2881; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2883 = 6'h10 == archit_ptr_29 ? log_reg_16 : _GEN_2882; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2884 = 6'h11 == archit_ptr_29 ? log_reg_17 : _GEN_2883; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2885 = 6'h12 == archit_ptr_29 ? log_reg_18 : _GEN_2884; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2886 = 6'h13 == archit_ptr_29 ? log_reg_19 : _GEN_2885; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2887 = 6'h14 == archit_ptr_29 ? log_reg_20 : _GEN_2886; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2888 = 6'h15 == archit_ptr_29 ? log_reg_21 : _GEN_2887; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2889 = 6'h16 == archit_ptr_29 ? log_reg_22 : _GEN_2888; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2890 = 6'h17 == archit_ptr_29 ? log_reg_23 : _GEN_2889; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2891 = 6'h18 == archit_ptr_29 ? log_reg_24 : _GEN_2890; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2892 = 6'h19 == archit_ptr_29 ? log_reg_25 : _GEN_2891; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2893 = 6'h1a == archit_ptr_29 ? log_reg_26 : _GEN_2892; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2894 = 6'h1b == archit_ptr_29 ? log_reg_27 : _GEN_2893; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2895 = 6'h1c == archit_ptr_29 ? log_reg_28 : _GEN_2894; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2896 = 6'h1d == archit_ptr_29 ? log_reg_29 : _GEN_2895; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2897 = 6'h1e == archit_ptr_29 ? log_reg_30 : _GEN_2896; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2898 = 6'h1f == archit_ptr_29 ? log_reg_31 : _GEN_2897; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2899 = 6'h20 == archit_ptr_29 ? log_reg_32 : _GEN_2898; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2900 = 6'h21 == archit_ptr_29 ? 2'h3 : _GEN_2899; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2902 = 6'h1 == archit_ptr_30 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2903 = 6'h2 == archit_ptr_30 ? log_reg_2 : _GEN_2902; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2904 = 6'h3 == archit_ptr_30 ? log_reg_3 : _GEN_2903; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2905 = 6'h4 == archit_ptr_30 ? log_reg_4 : _GEN_2904; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2906 = 6'h5 == archit_ptr_30 ? log_reg_5 : _GEN_2905; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2907 = 6'h6 == archit_ptr_30 ? log_reg_6 : _GEN_2906; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2908 = 6'h7 == archit_ptr_30 ? log_reg_7 : _GEN_2907; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2909 = 6'h8 == archit_ptr_30 ? log_reg_8 : _GEN_2908; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2910 = 6'h9 == archit_ptr_30 ? log_reg_9 : _GEN_2909; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2911 = 6'ha == archit_ptr_30 ? log_reg_10 : _GEN_2910; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2912 = 6'hb == archit_ptr_30 ? log_reg_11 : _GEN_2911; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2913 = 6'hc == archit_ptr_30 ? log_reg_12 : _GEN_2912; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2914 = 6'hd == archit_ptr_30 ? log_reg_13 : _GEN_2913; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2915 = 6'he == archit_ptr_30 ? log_reg_14 : _GEN_2914; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2916 = 6'hf == archit_ptr_30 ? log_reg_15 : _GEN_2915; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2917 = 6'h10 == archit_ptr_30 ? log_reg_16 : _GEN_2916; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2918 = 6'h11 == archit_ptr_30 ? log_reg_17 : _GEN_2917; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2919 = 6'h12 == archit_ptr_30 ? log_reg_18 : _GEN_2918; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2920 = 6'h13 == archit_ptr_30 ? log_reg_19 : _GEN_2919; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2921 = 6'h14 == archit_ptr_30 ? log_reg_20 : _GEN_2920; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2922 = 6'h15 == archit_ptr_30 ? log_reg_21 : _GEN_2921; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2923 = 6'h16 == archit_ptr_30 ? log_reg_22 : _GEN_2922; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2924 = 6'h17 == archit_ptr_30 ? log_reg_23 : _GEN_2923; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2925 = 6'h18 == archit_ptr_30 ? log_reg_24 : _GEN_2924; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2926 = 6'h19 == archit_ptr_30 ? log_reg_25 : _GEN_2925; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2927 = 6'h1a == archit_ptr_30 ? log_reg_26 : _GEN_2926; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2928 = 6'h1b == archit_ptr_30 ? log_reg_27 : _GEN_2927; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2929 = 6'h1c == archit_ptr_30 ? log_reg_28 : _GEN_2928; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2930 = 6'h1d == archit_ptr_30 ? log_reg_29 : _GEN_2929; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2931 = 6'h1e == archit_ptr_30 ? log_reg_30 : _GEN_2930; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2932 = 6'h1f == archit_ptr_30 ? log_reg_31 : _GEN_2931; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2933 = 6'h20 == archit_ptr_30 ? log_reg_32 : _GEN_2932; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2934 = 6'h21 == archit_ptr_30 ? 2'h3 : _GEN_2933; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2936 = 6'h1 == archit_ptr_31 ? log_reg_1 : log_reg_0; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2937 = 6'h2 == archit_ptr_31 ? log_reg_2 : _GEN_2936; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2938 = 6'h3 == archit_ptr_31 ? log_reg_3 : _GEN_2937; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2939 = 6'h4 == archit_ptr_31 ? log_reg_4 : _GEN_2938; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2940 = 6'h5 == archit_ptr_31 ? log_reg_5 : _GEN_2939; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2941 = 6'h6 == archit_ptr_31 ? log_reg_6 : _GEN_2940; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2942 = 6'h7 == archit_ptr_31 ? log_reg_7 : _GEN_2941; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2943 = 6'h8 == archit_ptr_31 ? log_reg_8 : _GEN_2942; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2944 = 6'h9 == archit_ptr_31 ? log_reg_9 : _GEN_2943; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2945 = 6'ha == archit_ptr_31 ? log_reg_10 : _GEN_2944; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2946 = 6'hb == archit_ptr_31 ? log_reg_11 : _GEN_2945; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2947 = 6'hc == archit_ptr_31 ? log_reg_12 : _GEN_2946; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2948 = 6'hd == archit_ptr_31 ? log_reg_13 : _GEN_2947; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2949 = 6'he == archit_ptr_31 ? log_reg_14 : _GEN_2948; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2950 = 6'hf == archit_ptr_31 ? log_reg_15 : _GEN_2949; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2951 = 6'h10 == archit_ptr_31 ? log_reg_16 : _GEN_2950; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2952 = 6'h11 == archit_ptr_31 ? log_reg_17 : _GEN_2951; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2953 = 6'h12 == archit_ptr_31 ? log_reg_18 : _GEN_2952; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2954 = 6'h13 == archit_ptr_31 ? log_reg_19 : _GEN_2953; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2955 = 6'h14 == archit_ptr_31 ? log_reg_20 : _GEN_2954; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2956 = 6'h15 == archit_ptr_31 ? log_reg_21 : _GEN_2955; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2957 = 6'h16 == archit_ptr_31 ? log_reg_22 : _GEN_2956; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2958 = 6'h17 == archit_ptr_31 ? log_reg_23 : _GEN_2957; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2959 = 6'h18 == archit_ptr_31 ? log_reg_24 : _GEN_2958; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2960 = 6'h19 == archit_ptr_31 ? log_reg_25 : _GEN_2959; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2961 = 6'h1a == archit_ptr_31 ? log_reg_26 : _GEN_2960; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2962 = 6'h1b == archit_ptr_31 ? log_reg_27 : _GEN_2961; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2963 = 6'h1c == archit_ptr_31 ? log_reg_28 : _GEN_2962; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2964 = 6'h1d == archit_ptr_31 ? log_reg_29 : _GEN_2963; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2965 = 6'h1e == archit_ptr_31 ? log_reg_30 : _GEN_2964; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2966 = 6'h1f == archit_ptr_31 ? log_reg_31 : _GEN_2965; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2967 = 6'h20 == archit_ptr_31 ? log_reg_32 : _GEN_2966; // @[Regfiles.scala 242:{25,25}]
  wire [1:0] _GEN_2968 = 6'h21 == archit_ptr_31 ? 2'h3 : _GEN_2967; // @[Regfiles.scala 242:{25,25}]
  wire [5:0] _GEN_2970 = 5'h1 == io_lookup_0_req_rs1 ? rename_ptr_1 : rename_ptr_0; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2971 = 5'h2 == io_lookup_0_req_rs1 ? rename_ptr_2 : _GEN_2970; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2972 = 5'h3 == io_lookup_0_req_rs1 ? rename_ptr_3 : _GEN_2971; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2973 = 5'h4 == io_lookup_0_req_rs1 ? rename_ptr_4 : _GEN_2972; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2974 = 5'h5 == io_lookup_0_req_rs1 ? rename_ptr_5 : _GEN_2973; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2975 = 5'h6 == io_lookup_0_req_rs1 ? rename_ptr_6 : _GEN_2974; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2976 = 5'h7 == io_lookup_0_req_rs1 ? rename_ptr_7 : _GEN_2975; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2977 = 5'h8 == io_lookup_0_req_rs1 ? rename_ptr_8 : _GEN_2976; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2978 = 5'h9 == io_lookup_0_req_rs1 ? rename_ptr_9 : _GEN_2977; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2979 = 5'ha == io_lookup_0_req_rs1 ? rename_ptr_10 : _GEN_2978; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2980 = 5'hb == io_lookup_0_req_rs1 ? rename_ptr_11 : _GEN_2979; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2981 = 5'hc == io_lookup_0_req_rs1 ? rename_ptr_12 : _GEN_2980; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2982 = 5'hd == io_lookup_0_req_rs1 ? rename_ptr_13 : _GEN_2981; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2983 = 5'he == io_lookup_0_req_rs1 ? rename_ptr_14 : _GEN_2982; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2984 = 5'hf == io_lookup_0_req_rs1 ? rename_ptr_15 : _GEN_2983; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2985 = 5'h10 == io_lookup_0_req_rs1 ? rename_ptr_16 : _GEN_2984; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2986 = 5'h11 == io_lookup_0_req_rs1 ? rename_ptr_17 : _GEN_2985; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2987 = 5'h12 == io_lookup_0_req_rs1 ? rename_ptr_18 : _GEN_2986; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2988 = 5'h13 == io_lookup_0_req_rs1 ? rename_ptr_19 : _GEN_2987; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2989 = 5'h14 == io_lookup_0_req_rs1 ? rename_ptr_20 : _GEN_2988; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2990 = 5'h15 == io_lookup_0_req_rs1 ? rename_ptr_21 : _GEN_2989; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2991 = 5'h16 == io_lookup_0_req_rs1 ? rename_ptr_22 : _GEN_2990; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2992 = 5'h17 == io_lookup_0_req_rs1 ? rename_ptr_23 : _GEN_2991; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2993 = 5'h18 == io_lookup_0_req_rs1 ? rename_ptr_24 : _GEN_2992; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2994 = 5'h19 == io_lookup_0_req_rs1 ? rename_ptr_25 : _GEN_2993; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2995 = 5'h1a == io_lookup_0_req_rs1 ? rename_ptr_26 : _GEN_2994; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2996 = 5'h1b == io_lookup_0_req_rs1 ? rename_ptr_27 : _GEN_2995; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2997 = 5'h1c == io_lookup_0_req_rs1 ? rename_ptr_28 : _GEN_2996; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2998 = 5'h1d == io_lookup_0_req_rs1 ? rename_ptr_29 : _GEN_2997; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_2999 = 5'h1e == io_lookup_0_req_rs1 ? rename_ptr_30 : _GEN_2998; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3000 = 5'h1f == io_lookup_0_req_rs1 ? rename_ptr_31 : _GEN_2999; // @[Regfiles.scala 258:{34,34}]
  wire [5:0] _GEN_3002 = 5'h1 == io_lookup_0_req_rs2 ? rename_ptr_1 : rename_ptr_0; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3003 = 5'h2 == io_lookup_0_req_rs2 ? rename_ptr_2 : _GEN_3002; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3004 = 5'h3 == io_lookup_0_req_rs2 ? rename_ptr_3 : _GEN_3003; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3005 = 5'h4 == io_lookup_0_req_rs2 ? rename_ptr_4 : _GEN_3004; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3006 = 5'h5 == io_lookup_0_req_rs2 ? rename_ptr_5 : _GEN_3005; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3007 = 5'h6 == io_lookup_0_req_rs2 ? rename_ptr_6 : _GEN_3006; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3008 = 5'h7 == io_lookup_0_req_rs2 ? rename_ptr_7 : _GEN_3007; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3009 = 5'h8 == io_lookup_0_req_rs2 ? rename_ptr_8 : _GEN_3008; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3010 = 5'h9 == io_lookup_0_req_rs2 ? rename_ptr_9 : _GEN_3009; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3011 = 5'ha == io_lookup_0_req_rs2 ? rename_ptr_10 : _GEN_3010; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3012 = 5'hb == io_lookup_0_req_rs2 ? rename_ptr_11 : _GEN_3011; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3013 = 5'hc == io_lookup_0_req_rs2 ? rename_ptr_12 : _GEN_3012; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3014 = 5'hd == io_lookup_0_req_rs2 ? rename_ptr_13 : _GEN_3013; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3015 = 5'he == io_lookup_0_req_rs2 ? rename_ptr_14 : _GEN_3014; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3016 = 5'hf == io_lookup_0_req_rs2 ? rename_ptr_15 : _GEN_3015; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3017 = 5'h10 == io_lookup_0_req_rs2 ? rename_ptr_16 : _GEN_3016; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3018 = 5'h11 == io_lookup_0_req_rs2 ? rename_ptr_17 : _GEN_3017; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3019 = 5'h12 == io_lookup_0_req_rs2 ? rename_ptr_18 : _GEN_3018; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3020 = 5'h13 == io_lookup_0_req_rs2 ? rename_ptr_19 : _GEN_3019; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3021 = 5'h14 == io_lookup_0_req_rs2 ? rename_ptr_20 : _GEN_3020; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3022 = 5'h15 == io_lookup_0_req_rs2 ? rename_ptr_21 : _GEN_3021; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3023 = 5'h16 == io_lookup_0_req_rs2 ? rename_ptr_22 : _GEN_3022; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3024 = 5'h17 == io_lookup_0_req_rs2 ? rename_ptr_23 : _GEN_3023; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3025 = 5'h18 == io_lookup_0_req_rs2 ? rename_ptr_24 : _GEN_3024; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3026 = 5'h19 == io_lookup_0_req_rs2 ? rename_ptr_25 : _GEN_3025; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3027 = 5'h1a == io_lookup_0_req_rs2 ? rename_ptr_26 : _GEN_3026; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3028 = 5'h1b == io_lookup_0_req_rs2 ? rename_ptr_27 : _GEN_3027; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3029 = 5'h1c == io_lookup_0_req_rs2 ? rename_ptr_28 : _GEN_3028; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3030 = 5'h1d == io_lookup_0_req_rs2 ? rename_ptr_29 : _GEN_3029; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3031 = 5'h1e == io_lookup_0_req_rs2 ? rename_ptr_30 : _GEN_3030; // @[Regfiles.scala 259:{34,34}]
  wire [5:0] _GEN_3032 = 5'h1f == io_lookup_0_req_rs2 ? rename_ptr_31 : _GEN_3031; // @[Regfiles.scala 259:{34,34}]
  wire  _GEN_3044 = _T_114 & _T_37; // @[Regfiles.scala 227:13]
  assign io_lookup_0_rsp_rs1 = io_lookup_0_req_rs1 == 5'h0 ? 6'h21 : _GEN_3000; // @[Regfiles.scala 258:34]
  assign io_lookup_0_rsp_rs2 = io_lookup_0_req_rs2 == 5'h0 ? 6'h21 : _GEN_3032; // @[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_exe_writeBack_0_ready = 1'h1; // @[Regfiles.scala 207:31]
  assign io_commit_0_is_writeback = _GEN_1619 == 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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_0 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_0 <= _GEN_1620;
      end
    end else begin
      log_reg_0 <= _GEN_1620;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_1 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_1 <= _GEN_1621;
      end
    end else begin
      log_reg_1 <= _GEN_1621;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_2 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_2 <= _GEN_1622;
      end
    end else begin
      log_reg_2 <= _GEN_1622;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_3 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_3 <= _GEN_1623;
      end
    end else begin
      log_reg_3 <= _GEN_1623;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_4 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_4 <= _GEN_1624;
      end
    end else begin
      log_reg_4 <= _GEN_1624;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_5 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_5 <= _GEN_1625;
      end
    end else begin
      log_reg_5 <= _GEN_1625;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_6 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_6 <= _GEN_1626;
      end
    end else begin
      log_reg_6 <= _GEN_1626;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_7 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_7 <= _GEN_1627;
      end
    end else begin
      log_reg_7 <= _GEN_1627;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_8 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_8 <= _GEN_1628;
      end
    end else begin
      log_reg_8 <= _GEN_1628;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_9 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_9 <= _GEN_1629;
      end
    end else begin
      log_reg_9 <= _GEN_1629;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_10 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_10 <= _GEN_1630;
      end
    end else begin
      log_reg_10 <= _GEN_1630;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_11 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_11 <= _GEN_1631;
      end
    end else begin
      log_reg_11 <= _GEN_1631;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_12 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_12 <= _GEN_1632;
      end
    end else begin
      log_reg_12 <= _GEN_1632;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_13 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_13 <= _GEN_1633;
      end
    end else begin
      log_reg_13 <= _GEN_1633;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_14 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_14 <= _GEN_1634;
      end
    end else begin
      log_reg_14 <= _GEN_1634;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_15 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_15 <= _GEN_1635;
      end
    end else begin
      log_reg_15 <= _GEN_1635;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_16 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_16 <= _GEN_1636;
      end
    end else begin
      log_reg_16 <= _GEN_1636;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_17 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_17 <= _GEN_1637;
      end
    end else begin
      log_reg_17 <= _GEN_1637;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_18 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_18 <= _GEN_1638;
      end
    end else begin
      log_reg_18 <= _GEN_1638;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_19 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_19 <= _GEN_1639;
      end
    end else begin
      log_reg_19 <= _GEN_1639;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_20 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_20 <= _GEN_1640;
      end
    end else begin
      log_reg_20 <= _GEN_1640;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_21 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_21 <= _GEN_1641;
      end
    end else begin
      log_reg_21 <= _GEN_1641;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_22 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_22 <= _GEN_1642;
      end
    end else begin
      log_reg_22 <= _GEN_1642;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_23 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_23 <= _GEN_1643;
      end
    end else begin
      log_reg_23 <= _GEN_1643;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_24 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_24 <= _GEN_1644;
      end
    end else begin
      log_reg_24 <= _GEN_1644;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_25 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_25 <= _GEN_1645;
      end
    end else begin
      log_reg_25 <= _GEN_1645;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_26 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_26 <= _GEN_1646;
      end
    end else begin
      log_reg_26 <= _GEN_1646;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_27 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_27 <= _GEN_1647;
      end
    end else begin
      log_reg_27 <= _GEN_1647;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_28 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_28 <= _GEN_1648;
      end
    end else begin
      log_reg_28 <= _GEN_1648;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_29 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_29 <= _GEN_1649;
      end
    end else begin
      log_reg_29 <= _GEN_1649;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_30 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_30 <= _GEN_1650;
      end
    end else begin
      log_reg_30 <= _GEN_1650;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_31 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_31 <= _GEN_1651;
      end
    end else begin
      log_reg_31 <= _GEN_1651;
    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_1684) begin // @[Regfiles.scala 229:35]
        log_reg_32 <= 2'h0; // @[Regfiles.scala 229:47]
      end else begin
        log_reg_32 <= _GEN_1652;
      end
    end else begin
      log_reg_32 <= _GEN_1652;
    end
    if (reset) begin // @[Regfiles.scala 114:26]
      files_reg_0 <= 64'h0; // @[Regfiles.scala 114:26]
    end else if (_T_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_108) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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_114) 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
    `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 (_T_108 & _T_37 & ~(_GEN_1453 == 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_1453 == 2'h1) & (_T_108 & _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_114 & _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_114 & _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_3044 & ~(_GEN_1618 == 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_1618 == 2'h3) & _GEN_3044) 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_1914 == 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_1914 == 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_1948 == 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_1948 == 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_1982 == 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_1982 == 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_2016 == 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_2016 == 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_2050 == 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_2050 == 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_2084 == 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_2084 == 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_2118 == 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_2118 == 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_2152 == 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_2152 == 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_2186 == 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_2186 == 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_2220 == 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_2220 == 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_2254 == 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_2254 == 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_2288 == 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_2288 == 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_2322 == 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_2322 == 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_2356 == 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_2356 == 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_2390 == 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_2390 == 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_2424 == 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_2424 == 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_2458 == 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_2458 == 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_2492 == 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_2492 == 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_2526 == 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_2526 == 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_2560 == 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_2560 == 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_2594 == 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_2594 == 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_2628 == 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_2628 == 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_2662 == 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_2662 == 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_2696 == 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_2696 == 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_2730 == 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_2730 == 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_2764 == 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_2764 == 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_2798 == 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_2798 == 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_2832 == 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_2832 == 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_2866 == 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_2866 == 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_2900 == 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_2900 == 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_2934 == 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_2934 == 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_2968 == 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_2968 == 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];
`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,
  output        io_irgRsp_0_valid,
  output [5:0]  io_irgRsp_0_bits_phy,
  output [63:0] io_irgRsp_0_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_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_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_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_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_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_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(
  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 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 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 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 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_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_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_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_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_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_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_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_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_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_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  [25:0] io_req_bits_tag,
  input  [1: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  [25:0] io_req_bits_tag,
  input  [1: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 [25:0] tag_r; // @[Reg.scala 19:16]
  wire [25:0] tag = _io_req_ready_T ? io_req_bits_tag : tag_r; // @[SourceB.scala 70:18]
  reg [1:0] set_r; // @[Reg.scala 19:16]
  wire [1: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[25:0];
  _RAND_2 = {1{`RANDOM}};
  set_r = _RAND_2[1: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  [25:0] io_req_bits_tag,
  input  [1: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 [1:0]  io_bs_adr_bits_set,
  output        io_bs_adr_bits_beat,
  input  [63:0] io_bs_dat_data,
  output [1: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 [25:0] req_r_tag; // @[Reg.scala 19:16]
  reg [1: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 [25:0] s2_req_tag; // @[Reg.scala 19:16]
  reg [1: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 [25:0] s3_req_tag; // @[Reg.scala 19:16]
  reg [1: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[25:0];
  _RAND_8 = {1{`RANDOM}};
  req_r_set = _RAND_8[1: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[25:0];
  _RAND_15 = {1{`RANDOM}};
  s2_req_set = _RAND_15[1: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[25:0];
  _RAND_21 = {1{`RANDOM}};
  s3_req_set = _RAND_21[1: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  [1: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 [1: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 [1: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  [1:0]  io_evict_req_set,
  input         io_evict_req_way,
  output        io_evict_safe,
  input  [1: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 [1: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 [1: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 [1: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 [1: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 [1: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 [1: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 [1: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 [1:0] s5_req_set; // @[Reg.scala 19:16]
  reg  s5_req_way; // @[Reg.scala 19:16]
  wire [1: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 [1:0] s6_req_set; // @[Reg.scala 19:16]
  reg  s6_req_way; // @[Reg.scala 19:16]
  wire [1: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[1: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[1: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[1: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[1: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[1: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[1: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 [25:0] io_req_bits_tag,
  output [3:0]  io_req_bits_offset,
  output [5:0]  io_req_bits_put,
  output [1: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:2]; // @[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[1: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  [1: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 [1: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 [1: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 [1:0] ram_set_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1: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[1: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 [25:0] io_req_bits_tag,
  output [3:0]  io_req_bits_offset,
  output [5:0]  io_req_bits_put,
  output [1:0]  io_req_bits_set,
  output        io_resp_valid,
  output        io_resp_bits_last,
  output [1:0]  io_resp_bits_set,
  output [25: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 [1: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 [1: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 [1: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 [1: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 [1:0] set_1 = set[1: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 [1: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:2]; // @[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[1: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[1:0]; // @[Parameters.scala 214:28]
  assign io_resp_bits_tag = set[27:2]; // @[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[1: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  [1: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 [1:0]  io_bs_adr_bits_set,
  output        io_bs_adr_bits_beat,
  output [63:0] io_bs_dat_data,
  output [1: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  [1: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  [25:0] io_enq_bits_data_tag,
  input         io_deq_ready,
  output        io_deq_valid,
  output [1: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 [25: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 [1: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 [1:0] ram_set_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [1: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 [25: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 [25:0] ram_data_tag_io_deq_bits_MPORT_data; // @[Decoupled.scala 275:95]
  wire [25: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[1: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[25: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_8(
  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  [1: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  [25:0] io_write_bits_data_tag,
  input         io_read_valid,
  input  [1:0]  io_read_bits_set,
  input  [25:0] io_read_bits_tag,
  output        io_result_bits_dirty,
  output [1:0]  io_result_bits_state,
  output        io_result_bits_clients,
  output [25: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 [29:0] cc_dir_0 [0:3]; // @[DescribedSRAM.scala 19:26]
  wire  cc_dir_0_regout_en; // @[DescribedSRAM.scala 19:26]
  wire [1:0] cc_dir_0_regout_addr; // @[DescribedSRAM.scala 19:26]
  wire [29:0] cc_dir_0_regout_data; // @[DescribedSRAM.scala 19:26]
  wire [29:0] cc_dir_0_MPORT_data; // @[DescribedSRAM.scala 19:26]
  wire [1: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 [1:0] cc_dir_0_regout_addr_pipe_0;
  reg [29:0] cc_dir_1 [0:3]; // @[DescribedSRAM.scala 19:26]
  wire  cc_dir_1_regout_en; // @[DescribedSRAM.scala 19:26]
  wire [1:0] cc_dir_1_regout_addr; // @[DescribedSRAM.scala 19:26]
  wire [29:0] cc_dir_1_regout_data; // @[DescribedSRAM.scala 19:26]
  wire [29:0] cc_dir_1_MPORT_data; // @[DescribedSRAM.scala 19:26]
  wire [1: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 [1: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 [1: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 [25: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 [1: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 [25: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 [2:0] wipeCount; // @[Directory.scala 77:26]
  reg  wipeOff; // @[Directory.scala 78:24]
  wire  wipeDone = wipeCount[2]; // @[Directory.scala 79:27]
  wire [1:0] wipeSet = wipeCount[1:0]; // @[Directory.scala 80:26]
  wire  _T = ~wipeDone; // @[Directory.scala 83:9]
  wire  _T_2 = ~wipeDone & ~wipeOff; // @[Directory.scala 83:19]
  wire [2:0] _wipeCount_T_1 = wipeCount + 3'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 [29: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 [25:0] tag; // @[Reg.scala 19:16]
  reg [1: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 [29:0] _ways_WIRE_1 = cc_dir_0_regout_data;
  wire [25:0] ways_0_tag = _ways_WIRE_1[25:0]; // @[Directory.scala 127:69]
  wire  ways_0_clients = _ways_WIRE_1[26]; // @[Directory.scala 127:69]
  wire [1:0] ways_0_state = _ways_WIRE_1[28:27]; // @[Directory.scala 127:69]
  wire  ways_0_dirty = _ways_WIRE_1[29]; // @[Directory.scala 127:69]
  wire [29:0] _ways_WIRE_3 = cc_dir_1_regout_data;
  wire [25:0] ways_1_tag = _ways_WIRE_3[25:0]; // @[Directory.scala 127:69]
  wire  ways_1_clients = _ways_WIRE_3[26]; // @[Directory.scala 127:69]
  wire [1:0] ways_1_state = _ways_WIRE_3[28:27]; // @[Directory.scala 127:69]
  wire  ways_1_dirty = _ways_WIRE_3[29]; // @[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 [25:0] _io_result_bits_T_2 = hits[0] ? ways_0_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _io_result_bits_T_3 = hits[1] ? ways_1_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25: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 [25:0] _io_result_bits_T_18 = victimWayOH[0] ? ways_0_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _io_result_bits_T_19 = victimWay ? ways_1_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25: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 [25: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_8 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 : 30'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 : 30'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[2]; // @[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 <= 3'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 < 4; initvar = initvar+1)
    cc_dir_0[initvar] = _RAND_0[29:0];
  _RAND_3 = {1{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    cc_dir_1[initvar] = _RAND_3[29: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[1: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[1:0];
  _RAND_6 = {1{`RANDOM}};
  wipeCount = _RAND_6[2: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[25:0];
  _RAND_10 = {1{`RANDOM}};
  set = _RAND_10[1: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  [1: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  [1: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  [1: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  [1: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  [1: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:3]; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_0_regout_MPORT_1_en; // @[DescribedSRAM.scala 19:26]
  wire [1: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 [1: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 [1:0] cc_banks_0_regout_MPORT_1_addr_pipe_0;
  reg [63:0] cc_banks_1 [0:3]; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_1_regout_MPORT_3_en; // @[DescribedSRAM.scala 19:26]
  wire [1: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 [1: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 [1:0] cc_banks_1_regout_MPORT_3_addr_pipe_0;
  reg [63:0] cc_banks_2 [0:3]; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_2_regout_MPORT_5_en; // @[DescribedSRAM.scala 19:26]
  wire [1: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 [1: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 [1:0] cc_banks_2_regout_MPORT_5_addr_pipe_0;
  reg [63:0] cc_banks_3 [0:3]; // @[DescribedSRAM.scala 19:26]
  wire  cc_banks_3_regout_MPORT_7_en; // @[DescribedSRAM.scala 19:26]
  wire [1: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 [1: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 [1:0] cc_banks_3_regout_MPORT_7_addr_pipe_0;
  wire [3: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 [1:0] reqs_0_index = sinkC_req_a[3: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 [3: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 [3: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 [1:0] reqs_2_index = sinkD_req_a[3: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 [1:0] reqs_1_index = sourceC_req_a[3: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 [3: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 [3: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 [1:0] reqs_4_index = sourceD_rreq_a[3: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 [1:0] reqs_3_index = sourceD_wreq_a[3: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 [1:0] _regout_idx_T = regout_sel_3 ? reqs_3_index : reqs_4_index; // @[Mux.scala 47:70]
  wire [1:0] _regout_idx_T_1 = regout_sel_2 ? reqs_2_index : _regout_idx_T; // @[Mux.scala 47:70]
  wire [1: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 [1:0] _regout_idx_T_3 = regout_sel_3_1 ? reqs_3_index : reqs_4_index; // @[Mux.scala 47:70]
  wire [1:0] _regout_idx_T_4 = regout_sel_2_1 ? reqs_2_index : _regout_idx_T_3; // @[Mux.scala 47:70]
  wire [1: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 [1:0] _regout_idx_T_6 = regout_sel_3_2 ? reqs_3_index : reqs_4_index; // @[Mux.scala 47:70]
  wire [1:0] _regout_idx_T_7 = regout_sel_2_2 ? reqs_2_index : _regout_idx_T_6; // @[Mux.scala 47:70]
  wire [1: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 [1:0] _regout_idx_T_9 = regout_sel_3_3 ? reqs_3_index : reqs_4_index; // @[Mux.scala 47:70]
  wire [1:0] _regout_idx_T_10 = regout_sel_2_3 ? reqs_2_index : _regout_idx_T_9; // @[Mux.scala 47:70]
  wire [1: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 < 4; initvar = initvar+1)
    cc_banks_0[initvar] = _RAND_0[63:0];
  _RAND_3 = {2{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    cc_banks_1[initvar] = _RAND_3[63:0];
  _RAND_6 = {2{`RANDOM}};
  for (initvar = 0; initvar < 4; initvar = initvar+1)
    cc_banks_2[initvar] = _RAND_6[63:0];
  _RAND_9 = {2{`RANDOM}};
  for (initvar = 0; initvar < 4; 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[1: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[1: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[1: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[1: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  [25: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 [25: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 [25: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 [25:0] data_tag_io_data_MPORT_data; // @[ListBuffer.scala 50:18]
  wire [25: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[25: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[25: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  [25:0] io_allocate_bits_tag,
  input  [3:0]  io_allocate_bits_offset,
  input  [5:0]  io_allocate_bits_put,
  input  [1: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  [25:0] io_directory_bits_tag,
  input         io_directory_bits_hit,
  input         io_directory_bits_way,
  output        io_status_valid,
  output [1:0]  io_status_bits_set,
  output [25: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 [25:0] io_schedule_bits_a_bits_tag,
  output [1: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 [25:0] io_schedule_bits_b_bits_tag,
  output [1: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 [25:0] io_schedule_bits_c_bits_tag,
  output [1: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 [1: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 [1: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 [25:0] io_schedule_bits_dir_bits_data_tag,
  output        io_schedule_bits_reload,
  input         io_sinkc_valid,
  input         io_sinkc_bits_last,
  input  [25: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  [1:0]  io_nestedwb_set,
  input  [25: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 [25: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 [1: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 [25: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 [25: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 ? 26'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[25: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[1: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[25: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 [25:0] sourceA_io_req_bits_tag; // @[Scheduler.scala 38:23]
  wire [1: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 [25:0] sourceB_io_req_bits_tag; // @[Scheduler.scala 39:23]
  wire [1: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 [25:0] sourceC_io_req_bits_tag; // @[Scheduler.scala 40:23]
  wire [1: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 [1: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 [1: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 [1: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 [1: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 [1: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 [1: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 [1: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 [25: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 [1: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 [25: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 [1: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 [1:0] sinkC_io_resp_bits_set; // @[Scheduler.scala 53:21]
  wire [25: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 [1: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 [1: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 [1: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 [1: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 [1: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 [1: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 [25:0] directory_io_write_bits_data_tag; // @[Scheduler.scala 66:25]
  wire  directory_io_read_valid; // @[Scheduler.scala 66:25]
  wire [1:0] directory_io_read_bits_set; // @[Scheduler.scala 66:25]
  wire [25: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 [25: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 [1: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 [1: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 [1: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 [1: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 [1: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 [25: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 [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_0_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_0_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_0_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_0_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_0_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_1_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_1_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_1_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_1_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_1_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_2_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_2_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_2_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_2_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_2_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_3_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_3_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_3_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_3_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_3_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_4_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_4_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_4_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_4_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_4_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_5_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_5_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_5_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_5_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_5_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_6_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_6_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_6_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_6_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_6_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_7_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_7_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_7_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_7_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_7_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_8_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_8_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_8_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_8_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_8_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_9_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_9_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_9_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_9_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_9_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_10_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_10_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_10_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_10_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_10_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_11_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_11_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_11_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_11_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_11_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_12_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_12_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_12_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_12_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_12_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_13_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_13_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_13_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_13_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_13_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_14_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_14_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_14_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_14_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_14_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_15_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_15_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_15_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_15_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_15_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_16_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_16_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_16_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_16_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_16_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_17_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_17_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_17_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_17_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_17_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_18_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_18_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_18_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_18_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_18_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] abc_mshrs_19_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] abc_mshrs_19_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_19_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] abc_mshrs_19_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] abc_mshrs_19_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] bc_mshr_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] bc_mshr_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] bc_mshr_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] bc_mshr_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] bc_mshr_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25: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 [1: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 [25: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 [1:0] c_mshr_io_status_bits_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] c_mshr_io_schedule_bits_a_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] c_mshr_io_schedule_bits_b_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [25:0] c_mshr_io_schedule_bits_c_bits_tag; // @[Scheduler.scala 69:46]
  wire [1: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 [1: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 [1: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 [25: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 [25: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 [1:0] c_mshr_io_nestedwb_set; // @[Scheduler.scala 69:46]
  wire [25: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 [25:0] _schedule_T_65 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_66 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_67 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_68 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_69 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_70 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_71 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_72 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_73 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_74 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_75 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_76 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_77 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_78 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_79 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_80 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_81 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_82 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_83 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_84 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_85 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_86 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_dir_bits_data_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_87 = _schedule_T_65 | _schedule_T_66; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_88 = _schedule_T_87 | _schedule_T_67; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_89 = _schedule_T_88 | _schedule_T_68; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_90 = _schedule_T_89 | _schedule_T_69; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_91 = _schedule_T_90 | _schedule_T_70; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_92 = _schedule_T_91 | _schedule_T_71; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_93 = _schedule_T_92 | _schedule_T_72; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_94 = _schedule_T_93 | _schedule_T_73; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_95 = _schedule_T_94 | _schedule_T_74; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_96 = _schedule_T_95 | _schedule_T_75; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_97 = _schedule_T_96 | _schedule_T_76; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_98 = _schedule_T_97 | _schedule_T_77; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_99 = _schedule_T_98 | _schedule_T_78; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_100 = _schedule_T_99 | _schedule_T_79; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_101 = _schedule_T_100 | _schedule_T_80; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_102 = _schedule_T_101 | _schedule_T_81; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_103 = _schedule_T_102 | _schedule_T_82; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_104 = _schedule_T_103 | _schedule_T_83; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_105 = _schedule_T_104 | _schedule_T_84; // @[Mux.scala 27:73]
  wire [25: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 [1:0] _schedule_T_280 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_281 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_282 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_283 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_284 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_285 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_286 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_287 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_288 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_289 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_290 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_291 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_292 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_293 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_294 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_295 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_296 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_297 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_298 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_299 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_300 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_301 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_dir_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_302 = _schedule_T_280 | _schedule_T_281; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_303 = _schedule_T_302 | _schedule_T_282; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_304 = _schedule_T_303 | _schedule_T_283; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_305 = _schedule_T_304 | _schedule_T_284; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_306 = _schedule_T_305 | _schedule_T_285; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_307 = _schedule_T_306 | _schedule_T_286; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_308 = _schedule_T_307 | _schedule_T_287; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_309 = _schedule_T_308 | _schedule_T_288; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_310 = _schedule_T_309 | _schedule_T_289; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_311 = _schedule_T_310 | _schedule_T_290; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_312 = _schedule_T_311 | _schedule_T_291; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_313 = _schedule_T_312 | _schedule_T_292; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_314 = _schedule_T_313 | _schedule_T_293; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_315 = _schedule_T_314 | _schedule_T_294; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_316 = _schedule_T_315 | _schedule_T_295; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_317 = _schedule_T_316 | _schedule_T_296; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_318 = _schedule_T_317 | _schedule_T_297; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_319 = _schedule_T_318 | _schedule_T_298; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_320 = _schedule_T_319 | _schedule_T_299; // @[Mux.scala 27:73]
  wire [1: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 [1:0] _schedule_T_667 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_668 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_669 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_670 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_671 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_672 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_673 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_674 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_675 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_676 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_677 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_678 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_679 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_680 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_681 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_682 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_683 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_684 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_685 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_686 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_687 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_688 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_d_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_689 = _schedule_T_667 | _schedule_T_668; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_690 = _schedule_T_689 | _schedule_T_669; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_691 = _schedule_T_690 | _schedule_T_670; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_692 = _schedule_T_691 | _schedule_T_671; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_693 = _schedule_T_692 | _schedule_T_672; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_694 = _schedule_T_693 | _schedule_T_673; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_695 = _schedule_T_694 | _schedule_T_674; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_696 = _schedule_T_695 | _schedule_T_675; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_697 = _schedule_T_696 | _schedule_T_676; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_698 = _schedule_T_697 | _schedule_T_677; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_699 = _schedule_T_698 | _schedule_T_678; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_700 = _schedule_T_699 | _schedule_T_679; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_701 = _schedule_T_700 | _schedule_T_680; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_702 = _schedule_T_701 | _schedule_T_681; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_703 = _schedule_T_702 | _schedule_T_682; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_704 = _schedule_T_703 | _schedule_T_683; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_705 = _schedule_T_704 | _schedule_T_684; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_706 = _schedule_T_705 | _schedule_T_685; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_707 = _schedule_T_706 | _schedule_T_686; // @[Mux.scala 27:73]
  wire [1: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 [1:0] _schedule_T_1312 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1313 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1314 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1315 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1316 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1317 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1318 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1319 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1320 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1321 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1322 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1323 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1324 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1325 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1326 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1327 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1328 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1329 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1330 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1331 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1332 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1333 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_c_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1334 = _schedule_T_1312 | _schedule_T_1313; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1335 = _schedule_T_1334 | _schedule_T_1314; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1336 = _schedule_T_1335 | _schedule_T_1315; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1337 = _schedule_T_1336 | _schedule_T_1316; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1338 = _schedule_T_1337 | _schedule_T_1317; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1339 = _schedule_T_1338 | _schedule_T_1318; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1340 = _schedule_T_1339 | _schedule_T_1319; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1341 = _schedule_T_1340 | _schedule_T_1320; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1342 = _schedule_T_1341 | _schedule_T_1321; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1343 = _schedule_T_1342 | _schedule_T_1322; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1344 = _schedule_T_1343 | _schedule_T_1323; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1345 = _schedule_T_1344 | _schedule_T_1324; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1346 = _schedule_T_1345 | _schedule_T_1325; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1347 = _schedule_T_1346 | _schedule_T_1326; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1348 = _schedule_T_1347 | _schedule_T_1327; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1349 = _schedule_T_1348 | _schedule_T_1328; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1350 = _schedule_T_1349 | _schedule_T_1329; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1351 = _schedule_T_1350 | _schedule_T_1330; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1352 = _schedule_T_1351 | _schedule_T_1331; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1353 = _schedule_T_1352 | _schedule_T_1332; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1355 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1356 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1357 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1358 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1359 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1360 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1361 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1362 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1363 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1364 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1365 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1366 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1367 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1368 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1369 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1370 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1371 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1372 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1373 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1374 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1375 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1376 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_c_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1377 = _schedule_T_1355 | _schedule_T_1356; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1378 = _schedule_T_1377 | _schedule_T_1357; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1379 = _schedule_T_1378 | _schedule_T_1358; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1380 = _schedule_T_1379 | _schedule_T_1359; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1381 = _schedule_T_1380 | _schedule_T_1360; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1382 = _schedule_T_1381 | _schedule_T_1361; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1383 = _schedule_T_1382 | _schedule_T_1362; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1384 = _schedule_T_1383 | _schedule_T_1363; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1385 = _schedule_T_1384 | _schedule_T_1364; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1386 = _schedule_T_1385 | _schedule_T_1365; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1387 = _schedule_T_1386 | _schedule_T_1366; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1388 = _schedule_T_1387 | _schedule_T_1367; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1389 = _schedule_T_1388 | _schedule_T_1368; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1390 = _schedule_T_1389 | _schedule_T_1369; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1391 = _schedule_T_1390 | _schedule_T_1370; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1392 = _schedule_T_1391 | _schedule_T_1371; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1393 = _schedule_T_1392 | _schedule_T_1372; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1394 = _schedule_T_1393 | _schedule_T_1373; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1395 = _schedule_T_1394 | _schedule_T_1374; // @[Mux.scala 27:73]
  wire [25: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 [1:0] _schedule_T_1613 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1614 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1615 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1616 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1617 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1618 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1619 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1620 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1621 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1622 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1623 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1624 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1625 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1626 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1627 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1628 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1629 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1630 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1631 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1632 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1633 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1634 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_b_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1635 = _schedule_T_1613 | _schedule_T_1614; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1636 = _schedule_T_1635 | _schedule_T_1615; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1637 = _schedule_T_1636 | _schedule_T_1616; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1638 = _schedule_T_1637 | _schedule_T_1617; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1639 = _schedule_T_1638 | _schedule_T_1618; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1640 = _schedule_T_1639 | _schedule_T_1619; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1641 = _schedule_T_1640 | _schedule_T_1620; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1642 = _schedule_T_1641 | _schedule_T_1621; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1643 = _schedule_T_1642 | _schedule_T_1622; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1644 = _schedule_T_1643 | _schedule_T_1623; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1645 = _schedule_T_1644 | _schedule_T_1624; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1646 = _schedule_T_1645 | _schedule_T_1625; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1647 = _schedule_T_1646 | _schedule_T_1626; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1648 = _schedule_T_1647 | _schedule_T_1627; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1649 = _schedule_T_1648 | _schedule_T_1628; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1650 = _schedule_T_1649 | _schedule_T_1629; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1651 = _schedule_T_1650 | _schedule_T_1630; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1652 = _schedule_T_1651 | _schedule_T_1631; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1653 = _schedule_T_1652 | _schedule_T_1632; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1654 = _schedule_T_1653 | _schedule_T_1633; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1656 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1657 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1658 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1659 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1660 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1661 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1662 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1663 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1664 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1665 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1666 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1667 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1668 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1669 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1670 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1671 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1672 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1673 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1674 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1675 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1676 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1677 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_b_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1678 = _schedule_T_1656 | _schedule_T_1657; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1679 = _schedule_T_1678 | _schedule_T_1658; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1680 = _schedule_T_1679 | _schedule_T_1659; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1681 = _schedule_T_1680 | _schedule_T_1660; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1682 = _schedule_T_1681 | _schedule_T_1661; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1683 = _schedule_T_1682 | _schedule_T_1662; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1684 = _schedule_T_1683 | _schedule_T_1663; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1685 = _schedule_T_1684 | _schedule_T_1664; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1686 = _schedule_T_1685 | _schedule_T_1665; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1687 = _schedule_T_1686 | _schedule_T_1666; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1688 = _schedule_T_1687 | _schedule_T_1667; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1689 = _schedule_T_1688 | _schedule_T_1668; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1690 = _schedule_T_1689 | _schedule_T_1669; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1691 = _schedule_T_1690 | _schedule_T_1670; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1692 = _schedule_T_1691 | _schedule_T_1671; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1693 = _schedule_T_1692 | _schedule_T_1672; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1694 = _schedule_T_1693 | _schedule_T_1673; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1695 = _schedule_T_1694 | _schedule_T_1674; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1696 = _schedule_T_1695 | _schedule_T_1675; // @[Mux.scala 27:73]
  wire [25: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 [1:0] _schedule_T_1914 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1915 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1916 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1917 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1918 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1919 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1920 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1921 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1922 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1923 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1924 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1925 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1926 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1927 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1928 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1929 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1930 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1931 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1932 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1933 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1934 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1935 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_a_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1936 = _schedule_T_1914 | _schedule_T_1915; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1937 = _schedule_T_1936 | _schedule_T_1916; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1938 = _schedule_T_1937 | _schedule_T_1917; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1939 = _schedule_T_1938 | _schedule_T_1918; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1940 = _schedule_T_1939 | _schedule_T_1919; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1941 = _schedule_T_1940 | _schedule_T_1920; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1942 = _schedule_T_1941 | _schedule_T_1921; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1943 = _schedule_T_1942 | _schedule_T_1922; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1944 = _schedule_T_1943 | _schedule_T_1923; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1945 = _schedule_T_1944 | _schedule_T_1924; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1946 = _schedule_T_1945 | _schedule_T_1925; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1947 = _schedule_T_1946 | _schedule_T_1926; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1948 = _schedule_T_1947 | _schedule_T_1927; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1949 = _schedule_T_1948 | _schedule_T_1928; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1950 = _schedule_T_1949 | _schedule_T_1929; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1951 = _schedule_T_1950 | _schedule_T_1930; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1952 = _schedule_T_1951 | _schedule_T_1931; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1953 = _schedule_T_1952 | _schedule_T_1932; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1954 = _schedule_T_1953 | _schedule_T_1933; // @[Mux.scala 27:73]
  wire [1:0] _schedule_T_1955 = _schedule_T_1954 | _schedule_T_1934; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1957 = mshr_selectOH[0] ? abc_mshrs_0_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1958 = mshr_selectOH[1] ? abc_mshrs_1_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1959 = mshr_selectOH[2] ? abc_mshrs_2_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1960 = mshr_selectOH[3] ? abc_mshrs_3_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1961 = mshr_selectOH[4] ? abc_mshrs_4_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1962 = mshr_selectOH[5] ? abc_mshrs_5_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1963 = mshr_selectOH[6] ? abc_mshrs_6_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1964 = mshr_selectOH[7] ? abc_mshrs_7_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1965 = mshr_selectOH[8] ? abc_mshrs_8_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1966 = mshr_selectOH[9] ? abc_mshrs_9_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1967 = mshr_selectOH[10] ? abc_mshrs_10_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1968 = mshr_selectOH[11] ? abc_mshrs_11_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1969 = mshr_selectOH[12] ? abc_mshrs_12_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1970 = mshr_selectOH[13] ? abc_mshrs_13_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1971 = mshr_selectOH[14] ? abc_mshrs_14_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1972 = mshr_selectOH[15] ? abc_mshrs_15_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1973 = mshr_selectOH[16] ? abc_mshrs_16_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1974 = mshr_selectOH[17] ? abc_mshrs_17_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1975 = mshr_selectOH[18] ? abc_mshrs_18_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1976 = mshr_selectOH[19] ? abc_mshrs_19_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1977 = mshr_selectOH[20] ? bc_mshr_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1978 = mshr_selectOH[21] ? c_mshr_io_schedule_bits_a_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1979 = _schedule_T_1957 | _schedule_T_1958; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1980 = _schedule_T_1979 | _schedule_T_1959; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1981 = _schedule_T_1980 | _schedule_T_1960; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1982 = _schedule_T_1981 | _schedule_T_1961; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1983 = _schedule_T_1982 | _schedule_T_1962; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1984 = _schedule_T_1983 | _schedule_T_1963; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1985 = _schedule_T_1984 | _schedule_T_1964; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1986 = _schedule_T_1985 | _schedule_T_1965; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1987 = _schedule_T_1986 | _schedule_T_1966; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1988 = _schedule_T_1987 | _schedule_T_1967; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1989 = _schedule_T_1988 | _schedule_T_1968; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1990 = _schedule_T_1989 | _schedule_T_1969; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1991 = _schedule_T_1990 | _schedule_T_1970; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1992 = _schedule_T_1991 | _schedule_T_1971; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1993 = _schedule_T_1992 | _schedule_T_1972; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1994 = _schedule_T_1993 | _schedule_T_1973; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1995 = _schedule_T_1994 | _schedule_T_1974; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1996 = _schedule_T_1995 | _schedule_T_1975; // @[Mux.scala 27:73]
  wire [25:0] _schedule_T_1997 = _schedule_T_1996 | _schedule_T_1976; // @[Mux.scala 27:73]
  wire [25: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 [25:0] _scheduleTag_T_22 = mshr_selectOH[0] ? abc_mshrs_0_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_23 = mshr_selectOH[1] ? abc_mshrs_1_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_24 = mshr_selectOH[2] ? abc_mshrs_2_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_25 = mshr_selectOH[3] ? abc_mshrs_3_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_26 = mshr_selectOH[4] ? abc_mshrs_4_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_27 = mshr_selectOH[5] ? abc_mshrs_5_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_28 = mshr_selectOH[6] ? abc_mshrs_6_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_29 = mshr_selectOH[7] ? abc_mshrs_7_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_30 = mshr_selectOH[8] ? abc_mshrs_8_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_31 = mshr_selectOH[9] ? abc_mshrs_9_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_32 = mshr_selectOH[10] ? abc_mshrs_10_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_33 = mshr_selectOH[11] ? abc_mshrs_11_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_34 = mshr_selectOH[12] ? abc_mshrs_12_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_35 = mshr_selectOH[13] ? abc_mshrs_13_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_36 = mshr_selectOH[14] ? abc_mshrs_14_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_37 = mshr_selectOH[15] ? abc_mshrs_15_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_38 = mshr_selectOH[16] ? abc_mshrs_16_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_39 = mshr_selectOH[17] ? abc_mshrs_17_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_40 = mshr_selectOH[18] ? abc_mshrs_18_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_41 = mshr_selectOH[19] ? abc_mshrs_19_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_42 = mshr_selectOH[20] ? bc_mshr_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_43 = mshr_selectOH[21] ? c_mshr_io_status_bits_tag : 26'h0; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_44 = _scheduleTag_T_22 | _scheduleTag_T_23; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_45 = _scheduleTag_T_44 | _scheduleTag_T_24; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_46 = _scheduleTag_T_45 | _scheduleTag_T_25; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_47 = _scheduleTag_T_46 | _scheduleTag_T_26; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_48 = _scheduleTag_T_47 | _scheduleTag_T_27; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_49 = _scheduleTag_T_48 | _scheduleTag_T_28; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_50 = _scheduleTag_T_49 | _scheduleTag_T_29; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_51 = _scheduleTag_T_50 | _scheduleTag_T_30; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_52 = _scheduleTag_T_51 | _scheduleTag_T_31; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_53 = _scheduleTag_T_52 | _scheduleTag_T_32; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_54 = _scheduleTag_T_53 | _scheduleTag_T_33; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_55 = _scheduleTag_T_54 | _scheduleTag_T_34; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_56 = _scheduleTag_T_55 | _scheduleTag_T_35; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_57 = _scheduleTag_T_56 | _scheduleTag_T_36; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_58 = _scheduleTag_T_57 | _scheduleTag_T_37; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_59 = _scheduleTag_T_58 | _scheduleTag_T_38; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_60 = _scheduleTag_T_59 | _scheduleTag_T_39; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_61 = _scheduleTag_T_60 | _scheduleTag_T_40; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_62 = _scheduleTag_T_61 | _scheduleTag_T_41; // @[Mux.scala 27:73]
  wire [25:0] _scheduleTag_T_63 = _scheduleTag_T_62 | _scheduleTag_T_42; // @[Mux.scala 27:73]
  wire [25:0] scheduleTag = _scheduleTag_T_63 | _scheduleTag_T_43; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_22 = mshr_selectOH[0] ? abc_mshrs_0_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_23 = mshr_selectOH[1] ? abc_mshrs_1_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_24 = mshr_selectOH[2] ? abc_mshrs_2_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_25 = mshr_selectOH[3] ? abc_mshrs_3_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_26 = mshr_selectOH[4] ? abc_mshrs_4_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_27 = mshr_selectOH[5] ? abc_mshrs_5_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_28 = mshr_selectOH[6] ? abc_mshrs_6_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_29 = mshr_selectOH[7] ? abc_mshrs_7_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_30 = mshr_selectOH[8] ? abc_mshrs_8_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_31 = mshr_selectOH[9] ? abc_mshrs_9_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_32 = mshr_selectOH[10] ? abc_mshrs_10_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_33 = mshr_selectOH[11] ? abc_mshrs_11_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_34 = mshr_selectOH[12] ? abc_mshrs_12_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_35 = mshr_selectOH[13] ? abc_mshrs_13_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_36 = mshr_selectOH[14] ? abc_mshrs_14_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_37 = mshr_selectOH[15] ? abc_mshrs_15_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_38 = mshr_selectOH[16] ? abc_mshrs_16_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_39 = mshr_selectOH[17] ? abc_mshrs_17_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_40 = mshr_selectOH[18] ? abc_mshrs_18_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_41 = mshr_selectOH[19] ? abc_mshrs_19_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_42 = mshr_selectOH[20] ? bc_mshr_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_43 = mshr_selectOH[21] ? c_mshr_io_status_bits_set : 2'h0; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_44 = _scheduleSet_T_22 | _scheduleSet_T_23; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_45 = _scheduleSet_T_44 | _scheduleSet_T_24; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_46 = _scheduleSet_T_45 | _scheduleSet_T_25; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_47 = _scheduleSet_T_46 | _scheduleSet_T_26; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_48 = _scheduleSet_T_47 | _scheduleSet_T_27; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_49 = _scheduleSet_T_48 | _scheduleSet_T_28; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_50 = _scheduleSet_T_49 | _scheduleSet_T_29; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_51 = _scheduleSet_T_50 | _scheduleSet_T_30; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_52 = _scheduleSet_T_51 | _scheduleSet_T_31; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_53 = _scheduleSet_T_52 | _scheduleSet_T_32; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_54 = _scheduleSet_T_53 | _scheduleSet_T_33; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_55 = _scheduleSet_T_54 | _scheduleSet_T_34; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_56 = _scheduleSet_T_55 | _scheduleSet_T_35; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_57 = _scheduleSet_T_56 | _scheduleSet_T_36; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_58 = _scheduleSet_T_57 | _scheduleSet_T_37; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_59 = _scheduleSet_T_58 | _scheduleSet_T_38; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_60 = _scheduleSet_T_59 | _scheduleSet_T_39; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_61 = _scheduleSet_T_60 | _scheduleSet_T_40; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_62 = _scheduleSet_T_61 | _scheduleSet_T_41; // @[Mux.scala 27:73]
  wire [1:0] _scheduleSet_T_63 = _scheduleSet_T_62 | _scheduleSet_T_42; // @[Mux.scala 27:73]
  wire [1: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 [25: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 [1: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 [25: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 [1: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [25: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 [1: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 [1:0] _sinkD_io_set_WIRE_0 = abc_mshrs_0_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _sinkD_io_set_WIRE_1 = abc_mshrs_1_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_360 = 5'h1 == sinkD_io_source ? _sinkD_io_set_WIRE_1 : _sinkD_io_set_WIRE_0; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_2 = abc_mshrs_2_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_361 = 5'h2 == sinkD_io_source ? _sinkD_io_set_WIRE_2 : _GEN_360; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_3 = abc_mshrs_3_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_362 = 5'h3 == sinkD_io_source ? _sinkD_io_set_WIRE_3 : _GEN_361; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_4 = abc_mshrs_4_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_363 = 5'h4 == sinkD_io_source ? _sinkD_io_set_WIRE_4 : _GEN_362; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_5 = abc_mshrs_5_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_364 = 5'h5 == sinkD_io_source ? _sinkD_io_set_WIRE_5 : _GEN_363; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_6 = abc_mshrs_6_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_365 = 5'h6 == sinkD_io_source ? _sinkD_io_set_WIRE_6 : _GEN_364; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_7 = abc_mshrs_7_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_366 = 5'h7 == sinkD_io_source ? _sinkD_io_set_WIRE_7 : _GEN_365; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_8 = abc_mshrs_8_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_367 = 5'h8 == sinkD_io_source ? _sinkD_io_set_WIRE_8 : _GEN_366; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_9 = abc_mshrs_9_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_368 = 5'h9 == sinkD_io_source ? _sinkD_io_set_WIRE_9 : _GEN_367; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_10 = abc_mshrs_10_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_369 = 5'ha == sinkD_io_source ? _sinkD_io_set_WIRE_10 : _GEN_368; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_11 = abc_mshrs_11_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_370 = 5'hb == sinkD_io_source ? _sinkD_io_set_WIRE_11 : _GEN_369; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_12 = abc_mshrs_12_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_371 = 5'hc == sinkD_io_source ? _sinkD_io_set_WIRE_12 : _GEN_370; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_13 = abc_mshrs_13_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_372 = 5'hd == sinkD_io_source ? _sinkD_io_set_WIRE_13 : _GEN_371; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_14 = abc_mshrs_14_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_373 = 5'he == sinkD_io_source ? _sinkD_io_set_WIRE_14 : _GEN_372; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_15 = abc_mshrs_15_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_374 = 5'hf == sinkD_io_source ? _sinkD_io_set_WIRE_15 : _GEN_373; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_16 = abc_mshrs_16_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_375 = 5'h10 == sinkD_io_source ? _sinkD_io_set_WIRE_16 : _GEN_374; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_17 = abc_mshrs_17_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_376 = 5'h11 == sinkD_io_source ? _sinkD_io_set_WIRE_17 : _GEN_375; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_18 = abc_mshrs_18_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_377 = 5'h12 == sinkD_io_source ? _sinkD_io_set_WIRE_18 : _GEN_376; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_19 = abc_mshrs_19_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_378 = 5'h13 == sinkD_io_source ? _sinkD_io_set_WIRE_19 : _GEN_377; // @[Scheduler.scala 309:{16,16}]
  wire [1:0] _sinkD_io_set_WIRE_20 = bc_mshr_io_status_bits_set; // @[Scheduler.scala 309:{22,22}]
  wire [1:0] _GEN_379 = 5'h14 == sinkD_io_source ? _sinkD_io_set_WIRE_20 : _GEN_378; // @[Scheduler.scala 309:{16,16}]
  wire [1: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
