../src/lowrisc_ip_nmi_gen_0.1/rtl/nmi_gen_reg_pkg.sv Cov: 100%

   1: // Copyright lowRISC contributors.
   2: // Licensed under the Apache License, Version 2.0, see LICENSE for details.
   3: // SPDX-License-Identifier: Apache-2.0
   4: //
   5: // Register Package auto-generated by `reggen` containing data structure
   6: 
   7: package nmi_gen_reg_pkg;
   8: 
   9:   ////////////////////////////
  10:   // Typedefs for registers //
  11:   ////////////////////////////
  12:   typedef struct packed {
  13:     struct packed {
  14:       logic        q;
  15:     } esc0;
  16:     struct packed {
  17:       logic        q;
  18:     } esc1;
  19:     struct packed {
  20:       logic        q;
  21:     } esc2;
  22:     struct packed {
  23:       logic        q;
  24:     } esc3;
  25:   } nmi_gen_reg2hw_intr_state_reg_t;
  26: 
  27:   typedef struct packed {
  28:     struct packed {
  29:       logic        q;
  30:     } esc0;
  31:     struct packed {
  32:       logic        q;
  33:     } esc1;
  34:     struct packed {
  35:       logic        q;
  36:     } esc2;
  37:     struct packed {
  38:       logic        q;
  39:     } esc3;
  40:   } nmi_gen_reg2hw_intr_enable_reg_t;
  41: 
  42:   typedef struct packed {
  43:     struct packed {
  44:       logic        q;
  45:       logic        qe;
  46:     } esc0;
  47:     struct packed {
  48:       logic        q;
  49:       logic        qe;
  50:     } esc1;
  51:     struct packed {
  52:       logic        q;
  53:       logic        qe;
  54:     } esc2;
  55:     struct packed {
  56:       logic        q;
  57:       logic        qe;
  58:     } esc3;
  59:   } nmi_gen_reg2hw_intr_test_reg_t;
  60: 
  61: 
  62:   typedef struct packed {
  63:     struct packed {
  64:       logic        d;
  65:       logic        de;
  66:     } esc0;
  67:     struct packed {
  68:       logic        d;
  69:       logic        de;
  70:     } esc1;
  71:     struct packed {
  72:       logic        d;
  73:       logic        de;
  74:     } esc2;
  75:     struct packed {
  76:       logic        d;
  77:       logic        de;
  78:     } esc3;
  79:   } nmi_gen_hw2reg_intr_state_reg_t;
  80: 
  81: 
  82:   ///////////////////////////////////////
  83:   // Register to internal design logic //
  84:   ///////////////////////////////////////
  85:   typedef struct packed {
  86:     nmi_gen_reg2hw_intr_state_reg_t intr_state; // [15:12]
  87:     nmi_gen_reg2hw_intr_enable_reg_t intr_enable; // [11:8]
  88:     nmi_gen_reg2hw_intr_test_reg_t intr_test; // [7:0]
  89:   } nmi_gen_reg2hw_t;
  90: 
  91:   ///////////////////////////////////////
  92:   // Internal design logic to register //
  93:   ///////////////////////////////////////
  94:   typedef struct packed {
  95:     nmi_gen_hw2reg_intr_state_reg_t intr_state; // [7:4]
  96:   } nmi_gen_hw2reg_t;
  97: 
  98:   // Register Address
  99:   parameter logic [3:0] NMI_GEN_INTR_STATE_OFFSET = 4'h 0;
 100:   parameter logic [3:0] NMI_GEN_INTR_ENABLE_OFFSET = 4'h 4;
 101:   parameter logic [3:0] NMI_GEN_INTR_TEST_OFFSET = 4'h 8;
 102: 
 103: 
 104:   // Register Index
 105:   typedef enum int {
 106:     NMI_GEN_INTR_STATE,
 107:     NMI_GEN_INTR_ENABLE,
 108:     NMI_GEN_INTR_TEST
 109:   } nmi_gen_id_e;
 110: 
 111:   // Register width information to check illegal writes
 112:   parameter logic [3:0] NMI_GEN_PERMIT [3] = '{
 113:     4'b 0001, // index[0] NMI_GEN_INTR_STATE
 114:     4'b 0001, // index[1] NMI_GEN_INTR_ENABLE
 115:     4'b 0001  // index[2] NMI_GEN_INTR_TEST
 116:   };
 117: endpackage
 118: 
 119: