../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: