// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// Register Package auto-generated by `reggen` containing data structure

package rv_plic_reg_pkg;

// Register to internal design logic
typedef struct packed {
  struct packed {
    struct packed {
      logic q;
    } le0;
    struct packed {
      logic q;
    } le1;
    struct packed {
      logic q;
    } le2;
    struct packed {
      logic q;
    } le3;
    struct packed {
      logic q;
    } le4;
    struct packed {
      logic q;
    } le5;
    struct packed {
      logic q;
    } le6;
    struct packed {
      logic q;
    } le7;
    struct packed {
      logic q;
    } le8;
    struct packed {
      logic q;
    } le9;
    struct packed {
      logic q;
    } le10;
    struct packed {
      logic q;
    } le11;
    struct packed {
      logic q;
    } le12;
    struct packed {
      logic q;
    } le13;
    struct packed {
      logic q;
    } le14;
    struct packed {
      logic q;
    } le15;
    struct packed {
      logic q;
    } le16;
    struct packed {
      logic q;
    } le17;
    struct packed {
      logic q;
    } le18;
    struct packed {
      logic q;
    } le19;
    struct packed {
      logic q;
    } le20;
    struct packed {
      logic q;
    } le21;
    struct packed {
      logic q;
    } le22;
    struct packed {
      logic q;
    } le23;
    struct packed {
      logic q;
    } le24;
    struct packed {
      logic q;
    } le25;
    struct packed {
      logic q;
    } le26;
    struct packed {
      logic q;
    } le27;
    struct packed {
      logic q;
    } le28;
    struct packed {
      logic q;
    } le29;
    struct packed {
      logic q;
    } le30;
    struct packed {
      logic q;
    } le31;
  } le;
  struct packed {
    logic [2:0] q;
  } prio0;
  struct packed {
    logic [2:0] q;
  } prio1;
  struct packed {
    logic [2:0] q;
  } prio2;
  struct packed {
    logic [2:0] q;
  } prio3;
  struct packed {
    logic [2:0] q;
  } prio4;
  struct packed {
    logic [2:0] q;
  } prio5;
  struct packed {
    logic [2:0] q;
  } prio6;
  struct packed {
    logic [2:0] q;
  } prio7;
  struct packed {
    logic [2:0] q;
  } prio8;
  struct packed {
    logic [2:0] q;
  } prio9;
  struct packed {
    logic [2:0] q;
  } prio10;
  struct packed {
    logic [2:0] q;
  } prio11;
  struct packed {
    logic [2:0] q;
  } prio12;
  struct packed {
    logic [2:0] q;
  } prio13;
  struct packed {
    logic [2:0] q;
  } prio14;
  struct packed {
    logic [2:0] q;
  } prio15;
  struct packed {
    logic [2:0] q;
  } prio16;
  struct packed {
    logic [2:0] q;
  } prio17;
  struct packed {
    logic [2:0] q;
  } prio18;
  struct packed {
    logic [2:0] q;
  } prio19;
  struct packed {
    logic [2:0] q;
  } prio20;
  struct packed {
    logic [2:0] q;
  } prio21;
  struct packed {
    logic [2:0] q;
  } prio22;
  struct packed {
    logic [2:0] q;
  } prio23;
  struct packed {
    logic [2:0] q;
  } prio24;
  struct packed {
    logic [2:0] q;
  } prio25;
  struct packed {
    logic [2:0] q;
  } prio26;
  struct packed {
    logic [2:0] q;
  } prio27;
  struct packed {
    logic [2:0] q;
  } prio28;
  struct packed {
    logic [2:0] q;
  } prio29;
  struct packed {
    logic [2:0] q;
  } prio30;
  struct packed {
    logic [2:0] q;
  } prio31;
  struct packed {
    struct packed {
      logic q;
    } e0;
    struct packed {
      logic q;
    } e1;
    struct packed {
      logic q;
    } e2;
    struct packed {
      logic q;
    } e3;
    struct packed {
      logic q;
    } e4;
    struct packed {
      logic q;
    } e5;
    struct packed {
      logic q;
    } e6;
    struct packed {
      logic q;
    } e7;
    struct packed {
      logic q;
    } e8;
    struct packed {
      logic q;
    } e9;
    struct packed {
      logic q;
    } e10;
    struct packed {
      logic q;
    } e11;
    struct packed {
      logic q;
    } e12;
    struct packed {
      logic q;
    } e13;
    struct packed {
      logic q;
    } e14;
    struct packed {
      logic q;
    } e15;
    struct packed {
      logic q;
    } e16;
    struct packed {
      logic q;
    } e17;
    struct packed {
      logic q;
    } e18;
    struct packed {
      logic q;
    } e19;
    struct packed {
      logic q;
    } e20;
    struct packed {
      logic q;
    } e21;
    struct packed {
      logic q;
    } e22;
    struct packed {
      logic q;
    } e23;
    struct packed {
      logic q;
    } e24;
    struct packed {
      logic q;
    } e25;
    struct packed {
      logic q;
    } e26;
    struct packed {
      logic q;
    } e27;
    struct packed {
      logic q;
    } e28;
    struct packed {
      logic q;
    } e29;
    struct packed {
      logic q;
    } e30;
    struct packed {
      logic q;
    } e31;
  } ie0;
  struct packed {
    logic [2:0] q;
  } threshold0;
  struct packed {
    logic [5:0] q;
    logic qe;
    logic re;
  } cc0;
} rv_plic_reg2hw_t;

// Internal design logic to register
typedef struct packed {
  struct packed {
    struct packed {
      logic d;
      logic de;
    } p0;
    struct packed {
      logic d;
      logic de;
    } p1;
    struct packed {
      logic d;
      logic de;
    } p2;
    struct packed {
      logic d;
      logic de;
    } p3;
    struct packed {
      logic d;
      logic de;
    } p4;
    struct packed {
      logic d;
      logic de;
    } p5;
    struct packed {
      logic d;
      logic de;
    } p6;
    struct packed {
      logic d;
      logic de;
    } p7;
    struct packed {
      logic d;
      logic de;
    } p8;
    struct packed {
      logic d;
      logic de;
    } p9;
    struct packed {
      logic d;
      logic de;
    } p10;
    struct packed {
      logic d;
      logic de;
    } p11;
    struct packed {
      logic d;
      logic de;
    } p12;
    struct packed {
      logic d;
      logic de;
    } p13;
    struct packed {
      logic d;
      logic de;
    } p14;
    struct packed {
      logic d;
      logic de;
    } p15;
    struct packed {
      logic d;
      logic de;
    } p16;
    struct packed {
      logic d;
      logic de;
    } p17;
    struct packed {
      logic d;
      logic de;
    } p18;
    struct packed {
      logic d;
      logic de;
    } p19;
    struct packed {
      logic d;
      logic de;
    } p20;
    struct packed {
      logic d;
      logic de;
    } p21;
    struct packed {
      logic d;
      logic de;
    } p22;
    struct packed {
      logic d;
      logic de;
    } p23;
    struct packed {
      logic d;
      logic de;
    } p24;
    struct packed {
      logic d;
      logic de;
    } p25;
    struct packed {
      logic d;
      logic de;
    } p26;
    struct packed {
      logic d;
      logic de;
    } p27;
    struct packed {
      logic d;
      logic de;
    } p28;
    struct packed {
      logic d;
      logic de;
    } p29;
    struct packed {
      logic d;
      logic de;
    } p30;
    struct packed {
      logic d;
      logic de;
    } p31;
  } ip;
  struct packed {
    logic [5:0] d;
  } cc0;
} rv_plic_hw2reg_t;

// Register Address
  parameter RV_PLIC_IP_OFFSET = 9'h 0;
  parameter RV_PLIC_LE_OFFSET = 9'h 4;
  parameter RV_PLIC_PRIO0_OFFSET = 9'h 8;
  parameter RV_PLIC_PRIO1_OFFSET = 9'h c;
  parameter RV_PLIC_PRIO2_OFFSET = 9'h 10;
  parameter RV_PLIC_PRIO3_OFFSET = 9'h 14;
  parameter RV_PLIC_PRIO4_OFFSET = 9'h 18;
  parameter RV_PLIC_PRIO5_OFFSET = 9'h 1c;
  parameter RV_PLIC_PRIO6_OFFSET = 9'h 20;
  parameter RV_PLIC_PRIO7_OFFSET = 9'h 24;
  parameter RV_PLIC_PRIO8_OFFSET = 9'h 28;
  parameter RV_PLIC_PRIO9_OFFSET = 9'h 2c;
  parameter RV_PLIC_PRIO10_OFFSET = 9'h 30;
  parameter RV_PLIC_PRIO11_OFFSET = 9'h 34;
  parameter RV_PLIC_PRIO12_OFFSET = 9'h 38;
  parameter RV_PLIC_PRIO13_OFFSET = 9'h 3c;
  parameter RV_PLIC_PRIO14_OFFSET = 9'h 40;
  parameter RV_PLIC_PRIO15_OFFSET = 9'h 44;
  parameter RV_PLIC_PRIO16_OFFSET = 9'h 48;
  parameter RV_PLIC_PRIO17_OFFSET = 9'h 4c;
  parameter RV_PLIC_PRIO18_OFFSET = 9'h 50;
  parameter RV_PLIC_PRIO19_OFFSET = 9'h 54;
  parameter RV_PLIC_PRIO20_OFFSET = 9'h 58;
  parameter RV_PLIC_PRIO21_OFFSET = 9'h 5c;
  parameter RV_PLIC_PRIO22_OFFSET = 9'h 60;
  parameter RV_PLIC_PRIO23_OFFSET = 9'h 64;
  parameter RV_PLIC_PRIO24_OFFSET = 9'h 68;
  parameter RV_PLIC_PRIO25_OFFSET = 9'h 6c;
  parameter RV_PLIC_PRIO26_OFFSET = 9'h 70;
  parameter RV_PLIC_PRIO27_OFFSET = 9'h 74;
  parameter RV_PLIC_PRIO28_OFFSET = 9'h 78;
  parameter RV_PLIC_PRIO29_OFFSET = 9'h 7c;
  parameter RV_PLIC_PRIO30_OFFSET = 9'h 80;
  parameter RV_PLIC_PRIO31_OFFSET = 9'h 84;
  parameter RV_PLIC_IE0_OFFSET = 9'h 88;
  parameter RV_PLIC_THRESHOLD0_OFFSET = 9'h 8c;
  parameter RV_PLIC_CC0_OFFSET = 9'h 90;

endpackage
