diff --git a/hw/ip/alert_handler/rtl/alert_handler_accu.sv b/hw/ip/alert_handler/rtl/alert_handler_accu.sv
index 1d32280..0865239 100644
--- a/hw/ip/alert_handler/rtl/alert_handler_accu.sv
+++ b/hw/ip/alert_handler/rtl/alert_handler_accu.sv
@@ -10,17 +10,17 @@
 // does not wrap around.
 //
 
-module alert_handler_accu (
-  input                                   clk_i,
-  input                                   rst_ni,
-  input                                   clr_i,        // clear the accumulator
-  input                                   class_trig_i, // increments the accu
-  input        [alert_pkg::AccuCntDw-1:0] thresh_i,     // escalation trigger threshold
-  output logic [alert_pkg::AccuCntDw-1:0] accu_cnt_o,   // output of current accu value
-  output logic                            accu_trig_o   // escalation trigger output
+module alert_handler_accu import alert_pkg::*; (
+  input                        clk_i,
+  input                        rst_ni,
+  input                        clr_i,        // clear the accumulator
+  input                        class_trig_i, // increments the accu
+  input        [AccuCntDw-1:0] thresh_i,     // escalation trigger threshold
+  output logic [AccuCntDw-1:0] accu_cnt_o,   // output of current accu value
+  output logic                 accu_trig_o   // escalation trigger output
 );
 
-  logic [alert_pkg::AccuCntDw-1:0] accu_d, accu_q;
+  logic [AccuCntDw-1:0] accu_d, accu_q;
 
   assign accu_d = (clr_i)                      ? '0            : // clear
                   (class_trig_i && !(&accu_q)) ? accu_q + 1'b1 : // saturate counter at maximum
diff --git a/hw/ip/alert_handler/rtl/alert_handler_class.sv b/hw/ip/alert_handler/rtl/alert_handler_class.sv
index 9f0838e..be23344 100644
--- a/hw/ip/alert_handler/rtl/alert_handler_class.sv
+++ b/hw/ip/alert_handler/rtl/alert_handler_class.sv
@@ -7,18 +7,18 @@
 // produces the alert cause and class trigger signals.
 //
 
-module alert_handler_class (
-  input [alert_pkg::NAlerts-1:0]                              alert_trig_i,      // alert trigger
-  input [alert_pkg::N_LOC_ALERT-1:0]                          loc_alert_trig_i,  // alert trigger
-  input [alert_pkg::NAlerts-1:0]                              alert_en_i,        // alert enable
-  input [alert_pkg::N_LOC_ALERT-1:0]                          loc_alert_en_i,    // alert enable
-  input [alert_pkg::NAlerts-1:0]    [alert_pkg::CLASS_DW-1:0] alert_class_i,     // class assignment
-  input [alert_pkg::N_LOC_ALERT-1:0][alert_pkg::CLASS_DW-1:0] loc_alert_class_i, // class assignment
-  input [alert_pkg::N_CLASSES-1:0]                            class_en_i,        // class enables
+module alert_handler_class import alert_pkg::*; (
+  input [NAlerts-1:0]                   alert_trig_i,      // alert trigger
+  input [N_LOC_ALERT-1:0]               loc_alert_trig_i,  // alert trigger
+  input [NAlerts-1:0]                   alert_en_i,        // alert enable
+  input [N_LOC_ALERT-1:0]               loc_alert_en_i,    // alert enable
+  input [NAlerts-1:0]    [CLASS_DW-1:0] alert_class_i,     // class assignment
+  input [N_LOC_ALERT-1:0][CLASS_DW-1:0] loc_alert_class_i, // class assignment
+  input [N_CLASSES-1:0]                 class_en_i,        // class enables
 
-  output logic [alert_pkg::NAlerts-1:0]                       alert_cause_o,     // alert cause
-  output logic [alert_pkg::N_LOC_ALERT-1:0]                   loc_alert_cause_o, // alert cause
-  output logic [alert_pkg::N_CLASSES-1:0]                     class_trig_o       // class triggered
+  output logic [NAlerts-1:0]            alert_cause_o,     // alert cause
+  output logic [N_LOC_ALERT-1:0]        loc_alert_cause_o, // alert cause
+  output logic [N_CLASSES-1:0]          class_trig_o       // class triggered
 );
 
   // assign alert cause
@@ -26,23 +26,23 @@
   assign loc_alert_cause_o = loc_alert_en_i & loc_alert_trig_i;
 
   // classification mapping
-  logic [alert_pkg::N_CLASSES-1:0][alert_pkg::NAlerts-1:0]     class_masks;
-  logic [alert_pkg::N_CLASSES-1:0][alert_pkg::N_LOC_ALERT-1:0] loc_class_masks;
+  logic [N_CLASSES-1:0][NAlerts-1:0]     class_masks;
+  logic [N_CLASSES-1:0][N_LOC_ALERT-1:0] loc_class_masks;
 
   // this is basically an address to onehot0 decoder
   always_comb begin : p_class_mask
     class_masks = '0;
     loc_class_masks = '0;
-    for (int unsigned kk = 0; kk < alert_pkg::NAlerts; kk++) begin
+    for (int unsigned kk = 0; kk < NAlerts; kk++) begin
       class_masks[alert_class_i[kk]][kk] = 1'b1;
     end
-    for (int unsigned kk = 0; kk < alert_pkg::N_LOC_ALERT; kk++) begin
+    for (int unsigned kk = 0; kk < N_LOC_ALERT; kk++) begin
       loc_class_masks[loc_alert_class_i[kk]][kk] = 1'b1;
     end
   end
 
   // mask and OR reduction, followed by class enable gating
-  for (genvar k = 0; k < alert_pkg::N_CLASSES; k++) begin : gen_classifier
+  for (genvar k = 0; k < N_CLASSES; k++) begin : gen_classifier
     assign class_trig_o[k] = class_en_i[k]         &
                              (|{ alert_cause_o     & class_masks[k],
                                  loc_alert_cause_o & loc_class_masks[k] });
diff --git a/hw/ip/alert_handler/rtl/alert_handler_esc_timer.sv b/hw/ip/alert_handler/rtl/alert_handler_esc_timer.sv
index 84fcaeb..81dcf5e 100644
--- a/hw/ip/alert_handler/rtl/alert_handler_esc_timer.sv
+++ b/hw/ip/alert_handler/rtl/alert_handler_esc_timer.sv
@@ -16,35 +16,35 @@
 // Note that escalation always takes precedence over the interrupt timeout.
 //
 
-module alert_handler_esc_timer (
-  input                                   clk_i,
-  input                                   rst_ni,
-  input                                   en_i,           // enables timeout/escalation
-  input                                   clr_i,          // aborts escalation
-  input                                   accum_trig_i,   // this will trigger escalation
-  input                                   timeout_en_i,   // enables timeout
-  input        [alert_pkg::EscCntDw-1:0]  timeout_cyc_i,  // interrupt timeout. 0 = disabled
-  input        [alert_pkg::N_ESC_SEV-1:0] esc_en_i,       // escalation signal enables
-  input        [alert_pkg::N_ESC_SEV-1:0]
-               [alert_pkg::PHASE_DW-1:0]  esc_map_i,      // escalation signal / phase map
-  input        [alert_pkg::N_PHASES-1:0]
-               [alert_pkg::EscCntDw-1:0]  phase_cyc_i,    // cycle counts of individual phases
-  output logic                            esc_trig_o,     // asserted if escalation triggers
-  output logic [alert_pkg::EscCntDw-1:0]  esc_cnt_o,      // current timeout / escalation count
-  output logic [alert_pkg::N_ESC_SEV-1:0] esc_sig_en_o,   // escalation signal outputs
+module alert_handler_esc_timer import alert_pkg::*; (
+  input                        clk_i,
+  input                        rst_ni,
+  input                        en_i,           // enables timeout/escalation
+  input                        clr_i,          // aborts escalation
+  input                        accum_trig_i,   // this will trigger escalation
+  input                        timeout_en_i,   // enables timeout
+  input        [EscCntDw-1:0]  timeout_cyc_i,  // interrupt timeout. 0 = disabled
+  input        [N_ESC_SEV-1:0] esc_en_i,       // escalation signal enables
+  input        [N_ESC_SEV-1:0]
+               [PHASE_DW-1:0]  esc_map_i,      // escalation signal / phase map
+  input        [N_PHASES-1:0]
+               [EscCntDw-1:0]  phase_cyc_i,    // cycle counts of individual phases
+  output logic                 esc_trig_o,     // asserted if escalation triggers
+  output logic [EscCntDw-1:0]  esc_cnt_o,      // current timeout / escalation count
+  output logic [N_ESC_SEV-1:0] esc_sig_en_o,   // escalation signal outputs
   // current state output
   // 000: idle, 001: irq timeout counting 100: phase0, 101: phase1, 110: phase2, 111: phase3
-  output alert_pkg::cstate_e              esc_state_o
+  output cstate_e              esc_state_o
 );
 
   /////////////
   // Counter //
   /////////////
 
-  alert_pkg::cstate_e state_d, state_q;
+  cstate_e state_d, state_q;
 
   logic cnt_en, cnt_clr, cnt_ge;
-  logic [alert_pkg::EscCntDw-1:0] cnt_d, cnt_q;
+  logic [EscCntDw-1:0] cnt_d, cnt_q;
 
   // escalation counter, used for all phases and the timeout
   assign cnt_d = cnt_q + 1'b1;
@@ -55,14 +55,14 @@
 
   // threshold test, the thresholds are muxed further below
   // depending on the current state
-  logic [alert_pkg::EscCntDw-1:0] thresh;
+  logic [EscCntDw-1:0] thresh;
   assign cnt_ge    = (cnt_q >= thresh);
 
   //////////////
   // Main FSM //
   //////////////
 
-  logic [alert_pkg::N_PHASES-1:0] phase_oh;
+  logic [N_PHASES-1:0] phase_oh;
 
   always_comb begin : p_fsm
     // default
@@ -76,16 +76,16 @@
     unique case (state_q)
       // wait for an escalation trigger or an alert trigger
       // the latter will trigger an interrupt timeout
-      alert_pkg::Idle: begin
+      Idle: begin
         if (accum_trig_i && en_i) begin
-          state_d    = alert_pkg::Phase0;
+          state_d    = Phase0;
           cnt_en     = 1'b1;
           esc_trig_o = 1'b1;
         // the counter is zero in this state. so if the
         // timeout count is zero (==disabled), cnt_ge will be true.
         end else if (timeout_en_i && !cnt_ge && en_i) begin
           cnt_en  = 1'b1;
-          state_d = alert_pkg::Timeout;
+          state_d = Timeout;
         end else begin
           cnt_clr = 1'b1;
         end
@@ -96,9 +96,9 @@
       // in case the interrupt timeout hits it's cycle count, we
       // also enter escalation phase0.
       // ongoing timeouts can always be cleared.
-      alert_pkg::Timeout: begin
+      Timeout: begin
         if (accum_trig_i || (cnt_ge && timeout_en_i)) begin
-          state_d    = alert_pkg::Phase0;
+          state_d    = Phase0;
           cnt_en     = 1'b1;
           cnt_clr    = 1'b1;
           esc_trig_o = 1'b1;
@@ -107,65 +107,65 @@
         end else if (timeout_en_i) begin
           cnt_en  = 1'b1;
         end else begin
-          state_d = alert_pkg::Idle;
+          state_d = Idle;
           cnt_clr = 1'b1;
         end
       end
       // note: autolocking the clear signal is done in the regfile
-      alert_pkg::Phase0: begin
+      Phase0: begin
         phase_oh[0] = 1'b1;
         thresh      = phase_cyc_i[0];
 
         if (clr_i) begin
-          state_d = alert_pkg::Idle;
+          state_d = Idle;
           cnt_clr = 1'b1;
         end else if (cnt_ge) begin
-          state_d = alert_pkg::Phase1;
+          state_d = Phase1;
           cnt_clr = 1'b1;
           cnt_en  = 1'b1;
         end else begin
           cnt_en = 1'b1;
         end
       end
-      alert_pkg::Phase1: begin
+      Phase1: begin
         phase_oh[1] = 1'b1;
         thresh      = phase_cyc_i[1];
 
         if (clr_i) begin
-          state_d = alert_pkg::Idle;
+          state_d = Idle;
           cnt_clr = 1'b1;
         end else if (cnt_ge) begin
-          state_d = alert_pkg::Phase2;
+          state_d = Phase2;
           cnt_clr = 1'b1;
           cnt_en  = 1'b1;
         end else begin
           cnt_en = 1'b1;
         end
       end
-      alert_pkg::Phase2: begin
+      Phase2: begin
         phase_oh[2] = 1'b1;
         thresh      = phase_cyc_i[2];
 
         if (clr_i) begin
-          state_d = alert_pkg::Idle;
+          state_d = Idle;
           cnt_clr = 1'b1;
         end else if (cnt_ge) begin
-          state_d = alert_pkg::Phase3;
+          state_d = Phase3;
           cnt_clr = 1'b1;
           cnt_en  = 1'b1;
         end else begin
           cnt_en = 1'b1;
         end
       end
-      alert_pkg::Phase3: begin
+      Phase3: begin
         phase_oh[3] = 1'b1;
         thresh      = phase_cyc_i[3];
 
         if (clr_i) begin
-          state_d = alert_pkg::Idle;
+          state_d = Idle;
           cnt_clr = 1'b1;
         end else if (cnt_ge) begin
-          state_d = alert_pkg::Terminal;
+          state_d = Terminal;
           cnt_clr = 1'b1;
         end else begin
           cnt_en = 1'b1;
@@ -174,19 +174,19 @@
       // final, terminal state after escalation.
       // if clr is locked down, only a system reset
       // will get us out of this state
-      alert_pkg::Terminal: begin
+      Terminal: begin
         if (clr_i) begin
-          state_d = alert_pkg::Idle;
+          state_d = Idle;
         end
       end
-      default : state_d = alert_pkg::Idle;
+      default : state_d = Idle;
     endcase
   end
 
-  logic [alert_pkg::N_ESC_SEV-1:0][alert_pkg::N_PHASES-1:0] esc_map_oh;
-  for (genvar k = 0; k < alert_pkg::N_ESC_SEV; k++) begin : gen_phase_map
+  logic [N_ESC_SEV-1:0][N_PHASES-1:0] esc_map_oh;
+  for (genvar k = 0; k < N_ESC_SEV; k++) begin : gen_phase_map
     // generate configuration mask for escalation enable signals
-    assign esc_map_oh[k] = alert_pkg::N_ESC_SEV'(esc_en_i[k]) << esc_map_i[k];
+    assign esc_map_oh[k] = N_ESC_SEV'(esc_en_i[k]) << esc_map_i[k];
     // mask reduce current phase state vector
     assign esc_sig_en_o[k] = |(esc_map_oh[k] & phase_oh);
   end
@@ -198,14 +198,14 @@
   // switch interrupt / escalation mode
   always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
     if (!rst_ni) begin
-      state_q <= alert_pkg::Idle;
+      state_q <= Idle;
       cnt_q   <= '0;
     end else begin
       state_q <= state_d;
 
       // escalation counter
       if (cnt_en && cnt_clr) begin
-        cnt_q <= alert_pkg::EscCntDw'(1'b1);
+        cnt_q <= EscCntDw'(1'b1);
       end else if (cnt_clr) begin
         cnt_q <= '0;
       end else if (cnt_en) begin
@@ -219,34 +219,34 @@
   ////////////////
 
   // a clear should always bring us back to idle
-  `ASSERT(CheckClr, clr_i && state_q != alert_pkg::Timeout |=>
-      state_q == alert_pkg::Idle, clk_i, !rst_ni)
+  `ASSERT(CheckClr, clr_i && state_q != Timeout |=>
+      state_q == Idle, clk_i, !rst_ni)
   // if currently in idle and not enabled, must remain here
-  `ASSERT(CheckEn,  state_q == alert_pkg::Idle && !en_i |=>
-      state_q == alert_pkg::Idle, clk_i, !rst_ni)
+  `ASSERT(CheckEn,  state_q == Idle && !en_i |=>
+      state_q == Idle, clk_i, !rst_ni)
   // Check if accumulation trigger correctly captured
-  `ASSERT(CheckAccumTrig0,  accum_trig_i && state_q == alert_pkg::Idle && en_i |=>
-      state_q == alert_pkg::Phase0, clk_i, !rst_ni)
-  `ASSERT(CheckAccumTrig1,  accum_trig_i && state_q == alert_pkg::Timeout && en_i |=>
-      state_q == alert_pkg::Phase0, clk_i, !rst_ni)
+  `ASSERT(CheckAccumTrig0,  accum_trig_i && state_q == Idle && en_i |=>
+      state_q == Phase0, clk_i, !rst_ni)
+  `ASSERT(CheckAccumTrig1,  accum_trig_i && state_q == Timeout && en_i |=>
+      state_q == Phase0, clk_i, !rst_ni)
   // Check if timeout correctly captured
-  `ASSERT(CheckTimeout0, state_q == alert_pkg::Idle && timeout_en_i && en_i && !cnt_ge |=>
-      state_q == alert_pkg::Timeout, clk_i, !rst_ni || accum_trig_i)
-  `ASSERT(CheckTimeout1, state_q == alert_pkg::Timeout && timeout_en_i  |=>
-      state_q == alert_pkg::Timeout, clk_i, !rst_ni || accum_trig_i)
-  `ASSERT(CheckTimeout2, state_q == alert_pkg::Timeout && !timeout_en_i |=>
-      state_q == alert_pkg::Idle, clk_i, !rst_ni || accum_trig_i)
+  `ASSERT(CheckTimeout0, state_q == Idle && timeout_en_i && en_i && !cnt_ge |=>
+      state_q == Timeout, clk_i, !rst_ni || accum_trig_i)
+  `ASSERT(CheckTimeout1, state_q == Timeout && timeout_en_i  |=>
+      state_q == Timeout, clk_i, !rst_ni || accum_trig_i)
+  `ASSERT(CheckTimeout2, state_q == Timeout && !timeout_en_i |=>
+      state_q == Idle, clk_i, !rst_ni || accum_trig_i)
   // Check if timeout correctly triggers escalation
-  `ASSERT(CheckTimeoutTrig, state_q == alert_pkg::Timeout && timeout_en_i &&
-      cnt_q == timeout_cyc_i |=> state_q == alert_pkg::Phase0, clk_i, !rst_ni)
+  `ASSERT(CheckTimeoutTrig, state_q == Timeout && timeout_en_i &&
+      cnt_q == timeout_cyc_i |=> state_q == Phase0, clk_i, !rst_ni)
   // Check whether escalation phases are correctly switched
-  `ASSERT(CheckPhase0, state_q == alert_pkg::Phase0 && !clr_i && cnt_q == phase_cyc_i[0] |=>
-      state_q == alert_pkg::Phase1, clk_i, !rst_ni)
-  `ASSERT(CheckPhase1, state_q == alert_pkg::Phase1 && !clr_i && cnt_q == phase_cyc_i[1] |=>
-      state_q == alert_pkg::Phase2, clk_i, !rst_ni)
-  `ASSERT(CheckPhase2, state_q == alert_pkg::Phase2 && !clr_i && cnt_q == phase_cyc_i[2] |=>
-      state_q == alert_pkg::Phase3, clk_i, !rst_ni)
-  `ASSERT(CheckPhase3, state_q == alert_pkg::Phase3 && !clr_i && cnt_q == phase_cyc_i[3] |=>
-      state_q == alert_pkg::Terminal, clk_i, !rst_ni)
+  `ASSERT(CheckPhase0, state_q == Phase0 && !clr_i && cnt_q == phase_cyc_i[0] |=>
+      state_q == Phase1, clk_i, !rst_ni)
+  `ASSERT(CheckPhase1, state_q == Phase1 && !clr_i && cnt_q == phase_cyc_i[1] |=>
+      state_q == Phase2, clk_i, !rst_ni)
+  `ASSERT(CheckPhase2, state_q == Phase2 && !clr_i && cnt_q == phase_cyc_i[2] |=>
+      state_q == Phase3, clk_i, !rst_ni)
+  `ASSERT(CheckPhase3, state_q == Phase3 && !clr_i && cnt_q == phase_cyc_i[3] |=>
+      state_q == Terminal, clk_i, !rst_ni)
 
 endmodule : alert_handler_esc_timer
diff --git a/hw/ip/alert_handler/rtl/alert_handler_ping_timer.sv b/hw/ip/alert_handler/rtl/alert_handler_ping_timer.sv
index d034358..fda09ff 100644
--- a/hw/ip/alert_handler/rtl/alert_handler_ping_timer.sv
+++ b/hw/ip/alert_handler/rtl/alert_handler_ping_timer.sv
@@ -19,22 +19,22 @@
 // requested), the ping timer will also raise an internal alert.
 //
 
-module alert_handler_ping_timer (
-  input                                     clk_i,
-  input                                     rst_ni,
-  input                                     entropy_i,          // from TRNG
-  input                                     en_i,               // enable ping testing
-  input        [alert_pkg::NAlerts-1:0]     alert_en_i,         // determines which alerts to ping
-  input        [alert_pkg::PING_CNT_DW-1:0] ping_timeout_cyc_i, // timeout in cycles
-  output logic [alert_pkg::NAlerts-1:0]     alert_ping_en_o,    // enable to alert receivers
-  output logic [alert_pkg::N_ESC_SEV-1:0]   esc_ping_en_o,      // enable to esc senders
-  input        [alert_pkg::NAlerts-1:0]     alert_ping_ok_i,    // response from alert receivers
-  input        [alert_pkg::N_ESC_SEV-1:0]   esc_ping_ok_i,      // response from esc senders
-  output logic                              alert_ping_fail_o,  // any of the alert receivers failed
-  output logic                              esc_ping_fail_o     // any of the esc senders failed
+module alert_handler_ping_timer import alert_pkg::*; (
+  input                          clk_i,
+  input                          rst_ni,
+  input                          entropy_i,          // from TRNG
+  input                          en_i,               // enable ping testing
+  input        [NAlerts-1:0]     alert_en_i,         // determines which alerts to ping
+  input        [PING_CNT_DW-1:0] ping_timeout_cyc_i, // timeout in cycles
+  output logic [NAlerts-1:0]     alert_ping_en_o,    // enable to alert receivers
+  output logic [N_ESC_SEV-1:0]   esc_ping_en_o,      // enable to esc senders
+  input        [NAlerts-1:0]     alert_ping_ok_i,    // response from alert receivers
+  input        [N_ESC_SEV-1:0]   esc_ping_ok_i,      // response from esc senders
+  output logic                   alert_ping_fail_o,  // any of the alert receivers failed
+  output logic                   esc_ping_fail_o     // any of the esc senders failed
 );
 
-  localparam int unsigned NModsToPing = alert_pkg::NAlerts + alert_pkg::N_ESC_SEV;
+  localparam int unsigned NModsToPing = NAlerts + N_ESC_SEV;
   localparam int unsigned IdDw        = $clog2(NModsToPing);
 
   // this defines a random permutation
@@ -53,6 +53,7 @@
 
   logic lfsr_en;
   logic [31:0] lfsr_state, perm_state;
+  logic [16-IdDw-1:0] unused_perm_state;
 
   prim_lfsr #(
     .LfsrDw      ( 32                  ),
@@ -74,18 +75,19 @@
   end
 
   logic [IdDw-1:0] id_to_ping;
-  logic [alert_pkg::PING_CNT_DW-1:0] wait_cyc;
+  logic [PING_CNT_DW-1:0] wait_cyc;
   // we only use bits up to 23, as IdDw is 8bit maximum
   assign id_to_ping = perm_state[16 +: IdDw];
+  assign unused_perm_state = perm_state[31:16+IdDw];
   // concatenate with constant offset, introduce some stagger
   // by concatenating the lower bits below
   assign wait_cyc   = {perm_state[15:2], 8'h01, perm_state[1:0]};
 
   logic [2**IdDw-1:0] enable_mask;
   always_comb begin : p_enable_mask
-    enable_mask                                   = '0;         // tie off unused
-    enable_mask[alert_pkg::NAlerts-1:0]           = alert_en_i; // alerts
-    enable_mask[NModsToPing-1:alert_pkg::NAlerts] = '1;         // escalation senders
+    enable_mask                        = '0;         // tie off unused
+    enable_mask[NAlerts-1:0]           = alert_en_i; // alerts
+    enable_mask[NModsToPing-1:NAlerts] = '1;         // escalation senders
   end
 
   logic id_vld;
@@ -96,7 +98,7 @@
   // Counter //
   /////////////
 
-  logic [alert_pkg::PING_CNT_DW-1:0] cnt_d, cnt_q;
+  logic [PING_CNT_DW-1:0] cnt_d, cnt_q;
   logic cnt_en, cnt_clr;
   logic wait_ge, timeout_ge;
 
@@ -116,9 +118,9 @@
   logic spurious_alert_ping, spurious_esc_ping;
 
   // generate ping enable vector
-  assign ping_sel        = (alert_pkg::NAlerts+alert_pkg::N_ESC_SEV)'(ping_en) << id_to_ping;
-  assign alert_ping_en_o = ping_sel[alert_pkg::NAlerts-1:0];
-  assign esc_ping_en_o   = ping_sel[NModsToPing-1:alert_pkg::NAlerts];
+  assign ping_sel        = NModsToPing'(ping_en) << id_to_ping;
+  assign alert_ping_en_o = ping_sel[NAlerts-1:0];
+  assign esc_ping_en_o   = ping_sel[NModsToPing-1:NAlerts];
 
   // mask out response
   assign ping_ok             = |({esc_ping_ok_i, alert_ping_ok_i} & ping_sel);
@@ -126,8 +128,8 @@
   // under normal operation, these signals should never be asserted.
   // double check that these signals are not optimized away during synthesis.
   // this may need "don't touch" or "no boundary optimization" constraints
-  assign spurious_alert_ping = |spurious_ping[alert_pkg::NAlerts-1:0];
-  assign spurious_esc_ping   = |spurious_ping[NModsToPing-1:alert_pkg::NAlerts];
+  assign spurious_alert_ping = |spurious_ping[NAlerts-1:0];
+  assign spurious_esc_ping   = |spurious_ping[NModsToPing-1:NAlerts];
 
   always_comb begin : p_fsm
     // default
@@ -174,7 +176,7 @@
           state_d = RespWait;
           cnt_clr = 1'b1;
           if (timeout_ge) begin
-            if (id_to_ping < alert_pkg::NAlerts) begin
+            if (id_to_ping < NAlerts) begin
               alert_ping_fail_o = 1'b1;
             end else begin
               esc_ping_fail_o   = 1'b1;
diff --git a/hw/ip/alert_handler/rtl/alert_handler_reg_wrap.sv b/hw/ip/alert_handler/rtl/alert_handler_reg_wrap.sv
index 068dc85..1a245c0 100644
--- a/hw/ip/alert_handler/rtl/alert_handler_reg_wrap.sv
+++ b/hw/ip/alert_handler/rtl/alert_handler_reg_wrap.sv
@@ -4,20 +4,20 @@
 //
 // Breakout / remapping wrapper for register file. Generated from template.
 
-module alert_handler_reg_wrap (
+module alert_handler_reg_wrap import alert_pkg::*; (
   input                                   clk_i,
   input                                   rst_ni,
   // Bus Interface (device)
   input  tlul_pkg::tl_h2d_t               tl_i,
   output tlul_pkg::tl_d2h_t               tl_o,
   // interrupt
-  output logic [alert_pkg::N_CLASSES-1:0] irq_o,
+  output logic [N_CLASSES-1:0] irq_o,
   // State information for HW crashdump
-  output alert_pkg::alert_crashdump_t     crashdump_o,
+  output alert_crashdump_t     crashdump_o,
   // hw2reg
-  input  alert_pkg::hw2reg_wrap_t         hw2reg_wrap,
+  input  hw2reg_wrap_t         hw2reg_wrap,
   // reg2hw
-  output alert_pkg::reg2hw_wrap_t         reg2hw_wrap
+  output reg2hw_wrap_t         reg2hw_wrap
 );
 
 
@@ -25,7 +25,7 @@
   // reg instance //
   //////////////////
 
-  logic [alert_pkg::N_CLASSES-1:0] class_autolock_en;
+  logic [N_CLASSES-1:0] class_autolock_en;
   alert_handler_reg_pkg::alert_handler_reg2hw_t reg2hw;
   alert_handler_reg_pkg::alert_handler_hw2reg_t hw2reg;
 
@@ -101,16 +101,18 @@
 
   // if an alert is enabled and it fires,
   // we have to set the corresponding cause bit
-  for (genvar k = 0; k < alert_pkg::NAlerts; k++) begin : gen_alert_cause
+  for (genvar k = 0; k < NAlerts; k++) begin : gen_alert_cause
     assign hw2reg.alert_cause[k].d  = 1'b1;
-    assign hw2reg.alert_cause[k].de = hw2reg_wrap.alert_cause[k];
+    assign hw2reg.alert_cause[k].de = reg2hw.alert_cause[k].q |
+                                      hw2reg_wrap.alert_cause[k];
   end
 
   // if a local alert is enabled and it fires,
   // we have to set the corresponding cause bit
-  for (genvar k = 0; k < alert_pkg::N_LOC_ALERT; k++) begin : gen_loc_alert_cause
+  for (genvar k = 0; k < N_LOC_ALERT; k++) begin : gen_loc_alert_cause
     assign hw2reg.loc_alert_cause[k].d  = 1'b1;
-    assign hw2reg.loc_alert_cause[k].de = hw2reg_wrap.loc_alert_cause[k];
+    assign hw2reg.loc_alert_cause[k].de = reg2hw.loc_alert_cause[k].q |
+                                          hw2reg_wrap.loc_alert_cause[k];
   end
 
   // ping timeout in cycles
@@ -154,13 +156,13 @@
   assign reg2hw_wrap.config_locked = ~reg2hw.regen.q;
 
   // alert enable and class assignments
-  for (genvar k = 0; k < alert_pkg::NAlerts; k++) begin : gen_alert_en_class
+  for (genvar k = 0; k < NAlerts; k++) begin : gen_alert_en_class
     assign reg2hw_wrap.alert_en[k]    = reg2hw.alert_en[k].q;
     assign reg2hw_wrap.alert_class[k] = reg2hw.alert_class[k].q;
   end
 
   // local alert enable and class assignments
-  for (genvar k = 0; k < alert_pkg::N_LOC_ALERT; k++) begin : gen_loc_alert_en_class
+  for (genvar k = 0; k < N_LOC_ALERT; k++) begin : gen_loc_alert_en_class
     assign reg2hw_wrap.loc_alert_en[k]    = reg2hw.loc_alert_en[k].q;
     assign reg2hw_wrap.loc_alert_class[k] = reg2hw.loc_alert_class[k].q;
   end
@@ -267,12 +269,12 @@
   //////////////////////
 
   // alert cause output
-  for (genvar k = 0; k < alert_pkg::NAlerts; k++) begin : gen_alert_cause_dump
+  for (genvar k = 0; k < NAlerts; k++) begin : gen_alert_cause_dump
     assign crashdump_o.alert_cause[k]  = reg2hw.alert_cause[k].q;
   end
 
   // local alert cause register output
-  for (genvar k = 0; k < alert_pkg::NAlerts; k++) begin : gen_loc_alert_cause_dump
+  for (genvar k = 0; k < N_LOC_ALERT; k++) begin : gen_loc_alert_cause_dump
     assign crashdump_o.loc_alert_cause[k]  = reg2hw.loc_alert_cause[k].q;
   end
 
diff --git a/hw/ip/hmac/data/hmac.hjson b/hw/ip/hmac/data/hmac.hjson
index fc2449d..afe5963 100644
--- a/hw/ip/hmac/data/hmac.hjson
+++ b/hw/ip/hmac/data/hmac.hjson
@@ -5,8 +5,6 @@
   clock_primary: "clk_i",
   bus_device: "tlul",
   bus_host: "none",
-  available_input_list: [],
-  available_output_list: [],
   interrupt_list: [
     { name: "hmac_done",
       desc: "HMAC-256 completes a message with key"
@@ -19,6 +17,9 @@
     }
   ],
   alert_list: [
+    { name: "msg_push_sha_disabled",
+      desc: "Dummy alert which is triggered upon writing a message when SHA is disabled",
+    }
   ],
   param_list: [
     { name:    "NumWords",
diff --git a/hw/ip/hmac/data/hmac.prj.hjson b/hw/ip/hmac/data/hmac.prj.hjson
index d7cbaae..2b94858 100644
--- a/hw/ip/hmac/data/hmac.prj.hjson
+++ b/hw/ip/hmac/data/hmac.prj.hjson
@@ -4,10 +4,22 @@
 
 {
     name:               "hmac",
-    version:            "0.5",
-    life_stage:         "L2",
-    design_stage:       "D3",
-    verification_stage: "V3",
-    commit_id:          "635afdb8dedbb50c235bd772b36002925c499884",
-    notes:              ""
+    revisions: [
+      {
+	    version:            "0.5",
+	    life_stage:         "L2",
+	    design_stage:       "D3",
+	    verification_stage: "V3",
+	    commit_id:          "635afdb8dedbb50c235bd772b36002925c499884",
+	    notes:              ""
+      }
+      {
+        version:            "0.6",
+        life_stage:         "L1",
+        design_stage:       "D2",
+        verification_stage: "V1",
+        commit_id:          "",
+        notes:              "Rolled back to D2 in order to add the first alert",
+      }
+    ]
 }
diff --git a/hw/ip/hmac/dv/env/hmac_env.sv b/hw/ip/hmac/dv/env/hmac_env.sv
index 397a625..357389b 100644
--- a/hw/ip/hmac/dv/env/hmac_env.sv
+++ b/hw/ip/hmac/dv/env/hmac_env.sv
@@ -11,6 +11,16 @@
 
   function void build_phase(uvm_phase phase);
     super.build_phase(phase);
+    // get vifs
+    if (!uvm_config_db#(ping_en_vif)::get(this, "", "ping_en_vif", cfg.ping_en_vif)) begin
+      `uvm_fatal(get_full_name(), "failed to get ping_en_vif from uvm_config_db")
+    end
+    if (!uvm_config_db#(ping_ok_vif)::get(this, "", "ping_ok_vif", cfg.ping_ok_vif)) begin
+      `uvm_fatal(get_full_name(), "failed to get ping_ok_vif from uvm_config_db")
+    end
+    if (!uvm_config_db#(integ_fail_vif)::get(this, "", "integ_fail_vif", cfg.integ_fail_vif)) begin
+      `uvm_fatal(get_full_name(), "failed to get integ_fail_vif from uvm_config_db")
+    end
   endfunction
 
 endclass
diff --git a/hw/ip/hmac/dv/env/hmac_env_cfg.sv b/hw/ip/hmac/dv/env/hmac_env_cfg.sv
index 9e4a2e8..a90d99c 100644
--- a/hw/ip/hmac/dv/env/hmac_env_cfg.sv
+++ b/hw/ip/hmac/dv/env/hmac_env_cfg.sv
@@ -3,6 +3,11 @@
 // SPDX-License-Identifier: Apache-2.0
 
 class hmac_env_cfg extends cip_base_env_cfg #(.RAL_T(hmac_reg_block));
+
+  ping_en_vif    ping_en_vif;
+  ping_ok_vif    ping_ok_vif;
+  integ_fail_vif integ_fail_vif;
+
   `uvm_object_utils(hmac_env_cfg)
   `uvm_object_new
 
diff --git a/hw/ip/hmac/dv/env/hmac_env_pkg.sv b/hw/ip/hmac/dv/env/hmac_env_pkg.sv
index f1dbef4..53a6e15 100644
--- a/hw/ip/hmac/dv/env/hmac_env_pkg.sv
+++ b/hw/ip/hmac/dv/env/hmac_env_pkg.sv
@@ -71,6 +71,11 @@
   typedef cip_base_virtual_sequencer #(hmac_env_cfg, hmac_env_cov) hmac_virtual_sequencer;
   typedef virtual pins_if #(1) d2h_a_ready_vif;
 
+  // TODO: need to standardize this and move into uvm generator
+  typedef virtual pins_if #(NUM_MAX_ALERTS) ping_en_vif;
+  typedef virtual pins_if #(NUM_MAX_ALERTS) ping_ok_vif;
+  typedef virtual pins_if #(NUM_MAX_ALERTS) integ_fail_vif;
+
   // functions
 
   // package sources
diff --git a/hw/ip/hmac/dv/env/seq_lib/hmac_base_vseq.sv b/hw/ip/hmac/dv/env/seq_lib/hmac_base_vseq.sv
index eb225c0..06c516f 100644
--- a/hw/ip/hmac/dv/env/seq_lib/hmac_base_vseq.sv
+++ b/hw/ip/hmac/dv/env/seq_lib/hmac_base_vseq.sv
@@ -59,6 +59,8 @@
 
   virtual task dut_init(string reset_kind = "HARD");
     super.dut_init(reset_kind);
+    // TODO: need agent for full alert protocol
+    cfg.ping_en_vif.drive('0);
     if (do_hmac_init) hmac_init();
   endtask
 
diff --git a/hw/ip/hmac/dv/tb/tb.sv b/hw/ip/hmac/dv/tb/tb.sv
index da9596a..6e2f4a0 100644
--- a/hw/ip/hmac/dv/tb/tb.sv
+++ b/hw/ip/hmac/dv/tb/tb.sv
@@ -17,7 +17,12 @@
   wire clk, rst_n;
   wire devmode;
   wire [NUM_MAX_INTERRUPTS-1:0] interrupts;
-  wire [NUM_MAX_ALERTS-1:0] alerts;
+  wire [NUM_MAX_ALERTS-1:0]     alerts;
+  wire [NUM_MAX_ALERTS-1:0]     ping_ok;
+  wire [NUM_MAX_ALERTS-1:0]     ping_en;
+  wire [NUM_MAX_ALERTS-1:0]     integ_fail;
+  prim_pkg::alert_rx_t [hmac_pkg::NumAlerts-1:0] alert_rx;
+  prim_pkg::alert_tx_t [hmac_pkg::NumAlerts-1:0] alert_tx;
 
   wire intr_hmac_done;
   wire intr_fifo_full;
@@ -27,20 +32,45 @@
   clk_rst_if clk_rst_if(.clk(clk), .rst_n(rst_n));
   pins_if #(NUM_MAX_INTERRUPTS) intr_if(.pins(interrupts));
   pins_if #(NUM_MAX_ALERTS) alerts_if(.pins(alerts));
+  pins_if #(NUM_MAX_ALERTS) ping_ok_if(.pins(ping_ok));
+  pins_if #(NUM_MAX_ALERTS) ping_en_if(.pins(ping_en));
+  pins_if #(NUM_MAX_ALERTS) integ_fail_if(.pins(integ_fail));
   pins_if #(1) devmode_if(devmode);
   tl_if tl_if(.clk(clk), .rst_n(rst_n));
 
+
+  // alert receivers
+  logic [hmac_pkg::NumAlerts-1:0] ping_p, ping_n, ack_p, ack_n, alert_p, alert_n;
+  for (genvar j = 0; j < hmac_pkg::NumAlerts; j++) begin : gen_alert_rx
+    prim_alert_receiver #(
+      .AsyncOn(hmac_pkg::AlertAsyncOn[j])
+    ) i_prim_alert_receiver (
+      .clk_i        ( clk           ),
+      .rst_ni       ( rst_n         ),
+      .ping_en_i    ( ping_en[j]    ),
+      .ping_ok_o    ( ping_ok[j]    ),
+      .integ_fail_o ( integ_fail[j] ),
+      .alert_o      ( alert[j]      ),
+      .alert_rx_o   ( alert_rx[j]   ),
+      .alert_tx_i   ( alert_tx[j]   )
+    );
+  end : gen_alert_rx
+
+
   // dut
   hmac dut (
-    .clk_i          (clk       ),
-    .rst_ni         (rst_n     ),
+    .clk_i              ( clk            ),
+    .rst_ni             ( rst_n          ),
 
-    .tl_i           (tl_if.h2d ),
-    .tl_o           (tl_if.d2h ),
+    .tl_i               ( tl_if.h2d      ),
+    .tl_o               ( tl_if.d2h      ),
 
-    .intr_hmac_done_o   (intr_hmac_done),
-    .intr_fifo_full_o   (intr_fifo_full),
-    .intr_hmac_err_o    (intr_hmac_err)
+    .intr_hmac_done_o   ( intr_hmac_done ),
+    .intr_fifo_full_o   ( intr_fifo_full ),
+    .intr_hmac_err_o    ( intr_hmac_err  ),
+
+    .alert_rx_i         ( alert_rx       ),
+    .alert_tx_o         ( alert_tx       )
   );
 
   assign interrupts[HmacDone]        = intr_hmac_done;
@@ -53,6 +83,9 @@
     uvm_config_db#(virtual clk_rst_if)::set(null, "*.env", "clk_rst_vif", clk_rst_if);
     uvm_config_db#(intr_vif)::set(null, "*.env", "intr_vif", intr_if);
     uvm_config_db#(alerts_vif)::set(null, "*.env", "alerts_vif", alerts_if);
+    uvm_config_db#(ping_ok_vif)::set(null, "*.env", "ping_ok_vif", ping_ok_if);
+    uvm_config_db#(ping_en_vif)::set(null, "*.env", "ping_en_vif", ping_en_if);
+    uvm_config_db#(integ_fail_vif)::set(null, "*.env", "integ_fail_vif", integ_fail_if);
     uvm_config_db#(devmode_vif)::set(null, "*.env", "devmode_vif", devmode_if);
     uvm_config_db#(tlul_assert_ctrl_vif)::set(null, "*.env", "tlul_assert_ctrl_vif",
         dut.tlul_assert_device.tlul_assert_ctrl_if);
diff --git a/hw/ip/hmac/rtl/hmac.sv b/hw/ip/hmac/rtl/hmac.sv
index da306f6..98dcf44 100644
--- a/hw/ip/hmac/rtl/hmac.sv
+++ b/hw/ip/hmac/rtl/hmac.sv
@@ -4,7 +4,11 @@
 //
 // HMAC-SHA256
 
-module hmac (
+module hmac
+  import prim_pkg::*;
+  import hmac_pkg::*;
+  import hmac_reg_pkg::*;
+(
   input clk_i,
   input rst_ni,
 
@@ -13,11 +17,13 @@
 
   output logic intr_hmac_done_o,
   output logic intr_fifo_full_o,
-  output logic intr_hmac_err_o
+  output logic intr_hmac_err_o,
+
+  // alerts
+  input  alert_rx_t [NumAlerts-1:0] alert_rx_i,
+  output alert_tx_t [NumAlerts-1:0] alert_tx_o
 );
 
-  import hmac_pkg::*;
-  import hmac_reg_pkg::*;
 
   /////////////////////////
   // Signal declarations //
@@ -461,6 +467,26 @@
     endcase
   end
 
+  /////////////////////
+  // Hardware Alerts //
+  /////////////////////
+
+  // TODO: add CSR with REGWEN to test alert via SW
+  logic [NumAlerts-1:0] alerts;
+  assign alerts = {msg_push_sha_disabled};
+
+  for (genvar j = 0; j < hmac_pkg::NumAlerts; j++) begin : gen_alert_tx
+    prim_alert_sender #(
+      .AsyncOn(hmac_pkg::AlertAsyncOn[j])
+    ) i_prim_alert_sender (
+      .clk_i      ( clk_i         ),
+      .rst_ni     ( rst_ni        ),
+      .alert_i    ( alerts[j]     ),
+      .alert_rx_i ( alert_rx_i[j] ),
+      .alert_tx_o ( alert_tx_o[j] )
+    );
+  end : gen_alert_tx
+
   //////////////////////////////////////////////
   // Assertions, Assumptions, and Coverpoints //
   //////////////////////////////////////////////
@@ -519,4 +545,7 @@
   `ASSERT_KNOWN(TlODValidKnown, tl_o.d_valid, clk_i, !rst_ni)
   `ASSERT_KNOWN(TlOAReadyKnown, tl_o.a_ready, clk_i, !rst_ni)
 
+  // Alert outputs
+  `ASSERT_KNOWN(AlertTxOKnown, alert_tx_o, clk_i, !rst_ni)
+
 endmodule
diff --git a/hw/ip/hmac/rtl/hmac_pkg.sv b/hw/ip/hmac/rtl/hmac_pkg.sv
index ebf7322..4880447 100644
--- a/hw/ip/hmac/rtl/hmac_pkg.sv
+++ b/hw/ip/hmac/rtl/hmac_pkg.sv
@@ -5,6 +5,11 @@
 
 package hmac_pkg;
 
+  // this currently uses the
+  // fully asynchronous implemenation
+  localparam int NumAlerts = 1;
+  localparam logic [NumAlerts-1:0] AlertAsyncOn = NumAlerts'(1'b1);
+
   localparam int MsgFifoDepth = 16;
 
   localparam NumRound = 64;   // SHA-224, SHA-256
diff --git a/hw/ip/prim/rtl/prim_alert_receiver.sv b/hw/ip/prim/rtl/prim_alert_receiver.sv
index 867a94d..2b3e440 100644
--- a/hw/ip/prim/rtl/prim_alert_receiver.sv
+++ b/hw/ip/prim/rtl/prim_alert_receiver.sv
@@ -186,11 +186,13 @@
 
   if (AsyncOn) begin : gen_async_assert
     // signal integrity check propagation
-    `ASSERT(SigInt_A, alert_tx_i.alert_p == alert_tx_i.alert_n [*2] |-> ##2 integ_fail_o, clk_i, !rst_ni)
+    `ASSERT(SigInt_A, alert_tx_i.alert_p == alert_tx_i.alert_n [*2] |->
+        ##2 integ_fail_o, clk_i, !rst_ni)
     // TODO: need to add skewed cases as well, the assertions below assume no skew at the moment
     // ping response
-    `ASSERT(PingResponse1_A, ##1 $rose(alert_tx_i.alert_p) && (alert_tx_i.alert_p ^ alert_tx_i.alert_n) ##2
-        state_q == Idle && ping_pending_q |-> ping_ok_o, clk_i, !rst_ni || integ_fail_o)
+    `ASSERT(PingResponse1_A, ##1 $rose(alert_tx_i.alert_p) &&
+        (alert_tx_i.alert_p ^ alert_tx_i.alert_n) ##2 state_q == Idle && ping_pending_q |->
+        ping_ok_o, clk_i, !rst_ni || integ_fail_o)
     // alert
     `ASSERT(Alert_A, ##1 $rose(alert_tx_i.alert_p) && (alert_tx_i.alert_p ^ alert_tx_i.alert_n) ##2
         state_q == Idle && !ping_pending_q |-> alert_o, clk_i, !rst_ni || integ_fail_o)
diff --git a/hw/ip/rv_plic/data/rv_plic.hjson b/hw/ip/rv_plic/data/rv_plic.hjson
index c61da3b..314fed0 100644
--- a/hw/ip/rv_plic/data/rv_plic.hjson
+++ b/hw/ip/rv_plic/data/rv_plic.hjson
@@ -331,7 +331,8 @@
       ],
     }
     { name: "CC0",
-      desc: "Claim interrupt by read, complete interrupt by write for Target 0. Value read/written is interrupt ID. Reading a value of 0 means no pending interrupts.",
+      desc: '''Claim interrupt by read, complete interrupt by write for Target 0.
+      Value read/written is interrupt ID. Reading a value of 0 means no pending interrupts.''',
       swaccess: "rw",
       hwaccess: "hrw",
       hwext: "true",
@@ -342,7 +343,8 @@
       ],
     }
     { name: "MSIP0",
-      desc: "msip for Hart 0. Write 1 to here asserts software interrupt for Hart msip_o[0], write 0 to clear",
+      desc: '''msip for Hart 0.
+      Write 1 to here asserts software interrupt for Hart msip_o[0], write 0 to clear.''',
       swaccess: "rw",
       hwaccess: "hro",
       fields: [
diff --git a/hw/ip/rv_plic/data/rv_plic.hjson.tpl b/hw/ip/rv_plic/data/rv_plic.hjson.tpl
index 672b2ed..fd3404f 100644
--- a/hw/ip/rv_plic/data/rv_plic.hjson.tpl
+++ b/hw/ip/rv_plic/data/rv_plic.hjson.tpl
@@ -87,7 +87,8 @@
       ],
     }
     { name: "CC${i}",
-      desc: "Claim interrupt by read, complete interrupt by write for Target ${i}. Value read/written is interrupt ID. Reading a value of 0 means no pending interrupts.",
+      desc: '''Claim interrupt by read, complete interrupt by write for Target ${i}.
+      Value read/written is interrupt ID. Reading a value of 0 means no pending interrupts.''',
       swaccess: "rw",
       hwaccess: "hrw",
       hwext: "true",
@@ -98,7 +99,8 @@
       ],
     }
     { name: "MSIP${i}",
-      desc: "msip for Hart ${i}. Write 1 to here asserts software interrupt for Hart msip_o[${i}], write 0 to clear",
+      desc: '''msip for Hart ${i}.
+      Write 1 to here asserts software interrupt for Hart msip_o[${i}], write 0 to clear.''',
       swaccess: "rw",
       hwaccess: "hro",
       fields: [
diff --git a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
index 69ffef5..2eb89e0 100644
--- a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
+++ b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
@@ -113,6 +113,7 @@
           type: interrupt
         }
       ]
+      alert_list: []
       scan: "false"
     }
     {
@@ -148,6 +149,7 @@
           type: interrupt
         }
       ]
+      alert_list: []
       scan: "false"
     }
     {
@@ -225,6 +227,7 @@
           type: interrupt
         }
       ]
+      alert_list: []
       scan: "true"
     }
     {
@@ -278,6 +281,7 @@
           type: interrupt
         }
       ]
+      alert_list: []
       scan: "false"
     }
     {
@@ -306,6 +310,7 @@
           type: interrupt
         }
       ]
+      alert_list: []
       scan: "false"
     }
     {
@@ -327,6 +332,7 @@
       available_output_list: []
       available_inout_list: []
       interrupt_list: []
+      alert_list: []
       scan: "false"
     }
     {
@@ -365,6 +371,15 @@
           type: interrupt
         }
       ]
+      alert_list:
+      [
+        {
+          name: msg_push_sha_disabled
+          width: 1
+          type: alert
+          async: 0
+        }
+      ]
       scan: "false"
     }
     {
@@ -387,6 +402,7 @@
       available_output_list: []
       available_inout_list: []
       interrupt_list: []
+      alert_list: []
       scan: "false"
     }
     {
@@ -410,6 +426,102 @@
       available_output_list: []
       available_inout_list: []
       interrupt_list: []
+      alert_list: []
+      scan: "false"
+    }
+    {
+      name: alert_handler
+      type: alert_handler
+      clock_connections:
+      {
+        clk_i: main
+      }
+      reset_connections:
+      {
+        rst_ni: sys
+      }
+      base_addr: 0x40130000
+      generated: "true"
+      localparam:
+      {
+        EscCntDw: 32
+        AccuCntDw: 16
+        LfsrSeed: 0x7FFFFFFF
+      }
+      size: 0x1000
+      bus_device: tlul
+      bus_host: none
+      available_input_list: []
+      available_output_list: []
+      available_inout_list: []
+      interrupt_list:
+      [
+        {
+          name: classa
+          width: 1
+          type: interrupt
+        }
+        {
+          name: classb
+          width: 1
+          type: interrupt
+        }
+        {
+          name: classc
+          width: 1
+          type: interrupt
+        }
+        {
+          name: classd
+          width: 1
+          type: interrupt
+        }
+      ]
+      alert_list: []
+      scan: "false"
+    }
+    {
+      name: nmi_gen
+      type: nmi_gen
+      clock_connections:
+      {
+        clk_i: main
+      }
+      reset_connections:
+      {
+        rst_ni: sys
+      }
+      base_addr: 0x40140000
+      size: 0x1000
+      bus_device: tlul
+      bus_host: none
+      available_input_list: []
+      available_output_list: []
+      available_inout_list: []
+      interrupt_list:
+      [
+        {
+          name: esc0
+          width: 1
+          type: interrupt
+        }
+        {
+          name: esc1
+          width: 1
+          type: interrupt
+        }
+        {
+          name: esc2
+          width: 1
+          type: interrupt
+        }
+        {
+          name: esc3
+          width: 1
+          type: interrupt
+        }
+      ]
+      alert_list: []
       scan: "false"
     }
   ]
@@ -495,6 +607,8 @@
           hmac
           rv_plic
           pinmux
+          alert_handler
+          nmi_gen
         ]
         dm_sba:
         [
@@ -510,6 +624,8 @@
           hmac
           rv_plic
           pinmux
+          alert_handler
+          nmi_gen
         ]
       }
       nodes:
@@ -668,6 +784,26 @@
           pipeline_byp: "false"
           pipeline: "true"
         }
+        {
+          name: alert_handler
+          type: device
+          clock: main
+          inst_type: alert_handler
+          pipeline_byp: "false"
+          base_addr: 0x40130000
+          size_byte: 0x1000
+          pipeline: "true"
+        }
+        {
+          name: nmi_gen
+          type: device
+          clock: main
+          inst_type: nmi_gen
+          pipeline_byp: "false"
+          base_addr: 0x40140000
+          size_byte: 0x1000
+          pipeline: "true"
+        }
       ]
       clock: main
     }
@@ -679,6 +815,8 @@
     spi_device
     flash_ctrl
     hmac
+    alert_handler
+    nmi_gen
   ]
   interrupt:
   [
@@ -802,6 +940,59 @@
       width: 1
       type: interrupt
     }
+    {
+      name: alert_handler_classa
+      width: 1
+      type: interrupt
+    }
+    {
+      name: alert_handler_classb
+      width: 1
+      type: interrupt
+    }
+    {
+      name: alert_handler_classc
+      width: 1
+      type: interrupt
+    }
+    {
+      name: alert_handler_classd
+      width: 1
+      type: interrupt
+    }
+    {
+      name: nmi_gen_esc0
+      width: 1
+      type: interrupt
+    }
+    {
+      name: nmi_gen_esc1
+      width: 1
+      type: interrupt
+    }
+    {
+      name: nmi_gen_esc2
+      width: 1
+      type: interrupt
+    }
+    {
+      name: nmi_gen_esc3
+      width: 1
+      type: interrupt
+    }
+  ]
+  alert_module:
+  [
+    hmac
+  ]
+  alert:
+  [
+    {
+      name: hmac_msg_push_sha_disabled
+      width: 1
+      type: alert
+      async: 0
+    }
   ]
   pinmux:
   {
diff --git a/hw/top_earlgrey/data/top_earlgrey.hjson b/hw/top_earlgrey/data/top_earlgrey.hjson
index f593627..326236b 100644
--- a/hw/top_earlgrey/data/top_earlgrey.hjson
+++ b/hw/top_earlgrey/data/top_earlgrey.hjson
@@ -97,6 +97,26 @@
       reset_connections: {rst_ni: "sys"},
       base_addr: "0x40070000",
       generated: "true"
+    },
+    { name: "alert_handler",
+      type: "alert_handler",
+      clock_connections: {clk_i: "main"},
+      reset_connections: {rst_ni: "sys"},
+      base_addr: "0x40130000",
+      generated: "true"         // Indicate this module is generated in the topgen
+      localparam: {
+        EscCntDw:  32,
+        AccuCntDw: 16,
+        LfsrSeed:  "0x7FFFFFFF"
+      }
+    }
+    // dummy module to capture the alert handler escalation signals
+    // and test them by converting them into IRQs
+    { name: "nmi_gen",
+      type: "nmi_gen",
+      clock_connections: {clk_i: "main"},
+      reset_connections: {rst_ni: "sys"},
+      base_addr: "0x40140000",
     }
   ]
 
@@ -142,7 +162,8 @@
   // If interrupt is not defined, it uses the order from the module list
   // and include every modules.
   // first item goes to LSB of the interrupt source
-  interrupt_module: ["gpio", "uart", "spi_device", "flash_ctrl", "hmac" ]
+  interrupt_module: ["gpio", "uart", "spi_device", "flash_ctrl",
+                     "hmac", "alert_handler", "nmi_gen" ]
 
   // RV_PLIC has two searching algorithm internally to pick the most highest priority interrupt
   // source. "sequential" is smaller but slower, "matrix" is larger but faster.
@@ -152,7 +173,14 @@
   interrupt: [
   ]
 
-  // TODO: ALERT HANDLER
+  // ===== ALERT HANDLER ======================================================
+  // list all modules that expose alerts
+  // first item goes to LSB of the interrupt source
+  alert_module: [ "hmac" ]
+
+  // generated list of alerts:
+  alert: [
+  ]
 
   // TODO: PINMUX
   pinmux: {
diff --git a/hw/top_earlgrey/data/top_earlgrey.sv.tpl b/hw/top_earlgrey/data/top_earlgrey.sv.tpl
index bc19c90..c0f3207 100644
--- a/hw/top_earlgrey/data/top_earlgrey.sv.tpl
+++ b/hw/top_earlgrey/data/top_earlgrey.sv.tpl
@@ -154,6 +154,7 @@
     % endfor
 % endfor
 
+
   <% add_spaces = " " * len(str((interrupt_num).bit_length()-1)) %>
   logic [0:0]${add_spaces}irq_plic;
   logic [0:0]${add_spaces}msip;
@@ -163,6 +164,21 @@
   // this avoids lint errors
   assign unused_irq_id = irq_id;
 
+  // Alert list
+  prim_pkg::alert_tx_t [alert_pkg::NAlerts-1:0]  alert_tx;
+  prim_pkg::alert_rx_t [alert_pkg::NAlerts-1:0]  alert_rx;
+  // Escalation outputs
+  prim_pkg::esc_tx_t [alert_pkg::N_ESC_SEV-1:0]  esc_tx;
+  prim_pkg::esc_rx_t [alert_pkg::N_ESC_SEV-1:0]  esc_rx;
+
+% if not top["alert"]:
+  for (genvar k = 0; k < alert_pkg::NAlerts; k++) begin : gen_alert_tie_off
+    // tie off if no alerts present in the system
+    assign alert_tx[k].alert_p = 1'b0;
+    assign alert_tx[k].alert_n = 1'b1;
+  end
+% endif
+
   // clock assignments
 % for clock in top['clocks']:
   assign ${clock['name']}_clk = clk_i;
@@ -452,6 +468,7 @@
 % endfor
 ## Peripheral Instantiation
 
+<% alert_idx = 0 %>
 % for m in top["module"]:
 <%
 port_list = m["available_input_list"] + m["available_output_list"] + m["available_inout_list"]
@@ -511,6 +528,17 @@
       % endif
       .${lib.ljust("intr_"+intr["name"]+"_o",max_intrwidth+7)} (intr_${m["name"]}_${intr["name"]}),
     % endfor
+    % if m["alert_list"]:
+      <%
+      w = sum([x["width"] if "width" in x else 1 for x in m["alert_list"]])
+      slice = str(alert_idx+w-1) + ":" + str(alert_idx)
+      %>
+      % for alert in m["alert_list"] if "alert_list" in m else []:
+      // [${alert_idx}]: ${alert["name"]} <% alert_idx += 1 %>
+      % endfor
+      .alert_tx_o  ( alert_tx[${slice}] ),
+      .alert_rx_i  ( alert_rx[${slice}] ),
+    % endif
     ## TODO: Inter-module Connection
     % if m["type"] == "flash_ctrl":
 
@@ -534,11 +562,27 @@
       .mio_oe_o             (mio_oe_o ),
       .mio_in_i             (mio_in_i ),
     % endif
-
+    % if m["type"] == "alert_handler":
+      // TODO: wire this to hardware debug circuit
+      .crashdump_o (          ),
+      // TODO: wire this to TRNG
+      .entropy_i   ( 1'b0     ),
+      // alert signals
+      .alert_rx_o  ( alert_rx ),
+      .alert_tx_i  ( alert_tx ),
+      // escalation outputs
+      .esc_rx_i    ( esc_rx   ),
+      .esc_tx_o    ( esc_tx   ),
+    % endif
+    % if m["type"] == "nmi_gen":
+      // escalation signal inputs
+      .esc_rx_o    ( esc_rx   ),
+      .esc_tx_i    ( esc_tx   ),
+    % endif
     % if m["scan"] == "true":
       .scanmode_i   (scanmode_i),
-
     % endif
+
     % for k, v in m["clock_connections"].items():
       .${k} (${v}_clk),
     % endfor
diff --git a/hw/top_earlgrey/data/xbar_main.hjson b/hw/top_earlgrey/data/xbar_main.hjson
index ba15f45..1eff346 100644
--- a/hw/top_earlgrey/data/xbar_main.hjson
+++ b/hw/top_earlgrey/data/xbar_main.hjson
@@ -96,13 +96,27 @@
       base_addr: "0x40070000",
       size_byte: "0x1000",
       pipeline_byp: "false"
+    },
+    { name:      "alert_handler",
+      type:      "device",
+      clock:     "main",
+      inst_type: "alert_handler",
+      pipeline_byp: "false"
+    },
+    // dummy module to capture the alert handler escalation signals
+    // and test them by converting them into IRQs
+    { name:      "nmi_gen",
+      type:      "device",
+      clock:     "main",
+      inst_type: "nmi_gen",
+      pipeline_byp: "false"
     }
   ],
   connections: {
     corei:  ["rom", "debug_mem", "ram_main", "eflash"],
     cored:  ["rom", "debug_mem", "ram_main", "eflash", "uart", "gpio", "spi_device", "flash_ctrl",
-    "rv_timer", "aes", "hmac", "rv_plic", "pinmux"],
+    "rv_timer", "aes", "hmac", "rv_plic", "pinmux", "alert_handler", "nmi_gen"],
     dm_sba: ["rom",              "ram_main", "eflash", "uart", "gpio", "spi_device", "flash_ctrl",
-    "rv_timer", "aes", "hmac", "rv_plic", "pinmux"],
+    "rv_timer", "aes", "hmac", "rv_plic", "pinmux", "alert_handler", "nmi_gen"],
   },
 }
diff --git a/hw/top_earlgrey/ip/alert_handler/data/autogen/alert_handler.hjson b/hw/top_earlgrey/ip/alert_handler/data/autogen/alert_handler.hjson
new file mode 100644
index 0000000..c9390e9
--- /dev/null
+++ b/hw/top_earlgrey/ip/alert_handler/data/autogen/alert_handler.hjson
@@ -0,0 +1,1252 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+//
+// ------------------- W A R N I N G: A U T O - G E N E R A T E D   C O D E !! -------------------//
+// PLEASE DO NOT HAND-EDIT THIS FILE. IT HAS BEEN AUTO-GENERATED WITH THE FOLLOWING COMMAND:
+// util/topgen.py -t hw/top_earlgrey/doc/top_earlgrey.hjson --alert-handler-only -o hw/top_earlgrey/
+
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+//
+# ALERT_HANDLER register template
+#
+# Parameter (given by python tool)
+#  - n_alerts:    Number of alert sources
+#  - esc_cnt_dw:  Width of escalation counter
+#  - accu_cnt_dw: Width of accumulator
+#  - lfsr_seed:   Seed for LFSR timer
+#  - async_on:    Enables asynchronous sygnalling between specific alert RX/TX pairs
+#  - n_classes:   Number of supported classes (leave this at 4 at the moment)
+
+{
+  name: "ALERT_HANDLER",
+  clock_primary: "clk_i",
+  bus_device: "tlul",
+  regwidth: "32",
+  param_list: [
+    { name: "NAlerts",
+      desc: "Number of peripheral inputs",
+      type: "int",
+      default: "1",
+      local: "true"
+    },
+    { name: "EscCntDw",
+      desc: "Number of peripheral outputs",
+      type: "int",
+      default: "32",
+      local: "true"
+    },
+    { name: "AccuCntDw",
+      desc: "Number of peripheral outputs",
+      type: "int",
+      default: "16",
+      local: "true"
+    },
+    { name: "LfsrSeed",
+      desc: "Number of peripheral outputs",
+      type: "int",
+      default: "2147483647",
+      local: "true"
+    },
+    { name: "AsyncOn",
+      desc: "Number of peripheral outputs",
+      type: "logic [NAlerts-1:0]",
+      default: "1'b0",
+      local: "true"
+    },
+    { name: "N_CLASSES",
+      desc: "Number of classes",
+      type: "int",
+      default: "4",
+      local: "true"
+    },
+    { name: "N_ESC_SEV",
+      desc: "Number of escalation severities",
+      type: "int",
+      default: "4",
+      local: "true"
+    },
+    { name: "N_PHASES",
+      desc: "Number of escalation phases",
+      type: "int",
+      default: "4",
+      local: "true"
+    },
+    { name: "N_LOC_ALERT",
+      desc: "Number of local alerts phases",
+      type: "int",
+      default: "4",
+      local: "true"
+    },
+    { name: "PING_CNT_DW",
+      desc: "Width of ping counter",
+      type: "int",
+      default: "24",
+      local: "true"
+    },
+    { name: "PHASE_DW",
+      desc: "Width of phase ID",
+      type: "int",
+      default: "2",
+      local: "true"
+    },
+    { name: "CLASS_DW",
+      desc: "Width of class ID",
+      type: "int",
+      default: "2",
+      local: "true"
+    },
+  ],
+# interrupt registers for the classes
+  interrupt_list: [
+    { name: "classa",
+      desc: '''
+            Interrupt state bit of Class A. Set by HW in case an alert within this class triggered. Defaults true, write one to clear.
+            ''',
+    },
+    { name: "classb",
+      desc: '''
+            Interrupt state bit of Class B. Set by HW in case an alert within this class triggered. Defaults true, write one to clear.
+            ''',
+    },
+    { name: "classc",
+      desc: '''
+            Interrupt state bit of Class C. Set by HW in case an alert within this class triggered. Defaults true, write one to clear.
+            ''',
+    },
+    { name: "classd",
+      desc: '''
+            Interrupt state bit of Class D. Set by HW in case an alert within this class triggered. Defaults true, write one to clear.
+            ''',
+    },
+  ],
+
+  registers: [
+# register locks for alerts and class configs
+    { name: "REGEN",
+      desc: '''
+            Register write enable for all control registers.
+            ''',
+      swaccess: "rw1c",
+      hwaccess: "hro",
+      fields: [
+        {
+            bits:   "0",
+            desc: ''' When true, the alert enable and escalation configuration registers can be modified.
+            When false, they become read-only. Defaults true, write one to clear. Note that this needs to be
+            cleared after initial configuration at boot in order to lock in the configuration and activate
+            the ping testing.
+            '''
+            resval: 1,
+        },
+      ]
+    },
+    { name:     "PING_TIMEOUT_CYC",
+      desc:     '''
+                Ping timeout cycle count.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        {
+          # TODO: add PING_CNT_DW parameter here
+          bits: "23:0",
+          resval:   32,
+          desc: '''Timeout value in cycles. If an alert receiver or an escalation sender does not
+          respond to a ping within this timeout window, a pingfail alert will be raised.
+          '''
+        }
+      ]
+    }
+# all alerts
+    { multireg: { name:     "ALERT_EN",
+                  desc:     '''Enable register for alerts.
+                  ''',
+                  count:    "NAlerts",
+                  swaccess: "rw",
+                  hwaccess: "hro",
+                  regwen:   "REGEN",
+                  cname:    "alert",
+                  fields: [
+                    { bits: "0",
+                      name: "EN_A",
+                      desc: "Alert enable "
+                    }
+                  ]
+                }
+    },
+    { multireg: { name:     "ALERT_CLASS",
+                  desc:     '''Class assignment of alerts.
+                  ''',
+                  count:    "NAlerts",
+                  swaccess: "rw",
+                  hwaccess: "hro",
+                  regwen:   "REGEN",
+                  cname:    "alert",
+                  fields: [
+                    {
+                      # TODO: bitwidth should be parameterized with CLASS_DW
+                      bits: "1:0",
+                      name: "CLASS_A",
+                      desc: "Classification ",
+                      enum: [
+                              { value: "0", name: "ClassA", desc: "" },
+                              { value: "1", name: "ClassB", desc: "" },
+                              { value: "2", name: "ClassC", desc: "" },
+                              { value: "3", name: "ClassD", desc: "" },
+                            ]
+                    }
+                  ]
+                }
+    },
+    { multireg: {
+      name: "ALERT_CAUSE",
+      desc: "Alert Cause Register",
+      count: "NAlerts",
+      cname: "ALERT",
+      swaccess: "rw1c",
+      hwaccess: "hrw",
+      fields: [
+        { bits: "0", name: "A", desc: "Cause bit " }
+      ]
+      }
+    },
+# local alerts
+    { multireg: { name:     "LOC_ALERT_EN",
+                  desc:     '''Enable register for the aggregated local alerts "alert
+                  pingfail" (0), "escalation pingfail" (1), "alert integfail" (2) and "escalation integfail" (3).
+                  ''',
+                  count:    "N_LOC_ALERT",
+                  swaccess: "rw",
+                  hwaccess: "hro",
+                  regwen:   "REGEN",
+                  cname:    "local alert",
+                  fields: [
+                    { bits: "0",
+                      name: "EN_LA",
+                      desc: "Alert enable "
+                    }
+                  ]
+                }
+    },
+    { multireg: { name:     "LOC_ALERT_CLASS",
+                  desc:     '''Class assignment of local alerts. "alert
+                  pingfail" (0), "escalation pingfail" (1), "alert integfail" (2) and "escalation integfail" (3).
+                  ''',
+                  count:    "N_LOC_ALERT",
+                  swaccess: "rw",
+                  hwaccess: "hro",
+                  regwen:   "REGEN",
+                  cname:    "local alert",
+                  fields: [
+                    {
+                      # TODO: bitwidth should be parameterized with CLASS_DW
+                      bits: "1:0",
+                      name: "CLASS_LA",
+                      desc: "Classification ",
+                      enum: [
+                              { value: "0", name: "ClassA", desc: "" },
+                              { value: "1", name: "ClassB", desc: "" },
+                              { value: "2", name: "ClassC", desc: "" },
+                              { value: "3", name: "ClassD", desc: "" },
+                            ]
+                    }
+                  ]
+                }
+    },
+    { multireg: {
+      name: "LOC_ALERT_CAUSE",
+      desc: '''Alert Cause Register for Local Alerts. "alert
+      pingfail" (0), "escalation pingfail" (1), "alert integfail" (2) and "escalation integfail" (3).
+      ''',
+      count: "N_LOC_ALERT",
+      cname: "LOC_ALERT",
+      swaccess: "rw1c",
+      hwaccess: "hrw",
+      fields: [
+        { bits: "0", name: "LA", desc: "Cause bit " }
+      ]
+      }
+    },
+# classes
+
+    { name:     "CLASSA_CTRL",
+      desc:     "Escalation control register for alert Class A. Can not be modified if !!REGEN is false."
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "0",
+          name: "EN",
+          desc: '''
+                Enable escalation mechanisms (accumulation and
+                interrupt timeout) for Class A. Note that interrupts can fire
+                regardless of whether the escalation mechanisms are enabled for
+                this class or not.
+                ''',
+        }
+        { bits: "1",
+          name: "LOCK",
+          desc: '''
+                Enable automatic locking of escalation counter for class A.
+                If true, there is no way to stop the escalation protocol for class A
+                once it has been triggered.
+                '''
+        }
+        { bits: "2",
+          name: "EN_E0",
+          resval: 1,
+          desc: "Enable escalation signal 0 for Class A",
+        }
+        { bits: "3",
+          name: "EN_E1",
+          resval: 1,
+          desc: "Enable escalation signal 1 for Class A",
+        }
+        { bits: "4",
+          name: "EN_E2",
+          resval: 1,
+          desc: "Enable escalation signal 2 for Class A",
+        }
+        { bits: "5",
+          name: "EN_E3",
+          resval: 1,
+          desc: "Enable escalation signal 3 for Class A",
+        }
+        # TODO: bitwidth should be parameterized with PHASE_DW
+        { bits: "7:6",
+          name: "MAP_E0",
+          resval: 0,
+          desc: "Determines in which escalation phase escalation signal 0 shall be asserted.",
+        }
+        { bits: "9:8",
+          name: "MAP_E1",
+          resval: 1,
+          desc: "Determines in which escalation phase escalation signal 1 shall be asserted.",
+        }
+        { bits: "11:10",
+          name: "MAP_E2",
+          resval: 2,
+          desc: "Determine sin which escalation phase escalation signal 2 shall be asserted.",
+        }
+        { bits: "13:12",
+          name: "MAP_E3",
+          resval: 3,
+          desc: "Determines in which escalation phase escalation signal 3 shall be asserted.",
+        }
+      ]
+    },
+    { name:     "CLASSA_CLREN",
+      desc:     '''
+                Clear enable for escalation protocol of Class A alerts.
+                '''
+      swaccess: "rw1c",
+      hwaccess: "hwo",
+      fields: [
+      {   bits:   "0",
+          desc:   '''Register defaults to true, can only be cleared. This register is set
+          to false by the hardware if the escalation protocol has been triggered and the bit
+          !!CLASSA_CTRL.LOCK is true.
+          ''',
+          resval: 1,
+        }
+      ]
+    },
+    { name:     "CLASSA_CLR",
+      desc:     '''
+                Clear for esclation protocol of Class A.
+                '''
+      swaccess: "wo",
+      hwaccess: "hro",
+      hwqe:     "true",
+      regwen:   "CLASSA_CLREN",
+      fields: [
+        { bits: "0",
+          desc: '''Writing to this register clears the accumulator and aborts escalation
+          (if it has been triggered). This clear is disabled if !!CLASSA_CLREN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSA_ACCUM_CNT",
+      desc:     '''
+                Current accumulation value for alert Class A. Software can clear this register
+                with a write to !!CLASSA_CLR register unless !!CLASSA_CLREN is false.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "15:0" }
+      ]
+    },
+    { name:     "CLASSA_ACCUM_THRESH",
+      desc:     '''
+                Accumulation threshold value for alert Class A.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "15:0",
+          desc: '''Once the accumulation value register is equal to the threshold escalation will
+          be triggered on the next alert occurrence within this class A begins. Note that this
+          register can not be modified if !!REGEN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSA_TIMEOUT_CYC",
+      desc:     '''
+                Interrupt timeout in cycles.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0",
+          desc: '''If the interrupt corresponding to this class is not
+          handled within the specified amount of cycles, escalation will be triggered.
+          Set to a positive value to enable the interrupt timeout for Class A. The timeout is set to zero
+          by default, which disables this feature. Note that this register can not be modified if
+          !!REGEN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSA_PHASE0_CYC",
+      desc:     '''
+                Duration of escalation phase 0 for Class A.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSA_PHASE1_CYC",
+      desc:     '''
+                Duration of escalation phase 1 for Class A.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSA_PHASE2_CYC",
+      desc:     '''
+                Duration of escalation phase 2 for Class A.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSA_PHASE3_CYC",
+      desc:     '''
+                Duration of escalation phase 3 for Class A.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSA_ESC_CNT",
+      desc:     '''
+                Escalation counter in cycles for Class A.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "31:0",
+          desc: '''Returns the current timeout or escalation count (depending on !!CLASSA_STATE).
+          This register can not be directly cleared. However, SW can indirectly clear as follows.
+
+          If the class is in the Timeout state, the timeout can be aborted by clearing the
+          corresponding interrupt bit.
+
+          If this class is in any of the escalation phases (e.g. Phase0), escalation protocol can be
+          aborted by writing to !!CLASSA_CLR. Note however that has no effect if !!CLASSA_CLREN
+          is set to false (either by SW or by HW via the !!CLASSA_CTRL.LOCK feature).
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSA_STATE",
+      desc:     '''
+                Current escalation state of Class A. See also !!CLASSA_ESC_CNT.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "2:0",
+          enum: [
+                  { value: "0b000", name: "Idle",     desc: "No timeout or escalation triggered." },
+                  { value: "0b001", name: "Timeout",  desc: "IRQ timeout counter is active." },
+                  { value: "0b011", name: "Terminal", desc: "Terminal state after escalation protocol." },
+                  { value: "0b100", name: "Phase0",   desc: "Escalation Phase0 is active." },
+                  { value: "0b101", name: "Phase1",   desc: "Escalation Phase1 is active." },
+                  { value: "0b110", name: "Phase2",   desc: "Escalation Phase2 is active." },
+                  { value: "0b111", name: "Phase3",   desc: "Escalation Phase3 is active." }
+                ]
+        }
+      ]
+    },
+
+    { name:     "CLASSB_CTRL",
+      desc:     "Escalation control register for alert Class B. Can not be modified if !!REGEN is false."
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "0",
+          name: "EN",
+          desc: '''
+                Enable escalation mechanisms (accumulation and
+                interrupt timeout) for Class B. Note that interrupts can fire
+                regardless of whether the escalation mechanisms are enabled for
+                this class or not.
+                ''',
+        }
+        { bits: "1",
+          name: "LOCK",
+          desc: '''
+                Enable automatic locking of escalation counter for class B.
+                If true, there is no way to stop the escalation protocol for class B
+                once it has been triggered.
+                '''
+        }
+        { bits: "2",
+          name: "EN_E0",
+          resval: 1,
+          desc: "Enable escalation signal 0 for Class B",
+        }
+        { bits: "3",
+          name: "EN_E1",
+          resval: 1,
+          desc: "Enable escalation signal 1 for Class B",
+        }
+        { bits: "4",
+          name: "EN_E2",
+          resval: 1,
+          desc: "Enable escalation signal 2 for Class B",
+        }
+        { bits: "5",
+          name: "EN_E3",
+          resval: 1,
+          desc: "Enable escalation signal 3 for Class B",
+        }
+        # TODO: bitwidth should be parameterized with PHASE_DW
+        { bits: "7:6",
+          name: "MAP_E0",
+          resval: 0,
+          desc: "Determines in which escalation phase escalation signal 0 shall be asserted.",
+        }
+        { bits: "9:8",
+          name: "MAP_E1",
+          resval: 1,
+          desc: "Determines in which escalation phase escalation signal 1 shall be asserted.",
+        }
+        { bits: "11:10",
+          name: "MAP_E2",
+          resval: 2,
+          desc: "Determine sin which escalation phase escalation signal 2 shall be asserted.",
+        }
+        { bits: "13:12",
+          name: "MAP_E3",
+          resval: 3,
+          desc: "Determines in which escalation phase escalation signal 3 shall be asserted.",
+        }
+      ]
+    },
+    { name:     "CLASSB_CLREN",
+      desc:     '''
+                Clear enable for escalation protocol of Class B alerts.
+                '''
+      swaccess: "rw1c",
+      hwaccess: "hwo",
+      fields: [
+      {   bits:   "0",
+          desc:   '''Register defaults to true, can only be cleared. This register is set
+          to false by the hardware if the escalation protocol has been triggered and the bit
+          !!CLASSB_CTRL.LOCK is true.
+          ''',
+          resval: 1,
+        }
+      ]
+    },
+    { name:     "CLASSB_CLR",
+      desc:     '''
+                Clear for esclation protocol of Class B.
+                '''
+      swaccess: "wo",
+      hwaccess: "hro",
+      hwqe:     "true",
+      regwen:   "CLASSB_CLREN",
+      fields: [
+        { bits: "0",
+          desc: '''Writing to this register clears the accumulator and aborts escalation
+          (if it has been triggered). This clear is disabled if !!CLASSB_CLREN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSB_ACCUM_CNT",
+      desc:     '''
+                Current accumulation value for alert Class B. Software can clear this register
+                with a write to !!CLASSB_CLR register unless !!CLASSB_CLREN is false.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "15:0" }
+      ]
+    },
+    { name:     "CLASSB_ACCUM_THRESH",
+      desc:     '''
+                Accumulation threshold value for alert Class B.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "15:0",
+          desc: '''Once the accumulation value register is equal to the threshold escalation will
+          be triggered on the next alert occurrence within this class B begins. Note that this
+          register can not be modified if !!REGEN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSB_TIMEOUT_CYC",
+      desc:     '''
+                Interrupt timeout in cycles.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0",
+          desc: '''If the interrupt corresponding to this class is not
+          handled within the specified amount of cycles, escalation will be triggered.
+          Set to a positive value to enable the interrupt timeout for Class B. The timeout is set to zero
+          by default, which disables this feature. Note that this register can not be modified if
+          !!REGEN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSB_PHASE0_CYC",
+      desc:     '''
+                Duration of escalation phase 0 for Class B.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSB_PHASE1_CYC",
+      desc:     '''
+                Duration of escalation phase 1 for Class B.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSB_PHASE2_CYC",
+      desc:     '''
+                Duration of escalation phase 2 for Class B.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSB_PHASE3_CYC",
+      desc:     '''
+                Duration of escalation phase 3 for Class B.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSB_ESC_CNT",
+      desc:     '''
+                Escalation counter in cycles for Class B.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "31:0",
+          desc: '''Returns the current timeout or escalation count (depending on !!CLASSB_STATE).
+          This register can not be directly cleared. However, SW can indirectly clear as follows.
+
+          If the class is in the Timeout state, the timeout can be aborted by clearing the
+          corresponding interrupt bit.
+
+          If this class is in any of the escalation phases (e.g. Phase0), escalation protocol can be
+          aborted by writing to !!CLASSB_CLR. Note however that has no effect if !!CLASSB_CLREN
+          is set to false (either by SW or by HW via the !!CLASSB_CTRL.LOCK feature).
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSB_STATE",
+      desc:     '''
+                Current escalation state of Class B. See also !!CLASSB_ESC_CNT.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "2:0",
+          enum: [
+                  { value: "0b000", name: "Idle",     desc: "No timeout or escalation triggered." },
+                  { value: "0b001", name: "Timeout",  desc: "IRQ timeout counter is active." },
+                  { value: "0b011", name: "Terminal", desc: "Terminal state after escalation protocol." },
+                  { value: "0b100", name: "Phase0",   desc: "Escalation Phase0 is active." },
+                  { value: "0b101", name: "Phase1",   desc: "Escalation Phase1 is active." },
+                  { value: "0b110", name: "Phase2",   desc: "Escalation Phase2 is active." },
+                  { value: "0b111", name: "Phase3",   desc: "Escalation Phase3 is active." }
+                ]
+        }
+      ]
+    },
+
+    { name:     "CLASSC_CTRL",
+      desc:     "Escalation control register for alert Class C. Can not be modified if !!REGEN is false."
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "0",
+          name: "EN",
+          desc: '''
+                Enable escalation mechanisms (accumulation and
+                interrupt timeout) for Class C. Note that interrupts can fire
+                regardless of whether the escalation mechanisms are enabled for
+                this class or not.
+                ''',
+        }
+        { bits: "1",
+          name: "LOCK",
+          desc: '''
+                Enable automatic locking of escalation counter for class C.
+                If true, there is no way to stop the escalation protocol for class C
+                once it has been triggered.
+                '''
+        }
+        { bits: "2",
+          name: "EN_E0",
+          resval: 1,
+          desc: "Enable escalation signal 0 for Class C",
+        }
+        { bits: "3",
+          name: "EN_E1",
+          resval: 1,
+          desc: "Enable escalation signal 1 for Class C",
+        }
+        { bits: "4",
+          name: "EN_E2",
+          resval: 1,
+          desc: "Enable escalation signal 2 for Class C",
+        }
+        { bits: "5",
+          name: "EN_E3",
+          resval: 1,
+          desc: "Enable escalation signal 3 for Class C",
+        }
+        # TODO: bitwidth should be parameterized with PHASE_DW
+        { bits: "7:6",
+          name: "MAP_E0",
+          resval: 0,
+          desc: "Determines in which escalation phase escalation signal 0 shall be asserted.",
+        }
+        { bits: "9:8",
+          name: "MAP_E1",
+          resval: 1,
+          desc: "Determines in which escalation phase escalation signal 1 shall be asserted.",
+        }
+        { bits: "11:10",
+          name: "MAP_E2",
+          resval: 2,
+          desc: "Determine sin which escalation phase escalation signal 2 shall be asserted.",
+        }
+        { bits: "13:12",
+          name: "MAP_E3",
+          resval: 3,
+          desc: "Determines in which escalation phase escalation signal 3 shall be asserted.",
+        }
+      ]
+    },
+    { name:     "CLASSC_CLREN",
+      desc:     '''
+                Clear enable for escalation protocol of Class C alerts.
+                '''
+      swaccess: "rw1c",
+      hwaccess: "hwo",
+      fields: [
+      {   bits:   "0",
+          desc:   '''Register defaults to true, can only be cleared. This register is set
+          to false by the hardware if the escalation protocol has been triggered and the bit
+          !!CLASSC_CTRL.LOCK is true.
+          ''',
+          resval: 1,
+        }
+      ]
+    },
+    { name:     "CLASSC_CLR",
+      desc:     '''
+                Clear for esclation protocol of Class C.
+                '''
+      swaccess: "wo",
+      hwaccess: "hro",
+      hwqe:     "true",
+      regwen:   "CLASSC_CLREN",
+      fields: [
+        { bits: "0",
+          desc: '''Writing to this register clears the accumulator and aborts escalation
+          (if it has been triggered). This clear is disabled if !!CLASSC_CLREN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSC_ACCUM_CNT",
+      desc:     '''
+                Current accumulation value for alert Class C. Software can clear this register
+                with a write to !!CLASSC_CLR register unless !!CLASSC_CLREN is false.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "15:0" }
+      ]
+    },
+    { name:     "CLASSC_ACCUM_THRESH",
+      desc:     '''
+                Accumulation threshold value for alert Class C.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "15:0",
+          desc: '''Once the accumulation value register is equal to the threshold escalation will
+          be triggered on the next alert occurrence within this class C begins. Note that this
+          register can not be modified if !!REGEN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSC_TIMEOUT_CYC",
+      desc:     '''
+                Interrupt timeout in cycles.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0",
+          desc: '''If the interrupt corresponding to this class is not
+          handled within the specified amount of cycles, escalation will be triggered.
+          Set to a positive value to enable the interrupt timeout for Class C. The timeout is set to zero
+          by default, which disables this feature. Note that this register can not be modified if
+          !!REGEN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSC_PHASE0_CYC",
+      desc:     '''
+                Duration of escalation phase 0 for Class C.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSC_PHASE1_CYC",
+      desc:     '''
+                Duration of escalation phase 1 for Class C.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSC_PHASE2_CYC",
+      desc:     '''
+                Duration of escalation phase 2 for Class C.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSC_PHASE3_CYC",
+      desc:     '''
+                Duration of escalation phase 3 for Class C.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSC_ESC_CNT",
+      desc:     '''
+                Escalation counter in cycles for Class C.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "31:0",
+          desc: '''Returns the current timeout or escalation count (depending on !!CLASSC_STATE).
+          This register can not be directly cleared. However, SW can indirectly clear as follows.
+
+          If the class is in the Timeout state, the timeout can be aborted by clearing the
+          corresponding interrupt bit.
+
+          If this class is in any of the escalation phases (e.g. Phase0), escalation protocol can be
+          aborted by writing to !!CLASSC_CLR. Note however that has no effect if !!CLASSC_CLREN
+          is set to false (either by SW or by HW via the !!CLASSC_CTRL.LOCK feature).
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSC_STATE",
+      desc:     '''
+                Current escalation state of Class C. See also !!CLASSC_ESC_CNT.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "2:0",
+          enum: [
+                  { value: "0b000", name: "Idle",     desc: "No timeout or escalation triggered." },
+                  { value: "0b001", name: "Timeout",  desc: "IRQ timeout counter is active." },
+                  { value: "0b011", name: "Terminal", desc: "Terminal state after escalation protocol." },
+                  { value: "0b100", name: "Phase0",   desc: "Escalation Phase0 is active." },
+                  { value: "0b101", name: "Phase1",   desc: "Escalation Phase1 is active." },
+                  { value: "0b110", name: "Phase2",   desc: "Escalation Phase2 is active." },
+                  { value: "0b111", name: "Phase3",   desc: "Escalation Phase3 is active." }
+                ]
+        }
+      ]
+    },
+
+    { name:     "CLASSD_CTRL",
+      desc:     "Escalation control register for alert Class D. Can not be modified if !!REGEN is false."
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "0",
+          name: "EN",
+          desc: '''
+                Enable escalation mechanisms (accumulation and
+                interrupt timeout) for Class D. Note that interrupts can fire
+                regardless of whether the escalation mechanisms are enabled for
+                this class or not.
+                ''',
+        }
+        { bits: "1",
+          name: "LOCK",
+          desc: '''
+                Enable automatic locking of escalation counter for class D.
+                If true, there is no way to stop the escalation protocol for class D
+                once it has been triggered.
+                '''
+        }
+        { bits: "2",
+          name: "EN_E0",
+          resval: 1,
+          desc: "Enable escalation signal 0 for Class D",
+        }
+        { bits: "3",
+          name: "EN_E1",
+          resval: 1,
+          desc: "Enable escalation signal 1 for Class D",
+        }
+        { bits: "4",
+          name: "EN_E2",
+          resval: 1,
+          desc: "Enable escalation signal 2 for Class D",
+        }
+        { bits: "5",
+          name: "EN_E3",
+          resval: 1,
+          desc: "Enable escalation signal 3 for Class D",
+        }
+        # TODO: bitwidth should be parameterized with PHASE_DW
+        { bits: "7:6",
+          name: "MAP_E0",
+          resval: 0,
+          desc: "Determines in which escalation phase escalation signal 0 shall be asserted.",
+        }
+        { bits: "9:8",
+          name: "MAP_E1",
+          resval: 1,
+          desc: "Determines in which escalation phase escalation signal 1 shall be asserted.",
+        }
+        { bits: "11:10",
+          name: "MAP_E2",
+          resval: 2,
+          desc: "Determine sin which escalation phase escalation signal 2 shall be asserted.",
+        }
+        { bits: "13:12",
+          name: "MAP_E3",
+          resval: 3,
+          desc: "Determines in which escalation phase escalation signal 3 shall be asserted.",
+        }
+      ]
+    },
+    { name:     "CLASSD_CLREN",
+      desc:     '''
+                Clear enable for escalation protocol of Class D alerts.
+                '''
+      swaccess: "rw1c",
+      hwaccess: "hwo",
+      fields: [
+      {   bits:   "0",
+          desc:   '''Register defaults to true, can only be cleared. This register is set
+          to false by the hardware if the escalation protocol has been triggered and the bit
+          !!CLASSD_CTRL.LOCK is true.
+          ''',
+          resval: 1,
+        }
+      ]
+    },
+    { name:     "CLASSD_CLR",
+      desc:     '''
+                Clear for esclation protocol of Class D.
+                '''
+      swaccess: "wo",
+      hwaccess: "hro",
+      hwqe:     "true",
+      regwen:   "CLASSD_CLREN",
+      fields: [
+        { bits: "0",
+          desc: '''Writing to this register clears the accumulator and aborts escalation
+          (if it has been triggered). This clear is disabled if !!CLASSD_CLREN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSD_ACCUM_CNT",
+      desc:     '''
+                Current accumulation value for alert Class D. Software can clear this register
+                with a write to !!CLASSD_CLR register unless !!CLASSD_CLREN is false.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "15:0" }
+      ]
+    },
+    { name:     "CLASSD_ACCUM_THRESH",
+      desc:     '''
+                Accumulation threshold value for alert Class D.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "15:0",
+          desc: '''Once the accumulation value register is equal to the threshold escalation will
+          be triggered on the next alert occurrence within this class D begins. Note that this
+          register can not be modified if !!REGEN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSD_TIMEOUT_CYC",
+      desc:     '''
+                Interrupt timeout in cycles.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0",
+          desc: '''If the interrupt corresponding to this class is not
+          handled within the specified amount of cycles, escalation will be triggered.
+          Set to a positive value to enable the interrupt timeout for Class D. The timeout is set to zero
+          by default, which disables this feature. Note that this register can not be modified if
+          !!REGEN is false.
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSD_PHASE0_CYC",
+      desc:     '''
+                Duration of escalation phase 0 for Class D.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSD_PHASE1_CYC",
+      desc:     '''
+                Duration of escalation phase 1 for Class D.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSD_PHASE2_CYC",
+      desc:     '''
+                Duration of escalation phase 2 for Class D.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSD_PHASE3_CYC",
+      desc:     '''
+                Duration of escalation phase 3 for Class D.
+                '''
+      swaccess: "rw",
+      hwaccess: "hro",
+      regwen:   "REGEN",
+      fields: [
+        { bits: "31:0" ,
+          desc: '''Escalation phase duration in cycles. Note that this register can not be
+          modified if !!REGEN is false.'''
+        }
+      ]
+    }
+    { name:     "CLASSD_ESC_CNT",
+      desc:     '''
+                Escalation counter in cycles for Class D.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "31:0",
+          desc: '''Returns the current timeout or escalation count (depending on !!CLASSD_STATE).
+          This register can not be directly cleared. However, SW can indirectly clear as follows.
+
+          If the class is in the Timeout state, the timeout can be aborted by clearing the
+          corresponding interrupt bit.
+
+          If this class is in any of the escalation phases (e.g. Phase0), escalation protocol can be
+          aborted by writing to !!CLASSD_CLR. Note however that has no effect if !!CLASSD_CLREN
+          is set to false (either by SW or by HW via the !!CLASSD_CTRL.LOCK feature).
+          '''
+        }
+      ]
+    },
+    { name:     "CLASSD_STATE",
+      desc:     '''
+                Current escalation state of Class D. See also !!CLASSD_ESC_CNT.
+                '''
+      swaccess: "ro",
+      hwaccess: "hwo",
+      hwext:    "true",
+      fields: [
+        { bits: "2:0",
+          enum: [
+                  { value: "0b000", name: "Idle",     desc: "No timeout or escalation triggered." },
+                  { value: "0b001", name: "Timeout",  desc: "IRQ timeout counter is active." },
+                  { value: "0b011", name: "Terminal", desc: "Terminal state after escalation protocol." },
+                  { value: "0b100", name: "Phase0",   desc: "Escalation Phase0 is active." },
+                  { value: "0b101", name: "Phase1",   desc: "Escalation Phase1 is active." },
+                  { value: "0b110", name: "Phase2",   desc: "Escalation Phase2 is active." },
+                  { value: "0b111", name: "Phase3",   desc: "Escalation Phase3 is active." }
+                ]
+        }
+      ]
+    },
+  ],
+}
diff --git a/hw/top_earlgrey/ip/alert_handler/rtl/autogen/alert_handler_reg_pkg.sv b/hw/top_earlgrey/ip/alert_handler/rtl/autogen/alert_handler_reg_pkg.sv
new file mode 100644
index 0000000..56ad460
--- /dev/null
+++ b/hw/top_earlgrey/ip/alert_handler/rtl/autogen/alert_handler_reg_pkg.sv
@@ -0,0 +1,716 @@
+// 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 alert_handler_reg_pkg;
+
+  // Param list
+  localparam int NAlerts = 1;
+  localparam int EscCntDw = 32;
+  localparam int AccuCntDw = 16;
+  localparam int LfsrSeed = 2147483647;
+  localparam logic [NAlerts-1:0] AsyncOn = 1'b0;
+  localparam int N_CLASSES = 4;
+  localparam int N_ESC_SEV = 4;
+  localparam int N_PHASES = 4;
+  localparam int N_LOC_ALERT = 4;
+  localparam int PING_CNT_DW = 24;
+  localparam int PHASE_DW = 2;
+  localparam int CLASS_DW = 2;
+
+  ////////////////////////////
+  // Typedefs for registers //
+  ////////////////////////////
+  typedef struct packed {
+    struct packed {
+      logic        q;
+    } classa;
+    struct packed {
+      logic        q;
+    } classb;
+    struct packed {
+      logic        q;
+    } classc;
+    struct packed {
+      logic        q;
+    } classd;
+  } alert_handler_reg2hw_intr_state_reg_t;
+
+  typedef struct packed {
+    struct packed {
+      logic        q;
+    } classa;
+    struct packed {
+      logic        q;
+    } classb;
+    struct packed {
+      logic        q;
+    } classc;
+    struct packed {
+      logic        q;
+    } classd;
+  } alert_handler_reg2hw_intr_enable_reg_t;
+
+  typedef struct packed {
+    struct packed {
+      logic        q;
+      logic        qe;
+    } classa;
+    struct packed {
+      logic        q;
+      logic        qe;
+    } classb;
+    struct packed {
+      logic        q;
+      logic        qe;
+    } classc;
+    struct packed {
+      logic        q;
+      logic        qe;
+    } classd;
+  } alert_handler_reg2hw_intr_test_reg_t;
+
+  typedef struct packed {
+    logic        q;
+  } alert_handler_reg2hw_regen_reg_t;
+
+  typedef struct packed {
+    logic [23:0] q;
+  } alert_handler_reg2hw_ping_timeout_cyc_reg_t;
+
+  typedef struct packed {
+    logic        q;
+  } alert_handler_reg2hw_alert_en_mreg_t;
+
+  typedef struct packed {
+    logic [1:0]  q;
+  } alert_handler_reg2hw_alert_class_mreg_t;
+
+  typedef struct packed {
+    logic        q;
+  } alert_handler_reg2hw_alert_cause_mreg_t;
+
+  typedef struct packed {
+    logic        q;
+  } alert_handler_reg2hw_loc_alert_en_mreg_t;
+
+  typedef struct packed {
+    logic [1:0]  q;
+  } alert_handler_reg2hw_loc_alert_class_mreg_t;
+
+  typedef struct packed {
+    logic        q;
+  } alert_handler_reg2hw_loc_alert_cause_mreg_t;
+
+  typedef struct packed {
+    struct packed {
+      logic        q;
+    } en;
+    struct packed {
+      logic        q;
+    } lock;
+    struct packed {
+      logic        q;
+    } en_e0;
+    struct packed {
+      logic        q;
+    } en_e1;
+    struct packed {
+      logic        q;
+    } en_e2;
+    struct packed {
+      logic        q;
+    } en_e3;
+    struct packed {
+      logic [1:0]  q;
+    } map_e0;
+    struct packed {
+      logic [1:0]  q;
+    } map_e1;
+    struct packed {
+      logic [1:0]  q;
+    } map_e2;
+    struct packed {
+      logic [1:0]  q;
+    } map_e3;
+  } alert_handler_reg2hw_classa_ctrl_reg_t;
+
+  typedef struct packed {
+    logic        q;
+    logic        qe;
+  } alert_handler_reg2hw_classa_clr_reg_t;
+
+  typedef struct packed {
+    logic [15:0] q;
+  } alert_handler_reg2hw_classa_accum_thresh_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classa_timeout_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classa_phase0_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classa_phase1_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classa_phase2_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classa_phase3_cyc_reg_t;
+
+  typedef struct packed {
+    struct packed {
+      logic        q;
+    } en;
+    struct packed {
+      logic        q;
+    } lock;
+    struct packed {
+      logic        q;
+    } en_e0;
+    struct packed {
+      logic        q;
+    } en_e1;
+    struct packed {
+      logic        q;
+    } en_e2;
+    struct packed {
+      logic        q;
+    } en_e3;
+    struct packed {
+      logic [1:0]  q;
+    } map_e0;
+    struct packed {
+      logic [1:0]  q;
+    } map_e1;
+    struct packed {
+      logic [1:0]  q;
+    } map_e2;
+    struct packed {
+      logic [1:0]  q;
+    } map_e3;
+  } alert_handler_reg2hw_classb_ctrl_reg_t;
+
+  typedef struct packed {
+    logic        q;
+    logic        qe;
+  } alert_handler_reg2hw_classb_clr_reg_t;
+
+  typedef struct packed {
+    logic [15:0] q;
+  } alert_handler_reg2hw_classb_accum_thresh_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classb_timeout_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classb_phase0_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classb_phase1_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classb_phase2_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classb_phase3_cyc_reg_t;
+
+  typedef struct packed {
+    struct packed {
+      logic        q;
+    } en;
+    struct packed {
+      logic        q;
+    } lock;
+    struct packed {
+      logic        q;
+    } en_e0;
+    struct packed {
+      logic        q;
+    } en_e1;
+    struct packed {
+      logic        q;
+    } en_e2;
+    struct packed {
+      logic        q;
+    } en_e3;
+    struct packed {
+      logic [1:0]  q;
+    } map_e0;
+    struct packed {
+      logic [1:0]  q;
+    } map_e1;
+    struct packed {
+      logic [1:0]  q;
+    } map_e2;
+    struct packed {
+      logic [1:0]  q;
+    } map_e3;
+  } alert_handler_reg2hw_classc_ctrl_reg_t;
+
+  typedef struct packed {
+    logic        q;
+    logic        qe;
+  } alert_handler_reg2hw_classc_clr_reg_t;
+
+  typedef struct packed {
+    logic [15:0] q;
+  } alert_handler_reg2hw_classc_accum_thresh_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classc_timeout_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classc_phase0_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classc_phase1_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classc_phase2_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classc_phase3_cyc_reg_t;
+
+  typedef struct packed {
+    struct packed {
+      logic        q;
+    } en;
+    struct packed {
+      logic        q;
+    } lock;
+    struct packed {
+      logic        q;
+    } en_e0;
+    struct packed {
+      logic        q;
+    } en_e1;
+    struct packed {
+      logic        q;
+    } en_e2;
+    struct packed {
+      logic        q;
+    } en_e3;
+    struct packed {
+      logic [1:0]  q;
+    } map_e0;
+    struct packed {
+      logic [1:0]  q;
+    } map_e1;
+    struct packed {
+      logic [1:0]  q;
+    } map_e2;
+    struct packed {
+      logic [1:0]  q;
+    } map_e3;
+  } alert_handler_reg2hw_classd_ctrl_reg_t;
+
+  typedef struct packed {
+    logic        q;
+    logic        qe;
+  } alert_handler_reg2hw_classd_clr_reg_t;
+
+  typedef struct packed {
+    logic [15:0] q;
+  } alert_handler_reg2hw_classd_accum_thresh_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classd_timeout_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classd_phase0_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classd_phase1_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classd_phase2_cyc_reg_t;
+
+  typedef struct packed {
+    logic [31:0] q;
+  } alert_handler_reg2hw_classd_phase3_cyc_reg_t;
+
+
+  typedef struct packed {
+    struct packed {
+      logic        d;
+      logic        de;
+    } classa;
+    struct packed {
+      logic        d;
+      logic        de;
+    } classb;
+    struct packed {
+      logic        d;
+      logic        de;
+    } classc;
+    struct packed {
+      logic        d;
+      logic        de;
+    } classd;
+  } alert_handler_hw2reg_intr_state_reg_t;
+
+  typedef struct packed {
+    logic        d;
+    logic        de;
+  } alert_handler_hw2reg_alert_cause_mreg_t;
+
+  typedef struct packed {
+    logic        d;
+    logic        de;
+  } alert_handler_hw2reg_loc_alert_cause_mreg_t;
+
+  typedef struct packed {
+    logic        d;
+    logic        de;
+  } alert_handler_hw2reg_classa_clren_reg_t;
+
+  typedef struct packed {
+    logic [15:0] d;
+  } alert_handler_hw2reg_classa_accum_cnt_reg_t;
+
+  typedef struct packed {
+    logic [31:0] d;
+  } alert_handler_hw2reg_classa_esc_cnt_reg_t;
+
+  typedef struct packed {
+    logic [2:0]  d;
+  } alert_handler_hw2reg_classa_state_reg_t;
+
+  typedef struct packed {
+    logic        d;
+    logic        de;
+  } alert_handler_hw2reg_classb_clren_reg_t;
+
+  typedef struct packed {
+    logic [15:0] d;
+  } alert_handler_hw2reg_classb_accum_cnt_reg_t;
+
+  typedef struct packed {
+    logic [31:0] d;
+  } alert_handler_hw2reg_classb_esc_cnt_reg_t;
+
+  typedef struct packed {
+    logic [2:0]  d;
+  } alert_handler_hw2reg_classb_state_reg_t;
+
+  typedef struct packed {
+    logic        d;
+    logic        de;
+  } alert_handler_hw2reg_classc_clren_reg_t;
+
+  typedef struct packed {
+    logic [15:0] d;
+  } alert_handler_hw2reg_classc_accum_cnt_reg_t;
+
+  typedef struct packed {
+    logic [31:0] d;
+  } alert_handler_hw2reg_classc_esc_cnt_reg_t;
+
+  typedef struct packed {
+    logic [2:0]  d;
+  } alert_handler_hw2reg_classc_state_reg_t;
+
+  typedef struct packed {
+    logic        d;
+    logic        de;
+  } alert_handler_hw2reg_classd_clren_reg_t;
+
+  typedef struct packed {
+    logic [15:0] d;
+  } alert_handler_hw2reg_classd_accum_cnt_reg_t;
+
+  typedef struct packed {
+    logic [31:0] d;
+  } alert_handler_hw2reg_classd_esc_cnt_reg_t;
+
+  typedef struct packed {
+    logic [2:0]  d;
+  } alert_handler_hw2reg_classd_state_reg_t;
+
+
+  ///////////////////////////////////////
+  // Register to internal design logic //
+  ///////////////////////////////////////
+  typedef struct packed {
+    alert_handler_reg2hw_intr_state_reg_t intr_state; // [828:825]
+    alert_handler_reg2hw_intr_enable_reg_t intr_enable; // [824:821]
+    alert_handler_reg2hw_intr_test_reg_t intr_test; // [820:813]
+    alert_handler_reg2hw_regen_reg_t regen; // [812:812]
+    alert_handler_reg2hw_ping_timeout_cyc_reg_t ping_timeout_cyc; // [811:788]
+    alert_handler_reg2hw_alert_en_mreg_t [0:0] alert_en; // [787:787]
+    alert_handler_reg2hw_alert_class_mreg_t [0:0] alert_class; // [786:785]
+    alert_handler_reg2hw_alert_cause_mreg_t [0:0] alert_cause; // [784:784]
+    alert_handler_reg2hw_loc_alert_en_mreg_t [3:0] loc_alert_en; // [783:780]
+    alert_handler_reg2hw_loc_alert_class_mreg_t [3:0] loc_alert_class; // [779:772]
+    alert_handler_reg2hw_loc_alert_cause_mreg_t [3:0] loc_alert_cause; // [771:768]
+    alert_handler_reg2hw_classa_ctrl_reg_t classa_ctrl; // [767:754]
+    alert_handler_reg2hw_classa_clr_reg_t classa_clr; // [753:752]
+    alert_handler_reg2hw_classa_accum_thresh_reg_t classa_accum_thresh; // [751:736]
+    alert_handler_reg2hw_classa_timeout_cyc_reg_t classa_timeout_cyc; // [735:704]
+    alert_handler_reg2hw_classa_phase0_cyc_reg_t classa_phase0_cyc; // [703:672]
+    alert_handler_reg2hw_classa_phase1_cyc_reg_t classa_phase1_cyc; // [671:640]
+    alert_handler_reg2hw_classa_phase2_cyc_reg_t classa_phase2_cyc; // [639:608]
+    alert_handler_reg2hw_classa_phase3_cyc_reg_t classa_phase3_cyc; // [607:576]
+    alert_handler_reg2hw_classb_ctrl_reg_t classb_ctrl; // [575:562]
+    alert_handler_reg2hw_classb_clr_reg_t classb_clr; // [561:560]
+    alert_handler_reg2hw_classb_accum_thresh_reg_t classb_accum_thresh; // [559:544]
+    alert_handler_reg2hw_classb_timeout_cyc_reg_t classb_timeout_cyc; // [543:512]
+    alert_handler_reg2hw_classb_phase0_cyc_reg_t classb_phase0_cyc; // [511:480]
+    alert_handler_reg2hw_classb_phase1_cyc_reg_t classb_phase1_cyc; // [479:448]
+    alert_handler_reg2hw_classb_phase2_cyc_reg_t classb_phase2_cyc; // [447:416]
+    alert_handler_reg2hw_classb_phase3_cyc_reg_t classb_phase3_cyc; // [415:384]
+    alert_handler_reg2hw_classc_ctrl_reg_t classc_ctrl; // [383:370]
+    alert_handler_reg2hw_classc_clr_reg_t classc_clr; // [369:368]
+    alert_handler_reg2hw_classc_accum_thresh_reg_t classc_accum_thresh; // [367:352]
+    alert_handler_reg2hw_classc_timeout_cyc_reg_t classc_timeout_cyc; // [351:320]
+    alert_handler_reg2hw_classc_phase0_cyc_reg_t classc_phase0_cyc; // [319:288]
+    alert_handler_reg2hw_classc_phase1_cyc_reg_t classc_phase1_cyc; // [287:256]
+    alert_handler_reg2hw_classc_phase2_cyc_reg_t classc_phase2_cyc; // [255:224]
+    alert_handler_reg2hw_classc_phase3_cyc_reg_t classc_phase3_cyc; // [223:192]
+    alert_handler_reg2hw_classd_ctrl_reg_t classd_ctrl; // [191:178]
+    alert_handler_reg2hw_classd_clr_reg_t classd_clr; // [177:176]
+    alert_handler_reg2hw_classd_accum_thresh_reg_t classd_accum_thresh; // [175:160]
+    alert_handler_reg2hw_classd_timeout_cyc_reg_t classd_timeout_cyc; // [159:128]
+    alert_handler_reg2hw_classd_phase0_cyc_reg_t classd_phase0_cyc; // [127:96]
+    alert_handler_reg2hw_classd_phase1_cyc_reg_t classd_phase1_cyc; // [95:64]
+    alert_handler_reg2hw_classd_phase2_cyc_reg_t classd_phase2_cyc; // [63:32]
+    alert_handler_reg2hw_classd_phase3_cyc_reg_t classd_phase3_cyc; // [31:0]
+  } alert_handler_reg2hw_t;
+
+  ///////////////////////////////////////
+  // Internal design logic to register //
+  ///////////////////////////////////////
+  typedef struct packed {
+    alert_handler_hw2reg_intr_state_reg_t intr_state; // [229:226]
+    alert_handler_hw2reg_alert_cause_mreg_t [0:0] alert_cause; // [225:224]
+    alert_handler_hw2reg_loc_alert_cause_mreg_t [3:0] loc_alert_cause; // [223:216]
+    alert_handler_hw2reg_classa_clren_reg_t classa_clren; // [215:216]
+    alert_handler_hw2reg_classa_accum_cnt_reg_t classa_accum_cnt; // [215:216]
+    alert_handler_hw2reg_classa_esc_cnt_reg_t classa_esc_cnt; // [215:216]
+    alert_handler_hw2reg_classa_state_reg_t classa_state; // [215:216]
+    alert_handler_hw2reg_classb_clren_reg_t classb_clren; // [215:216]
+    alert_handler_hw2reg_classb_accum_cnt_reg_t classb_accum_cnt; // [215:216]
+    alert_handler_hw2reg_classb_esc_cnt_reg_t classb_esc_cnt; // [215:216]
+    alert_handler_hw2reg_classb_state_reg_t classb_state; // [215:216]
+    alert_handler_hw2reg_classc_clren_reg_t classc_clren; // [215:216]
+    alert_handler_hw2reg_classc_accum_cnt_reg_t classc_accum_cnt; // [215:216]
+    alert_handler_hw2reg_classc_esc_cnt_reg_t classc_esc_cnt; // [215:216]
+    alert_handler_hw2reg_classc_state_reg_t classc_state; // [215:216]
+    alert_handler_hw2reg_classd_clren_reg_t classd_clren; // [215:216]
+    alert_handler_hw2reg_classd_accum_cnt_reg_t classd_accum_cnt; // [215:216]
+    alert_handler_hw2reg_classd_esc_cnt_reg_t classd_esc_cnt; // [215:216]
+    alert_handler_hw2reg_classd_state_reg_t classd_state; // [215:216]
+  } alert_handler_hw2reg_t;
+
+  // Register Address
+  parameter ALERT_HANDLER_INTR_STATE_OFFSET = 8'h 0;
+  parameter ALERT_HANDLER_INTR_ENABLE_OFFSET = 8'h 4;
+  parameter ALERT_HANDLER_INTR_TEST_OFFSET = 8'h 8;
+  parameter ALERT_HANDLER_REGEN_OFFSET = 8'h c;
+  parameter ALERT_HANDLER_PING_TIMEOUT_CYC_OFFSET = 8'h 10;
+  parameter ALERT_HANDLER_ALERT_EN_OFFSET = 8'h 14;
+  parameter ALERT_HANDLER_ALERT_CLASS_OFFSET = 8'h 18;
+  parameter ALERT_HANDLER_ALERT_CAUSE_OFFSET = 8'h 1c;
+  parameter ALERT_HANDLER_LOC_ALERT_EN_OFFSET = 8'h 20;
+  parameter ALERT_HANDLER_LOC_ALERT_CLASS_OFFSET = 8'h 24;
+  parameter ALERT_HANDLER_LOC_ALERT_CAUSE_OFFSET = 8'h 28;
+  parameter ALERT_HANDLER_CLASSA_CTRL_OFFSET = 8'h 2c;
+  parameter ALERT_HANDLER_CLASSA_CLREN_OFFSET = 8'h 30;
+  parameter ALERT_HANDLER_CLASSA_CLR_OFFSET = 8'h 34;
+  parameter ALERT_HANDLER_CLASSA_ACCUM_CNT_OFFSET = 8'h 38;
+  parameter ALERT_HANDLER_CLASSA_ACCUM_THRESH_OFFSET = 8'h 3c;
+  parameter ALERT_HANDLER_CLASSA_TIMEOUT_CYC_OFFSET = 8'h 40;
+  parameter ALERT_HANDLER_CLASSA_PHASE0_CYC_OFFSET = 8'h 44;
+  parameter ALERT_HANDLER_CLASSA_PHASE1_CYC_OFFSET = 8'h 48;
+  parameter ALERT_HANDLER_CLASSA_PHASE2_CYC_OFFSET = 8'h 4c;
+  parameter ALERT_HANDLER_CLASSA_PHASE3_CYC_OFFSET = 8'h 50;
+  parameter ALERT_HANDLER_CLASSA_ESC_CNT_OFFSET = 8'h 54;
+  parameter ALERT_HANDLER_CLASSA_STATE_OFFSET = 8'h 58;
+  parameter ALERT_HANDLER_CLASSB_CTRL_OFFSET = 8'h 5c;
+  parameter ALERT_HANDLER_CLASSB_CLREN_OFFSET = 8'h 60;
+  parameter ALERT_HANDLER_CLASSB_CLR_OFFSET = 8'h 64;
+  parameter ALERT_HANDLER_CLASSB_ACCUM_CNT_OFFSET = 8'h 68;
+  parameter ALERT_HANDLER_CLASSB_ACCUM_THRESH_OFFSET = 8'h 6c;
+  parameter ALERT_HANDLER_CLASSB_TIMEOUT_CYC_OFFSET = 8'h 70;
+  parameter ALERT_HANDLER_CLASSB_PHASE0_CYC_OFFSET = 8'h 74;
+  parameter ALERT_HANDLER_CLASSB_PHASE1_CYC_OFFSET = 8'h 78;
+  parameter ALERT_HANDLER_CLASSB_PHASE2_CYC_OFFSET = 8'h 7c;
+  parameter ALERT_HANDLER_CLASSB_PHASE3_CYC_OFFSET = 8'h 80;
+  parameter ALERT_HANDLER_CLASSB_ESC_CNT_OFFSET = 8'h 84;
+  parameter ALERT_HANDLER_CLASSB_STATE_OFFSET = 8'h 88;
+  parameter ALERT_HANDLER_CLASSC_CTRL_OFFSET = 8'h 8c;
+  parameter ALERT_HANDLER_CLASSC_CLREN_OFFSET = 8'h 90;
+  parameter ALERT_HANDLER_CLASSC_CLR_OFFSET = 8'h 94;
+  parameter ALERT_HANDLER_CLASSC_ACCUM_CNT_OFFSET = 8'h 98;
+  parameter ALERT_HANDLER_CLASSC_ACCUM_THRESH_OFFSET = 8'h 9c;
+  parameter ALERT_HANDLER_CLASSC_TIMEOUT_CYC_OFFSET = 8'h a0;
+  parameter ALERT_HANDLER_CLASSC_PHASE0_CYC_OFFSET = 8'h a4;
+  parameter ALERT_HANDLER_CLASSC_PHASE1_CYC_OFFSET = 8'h a8;
+  parameter ALERT_HANDLER_CLASSC_PHASE2_CYC_OFFSET = 8'h ac;
+  parameter ALERT_HANDLER_CLASSC_PHASE3_CYC_OFFSET = 8'h b0;
+  parameter ALERT_HANDLER_CLASSC_ESC_CNT_OFFSET = 8'h b4;
+  parameter ALERT_HANDLER_CLASSC_STATE_OFFSET = 8'h b8;
+  parameter ALERT_HANDLER_CLASSD_CTRL_OFFSET = 8'h bc;
+  parameter ALERT_HANDLER_CLASSD_CLREN_OFFSET = 8'h c0;
+  parameter ALERT_HANDLER_CLASSD_CLR_OFFSET = 8'h c4;
+  parameter ALERT_HANDLER_CLASSD_ACCUM_CNT_OFFSET = 8'h c8;
+  parameter ALERT_HANDLER_CLASSD_ACCUM_THRESH_OFFSET = 8'h cc;
+  parameter ALERT_HANDLER_CLASSD_TIMEOUT_CYC_OFFSET = 8'h d0;
+  parameter ALERT_HANDLER_CLASSD_PHASE0_CYC_OFFSET = 8'h d4;
+  parameter ALERT_HANDLER_CLASSD_PHASE1_CYC_OFFSET = 8'h d8;
+  parameter ALERT_HANDLER_CLASSD_PHASE2_CYC_OFFSET = 8'h dc;
+  parameter ALERT_HANDLER_CLASSD_PHASE3_CYC_OFFSET = 8'h e0;
+  parameter ALERT_HANDLER_CLASSD_ESC_CNT_OFFSET = 8'h e4;
+  parameter ALERT_HANDLER_CLASSD_STATE_OFFSET = 8'h e8;
+
+
+  // Register Index
+  typedef enum int {
+    ALERT_HANDLER_INTR_STATE,
+    ALERT_HANDLER_INTR_ENABLE,
+    ALERT_HANDLER_INTR_TEST,
+    ALERT_HANDLER_REGEN,
+    ALERT_HANDLER_PING_TIMEOUT_CYC,
+    ALERT_HANDLER_ALERT_EN,
+    ALERT_HANDLER_ALERT_CLASS,
+    ALERT_HANDLER_ALERT_CAUSE,
+    ALERT_HANDLER_LOC_ALERT_EN,
+    ALERT_HANDLER_LOC_ALERT_CLASS,
+    ALERT_HANDLER_LOC_ALERT_CAUSE,
+    ALERT_HANDLER_CLASSA_CTRL,
+    ALERT_HANDLER_CLASSA_CLREN,
+    ALERT_HANDLER_CLASSA_CLR,
+    ALERT_HANDLER_CLASSA_ACCUM_CNT,
+    ALERT_HANDLER_CLASSA_ACCUM_THRESH,
+    ALERT_HANDLER_CLASSA_TIMEOUT_CYC,
+    ALERT_HANDLER_CLASSA_PHASE0_CYC,
+    ALERT_HANDLER_CLASSA_PHASE1_CYC,
+    ALERT_HANDLER_CLASSA_PHASE2_CYC,
+    ALERT_HANDLER_CLASSA_PHASE3_CYC,
+    ALERT_HANDLER_CLASSA_ESC_CNT,
+    ALERT_HANDLER_CLASSA_STATE,
+    ALERT_HANDLER_CLASSB_CTRL,
+    ALERT_HANDLER_CLASSB_CLREN,
+    ALERT_HANDLER_CLASSB_CLR,
+    ALERT_HANDLER_CLASSB_ACCUM_CNT,
+    ALERT_HANDLER_CLASSB_ACCUM_THRESH,
+    ALERT_HANDLER_CLASSB_TIMEOUT_CYC,
+    ALERT_HANDLER_CLASSB_PHASE0_CYC,
+    ALERT_HANDLER_CLASSB_PHASE1_CYC,
+    ALERT_HANDLER_CLASSB_PHASE2_CYC,
+    ALERT_HANDLER_CLASSB_PHASE3_CYC,
+    ALERT_HANDLER_CLASSB_ESC_CNT,
+    ALERT_HANDLER_CLASSB_STATE,
+    ALERT_HANDLER_CLASSC_CTRL,
+    ALERT_HANDLER_CLASSC_CLREN,
+    ALERT_HANDLER_CLASSC_CLR,
+    ALERT_HANDLER_CLASSC_ACCUM_CNT,
+    ALERT_HANDLER_CLASSC_ACCUM_THRESH,
+    ALERT_HANDLER_CLASSC_TIMEOUT_CYC,
+    ALERT_HANDLER_CLASSC_PHASE0_CYC,
+    ALERT_HANDLER_CLASSC_PHASE1_CYC,
+    ALERT_HANDLER_CLASSC_PHASE2_CYC,
+    ALERT_HANDLER_CLASSC_PHASE3_CYC,
+    ALERT_HANDLER_CLASSC_ESC_CNT,
+    ALERT_HANDLER_CLASSC_STATE,
+    ALERT_HANDLER_CLASSD_CTRL,
+    ALERT_HANDLER_CLASSD_CLREN,
+    ALERT_HANDLER_CLASSD_CLR,
+    ALERT_HANDLER_CLASSD_ACCUM_CNT,
+    ALERT_HANDLER_CLASSD_ACCUM_THRESH,
+    ALERT_HANDLER_CLASSD_TIMEOUT_CYC,
+    ALERT_HANDLER_CLASSD_PHASE0_CYC,
+    ALERT_HANDLER_CLASSD_PHASE1_CYC,
+    ALERT_HANDLER_CLASSD_PHASE2_CYC,
+    ALERT_HANDLER_CLASSD_PHASE3_CYC,
+    ALERT_HANDLER_CLASSD_ESC_CNT,
+    ALERT_HANDLER_CLASSD_STATE
+  } alert_handler_id_e;
+
+  // Register width information to check illegal writes
+  localparam logic [3:0] ALERT_HANDLER_PERMIT [59] = '{
+    4'b 0001, // index[ 0] ALERT_HANDLER_INTR_STATE
+    4'b 0001, // index[ 1] ALERT_HANDLER_INTR_ENABLE
+    4'b 0001, // index[ 2] ALERT_HANDLER_INTR_TEST
+    4'b 0001, // index[ 3] ALERT_HANDLER_REGEN
+    4'b 0111, // index[ 4] ALERT_HANDLER_PING_TIMEOUT_CYC
+    4'b 0001, // index[ 5] ALERT_HANDLER_ALERT_EN
+    4'b 0001, // index[ 6] ALERT_HANDLER_ALERT_CLASS
+    4'b 0001, // index[ 7] ALERT_HANDLER_ALERT_CAUSE
+    4'b 0001, // index[ 8] ALERT_HANDLER_LOC_ALERT_EN
+    4'b 0001, // index[ 9] ALERT_HANDLER_LOC_ALERT_CLASS
+    4'b 0001, // index[10] ALERT_HANDLER_LOC_ALERT_CAUSE
+    4'b 0011, // index[11] ALERT_HANDLER_CLASSA_CTRL
+    4'b 0001, // index[12] ALERT_HANDLER_CLASSA_CLREN
+    4'b 0001, // index[13] ALERT_HANDLER_CLASSA_CLR
+    4'b 0011, // index[14] ALERT_HANDLER_CLASSA_ACCUM_CNT
+    4'b 0011, // index[15] ALERT_HANDLER_CLASSA_ACCUM_THRESH
+    4'b 1111, // index[16] ALERT_HANDLER_CLASSA_TIMEOUT_CYC
+    4'b 1111, // index[17] ALERT_HANDLER_CLASSA_PHASE0_CYC
+    4'b 1111, // index[18] ALERT_HANDLER_CLASSA_PHASE1_CYC
+    4'b 1111, // index[19] ALERT_HANDLER_CLASSA_PHASE2_CYC
+    4'b 1111, // index[20] ALERT_HANDLER_CLASSA_PHASE3_CYC
+    4'b 1111, // index[21] ALERT_HANDLER_CLASSA_ESC_CNT
+    4'b 0001, // index[22] ALERT_HANDLER_CLASSA_STATE
+    4'b 0011, // index[23] ALERT_HANDLER_CLASSB_CTRL
+    4'b 0001, // index[24] ALERT_HANDLER_CLASSB_CLREN
+    4'b 0001, // index[25] ALERT_HANDLER_CLASSB_CLR
+    4'b 0011, // index[26] ALERT_HANDLER_CLASSB_ACCUM_CNT
+    4'b 0011, // index[27] ALERT_HANDLER_CLASSB_ACCUM_THRESH
+    4'b 1111, // index[28] ALERT_HANDLER_CLASSB_TIMEOUT_CYC
+    4'b 1111, // index[29] ALERT_HANDLER_CLASSB_PHASE0_CYC
+    4'b 1111, // index[30] ALERT_HANDLER_CLASSB_PHASE1_CYC
+    4'b 1111, // index[31] ALERT_HANDLER_CLASSB_PHASE2_CYC
+    4'b 1111, // index[32] ALERT_HANDLER_CLASSB_PHASE3_CYC
+    4'b 1111, // index[33] ALERT_HANDLER_CLASSB_ESC_CNT
+    4'b 0001, // index[34] ALERT_HANDLER_CLASSB_STATE
+    4'b 0011, // index[35] ALERT_HANDLER_CLASSC_CTRL
+    4'b 0001, // index[36] ALERT_HANDLER_CLASSC_CLREN
+    4'b 0001, // index[37] ALERT_HANDLER_CLASSC_CLR
+    4'b 0011, // index[38] ALERT_HANDLER_CLASSC_ACCUM_CNT
+    4'b 0011, // index[39] ALERT_HANDLER_CLASSC_ACCUM_THRESH
+    4'b 1111, // index[40] ALERT_HANDLER_CLASSC_TIMEOUT_CYC
+    4'b 1111, // index[41] ALERT_HANDLER_CLASSC_PHASE0_CYC
+    4'b 1111, // index[42] ALERT_HANDLER_CLASSC_PHASE1_CYC
+    4'b 1111, // index[43] ALERT_HANDLER_CLASSC_PHASE2_CYC
+    4'b 1111, // index[44] ALERT_HANDLER_CLASSC_PHASE3_CYC
+    4'b 1111, // index[45] ALERT_HANDLER_CLASSC_ESC_CNT
+    4'b 0001, // index[46] ALERT_HANDLER_CLASSC_STATE
+    4'b 0011, // index[47] ALERT_HANDLER_CLASSD_CTRL
+    4'b 0001, // index[48] ALERT_HANDLER_CLASSD_CLREN
+    4'b 0001, // index[49] ALERT_HANDLER_CLASSD_CLR
+    4'b 0011, // index[50] ALERT_HANDLER_CLASSD_ACCUM_CNT
+    4'b 0011, // index[51] ALERT_HANDLER_CLASSD_ACCUM_THRESH
+    4'b 1111, // index[52] ALERT_HANDLER_CLASSD_TIMEOUT_CYC
+    4'b 1111, // index[53] ALERT_HANDLER_CLASSD_PHASE0_CYC
+    4'b 1111, // index[54] ALERT_HANDLER_CLASSD_PHASE1_CYC
+    4'b 1111, // index[55] ALERT_HANDLER_CLASSD_PHASE2_CYC
+    4'b 1111, // index[56] ALERT_HANDLER_CLASSD_PHASE3_CYC
+    4'b 1111, // index[57] ALERT_HANDLER_CLASSD_ESC_CNT
+    4'b 0001  // index[58] ALERT_HANDLER_CLASSD_STATE
+  };
+endpackage
+
diff --git a/hw/top_earlgrey/ip/alert_handler/rtl/autogen/alert_handler_reg_top.sv b/hw/top_earlgrey/ip/alert_handler/rtl/autogen/alert_handler_reg_top.sv
new file mode 100644
index 0000000..b267bb6
--- /dev/null
+++ b/hw/top_earlgrey/ip/alert_handler/rtl/autogen/alert_handler_reg_top.sv
@@ -0,0 +1,4006 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+//
+// Register Top module auto-generated by `reggen`
+
+module alert_handler_reg_top (
+  input clk_i,
+  input rst_ni,
+
+  // Below Regster interface can be changed
+  input  tlul_pkg::tl_h2d_t tl_i,
+  output tlul_pkg::tl_d2h_t tl_o,
+  // To HW
+  output alert_handler_reg_pkg::alert_handler_reg2hw_t reg2hw, // Write
+  input  alert_handler_reg_pkg::alert_handler_hw2reg_t hw2reg, // Read
+
+  // Config
+  input devmode_i // If 1, explicit error return for unmapped register access
+);
+
+  import alert_handler_reg_pkg::* ;
+
+  localparam AW = 8;
+  localparam DW = 32;
+  localparam DBW = DW/8;                    // Byte Width
+
+  // register signals
+  logic           reg_we;
+  logic           reg_re;
+  logic [AW-1:0]  reg_addr;
+  logic [DW-1:0]  reg_wdata;
+  logic [DBW-1:0] reg_be;
+  logic [DW-1:0]  reg_rdata;
+  logic           reg_error;
+
+  logic          addrmiss, wr_err;
+
+  logic [DW-1:0] reg_rdata_next;
+
+  tlul_pkg::tl_h2d_t tl_reg_h2d;
+  tlul_pkg::tl_d2h_t tl_reg_d2h;
+
+  assign tl_reg_h2d = tl_i;
+  assign tl_o       = tl_reg_d2h;
+
+  tlul_adapter_reg #(
+    .RegAw(AW),
+    .RegDw(DW)
+  ) u_reg_if (
+    .clk_i,
+    .rst_ni,
+
+    .tl_i (tl_reg_h2d),
+    .tl_o (tl_reg_d2h),
+
+    .we_o    (reg_we),
+    .re_o    (reg_re),
+    .addr_o  (reg_addr),
+    .wdata_o (reg_wdata),
+    .be_o    (reg_be),
+    .rdata_i (reg_rdata),
+    .error_i (reg_error)
+  );
+
+  assign reg_rdata = reg_rdata_next ;
+  assign reg_error = (devmode_i & addrmiss) | wr_err ;
+
+  // Define SW related signals
+  // Format: <reg>_<field>_{wd|we|qs}
+  //        or <reg>_{wd|we|qs} if field == 1 or 0
+  logic intr_state_classa_qs;
+  logic intr_state_classa_wd;
+  logic intr_state_classa_we;
+  logic intr_state_classb_qs;
+  logic intr_state_classb_wd;
+  logic intr_state_classb_we;
+  logic intr_state_classc_qs;
+  logic intr_state_classc_wd;
+  logic intr_state_classc_we;
+  logic intr_state_classd_qs;
+  logic intr_state_classd_wd;
+  logic intr_state_classd_we;
+  logic intr_enable_classa_qs;
+  logic intr_enable_classa_wd;
+  logic intr_enable_classa_we;
+  logic intr_enable_classb_qs;
+  logic intr_enable_classb_wd;
+  logic intr_enable_classb_we;
+  logic intr_enable_classc_qs;
+  logic intr_enable_classc_wd;
+  logic intr_enable_classc_we;
+  logic intr_enable_classd_qs;
+  logic intr_enable_classd_wd;
+  logic intr_enable_classd_we;
+  logic intr_test_classa_wd;
+  logic intr_test_classa_we;
+  logic intr_test_classb_wd;
+  logic intr_test_classb_we;
+  logic intr_test_classc_wd;
+  logic intr_test_classc_we;
+  logic intr_test_classd_wd;
+  logic intr_test_classd_we;
+  logic regen_qs;
+  logic regen_wd;
+  logic regen_we;
+  logic [23:0] ping_timeout_cyc_qs;
+  logic [23:0] ping_timeout_cyc_wd;
+  logic ping_timeout_cyc_we;
+  logic alert_en_qs;
+  logic alert_en_wd;
+  logic alert_en_we;
+  logic [1:0] alert_class_qs;
+  logic [1:0] alert_class_wd;
+  logic alert_class_we;
+  logic alert_cause_qs;
+  logic alert_cause_wd;
+  logic alert_cause_we;
+  logic loc_alert_en_en_la0_qs;
+  logic loc_alert_en_en_la0_wd;
+  logic loc_alert_en_en_la0_we;
+  logic loc_alert_en_en_la1_qs;
+  logic loc_alert_en_en_la1_wd;
+  logic loc_alert_en_en_la1_we;
+  logic loc_alert_en_en_la2_qs;
+  logic loc_alert_en_en_la2_wd;
+  logic loc_alert_en_en_la2_we;
+  logic loc_alert_en_en_la3_qs;
+  logic loc_alert_en_en_la3_wd;
+  logic loc_alert_en_en_la3_we;
+  logic [1:0] loc_alert_class_class_la0_qs;
+  logic [1:0] loc_alert_class_class_la0_wd;
+  logic loc_alert_class_class_la0_we;
+  logic [1:0] loc_alert_class_class_la1_qs;
+  logic [1:0] loc_alert_class_class_la1_wd;
+  logic loc_alert_class_class_la1_we;
+  logic [1:0] loc_alert_class_class_la2_qs;
+  logic [1:0] loc_alert_class_class_la2_wd;
+  logic loc_alert_class_class_la2_we;
+  logic [1:0] loc_alert_class_class_la3_qs;
+  logic [1:0] loc_alert_class_class_la3_wd;
+  logic loc_alert_class_class_la3_we;
+  logic loc_alert_cause_la0_qs;
+  logic loc_alert_cause_la0_wd;
+  logic loc_alert_cause_la0_we;
+  logic loc_alert_cause_la1_qs;
+  logic loc_alert_cause_la1_wd;
+  logic loc_alert_cause_la1_we;
+  logic loc_alert_cause_la2_qs;
+  logic loc_alert_cause_la2_wd;
+  logic loc_alert_cause_la2_we;
+  logic loc_alert_cause_la3_qs;
+  logic loc_alert_cause_la3_wd;
+  logic loc_alert_cause_la3_we;
+  logic classa_ctrl_en_qs;
+  logic classa_ctrl_en_wd;
+  logic classa_ctrl_en_we;
+  logic classa_ctrl_lock_qs;
+  logic classa_ctrl_lock_wd;
+  logic classa_ctrl_lock_we;
+  logic classa_ctrl_en_e0_qs;
+  logic classa_ctrl_en_e0_wd;
+  logic classa_ctrl_en_e0_we;
+  logic classa_ctrl_en_e1_qs;
+  logic classa_ctrl_en_e1_wd;
+  logic classa_ctrl_en_e1_we;
+  logic classa_ctrl_en_e2_qs;
+  logic classa_ctrl_en_e2_wd;
+  logic classa_ctrl_en_e2_we;
+  logic classa_ctrl_en_e3_qs;
+  logic classa_ctrl_en_e3_wd;
+  logic classa_ctrl_en_e3_we;
+  logic [1:0] classa_ctrl_map_e0_qs;
+  logic [1:0] classa_ctrl_map_e0_wd;
+  logic classa_ctrl_map_e0_we;
+  logic [1:0] classa_ctrl_map_e1_qs;
+  logic [1:0] classa_ctrl_map_e1_wd;
+  logic classa_ctrl_map_e1_we;
+  logic [1:0] classa_ctrl_map_e2_qs;
+  logic [1:0] classa_ctrl_map_e2_wd;
+  logic classa_ctrl_map_e2_we;
+  logic [1:0] classa_ctrl_map_e3_qs;
+  logic [1:0] classa_ctrl_map_e3_wd;
+  logic classa_ctrl_map_e3_we;
+  logic classa_clren_qs;
+  logic classa_clren_wd;
+  logic classa_clren_we;
+  logic classa_clr_wd;
+  logic classa_clr_we;
+  logic [15:0] classa_accum_cnt_qs;
+  logic classa_accum_cnt_re;
+  logic [15:0] classa_accum_thresh_qs;
+  logic [15:0] classa_accum_thresh_wd;
+  logic classa_accum_thresh_we;
+  logic [31:0] classa_timeout_cyc_qs;
+  logic [31:0] classa_timeout_cyc_wd;
+  logic classa_timeout_cyc_we;
+  logic [31:0] classa_phase0_cyc_qs;
+  logic [31:0] classa_phase0_cyc_wd;
+  logic classa_phase0_cyc_we;
+  logic [31:0] classa_phase1_cyc_qs;
+  logic [31:0] classa_phase1_cyc_wd;
+  logic classa_phase1_cyc_we;
+  logic [31:0] classa_phase2_cyc_qs;
+  logic [31:0] classa_phase2_cyc_wd;
+  logic classa_phase2_cyc_we;
+  logic [31:0] classa_phase3_cyc_qs;
+  logic [31:0] classa_phase3_cyc_wd;
+  logic classa_phase3_cyc_we;
+  logic [31:0] classa_esc_cnt_qs;
+  logic classa_esc_cnt_re;
+  logic [2:0] classa_state_qs;
+  logic classa_state_re;
+  logic classb_ctrl_en_qs;
+  logic classb_ctrl_en_wd;
+  logic classb_ctrl_en_we;
+  logic classb_ctrl_lock_qs;
+  logic classb_ctrl_lock_wd;
+  logic classb_ctrl_lock_we;
+  logic classb_ctrl_en_e0_qs;
+  logic classb_ctrl_en_e0_wd;
+  logic classb_ctrl_en_e0_we;
+  logic classb_ctrl_en_e1_qs;
+  logic classb_ctrl_en_e1_wd;
+  logic classb_ctrl_en_e1_we;
+  logic classb_ctrl_en_e2_qs;
+  logic classb_ctrl_en_e2_wd;
+  logic classb_ctrl_en_e2_we;
+  logic classb_ctrl_en_e3_qs;
+  logic classb_ctrl_en_e3_wd;
+  logic classb_ctrl_en_e3_we;
+  logic [1:0] classb_ctrl_map_e0_qs;
+  logic [1:0] classb_ctrl_map_e0_wd;
+  logic classb_ctrl_map_e0_we;
+  logic [1:0] classb_ctrl_map_e1_qs;
+  logic [1:0] classb_ctrl_map_e1_wd;
+  logic classb_ctrl_map_e1_we;
+  logic [1:0] classb_ctrl_map_e2_qs;
+  logic [1:0] classb_ctrl_map_e2_wd;
+  logic classb_ctrl_map_e2_we;
+  logic [1:0] classb_ctrl_map_e3_qs;
+  logic [1:0] classb_ctrl_map_e3_wd;
+  logic classb_ctrl_map_e3_we;
+  logic classb_clren_qs;
+  logic classb_clren_wd;
+  logic classb_clren_we;
+  logic classb_clr_wd;
+  logic classb_clr_we;
+  logic [15:0] classb_accum_cnt_qs;
+  logic classb_accum_cnt_re;
+  logic [15:0] classb_accum_thresh_qs;
+  logic [15:0] classb_accum_thresh_wd;
+  logic classb_accum_thresh_we;
+  logic [31:0] classb_timeout_cyc_qs;
+  logic [31:0] classb_timeout_cyc_wd;
+  logic classb_timeout_cyc_we;
+  logic [31:0] classb_phase0_cyc_qs;
+  logic [31:0] classb_phase0_cyc_wd;
+  logic classb_phase0_cyc_we;
+  logic [31:0] classb_phase1_cyc_qs;
+  logic [31:0] classb_phase1_cyc_wd;
+  logic classb_phase1_cyc_we;
+  logic [31:0] classb_phase2_cyc_qs;
+  logic [31:0] classb_phase2_cyc_wd;
+  logic classb_phase2_cyc_we;
+  logic [31:0] classb_phase3_cyc_qs;
+  logic [31:0] classb_phase3_cyc_wd;
+  logic classb_phase3_cyc_we;
+  logic [31:0] classb_esc_cnt_qs;
+  logic classb_esc_cnt_re;
+  logic [2:0] classb_state_qs;
+  logic classb_state_re;
+  logic classc_ctrl_en_qs;
+  logic classc_ctrl_en_wd;
+  logic classc_ctrl_en_we;
+  logic classc_ctrl_lock_qs;
+  logic classc_ctrl_lock_wd;
+  logic classc_ctrl_lock_we;
+  logic classc_ctrl_en_e0_qs;
+  logic classc_ctrl_en_e0_wd;
+  logic classc_ctrl_en_e0_we;
+  logic classc_ctrl_en_e1_qs;
+  logic classc_ctrl_en_e1_wd;
+  logic classc_ctrl_en_e1_we;
+  logic classc_ctrl_en_e2_qs;
+  logic classc_ctrl_en_e2_wd;
+  logic classc_ctrl_en_e2_we;
+  logic classc_ctrl_en_e3_qs;
+  logic classc_ctrl_en_e3_wd;
+  logic classc_ctrl_en_e3_we;
+  logic [1:0] classc_ctrl_map_e0_qs;
+  logic [1:0] classc_ctrl_map_e0_wd;
+  logic classc_ctrl_map_e0_we;
+  logic [1:0] classc_ctrl_map_e1_qs;
+  logic [1:0] classc_ctrl_map_e1_wd;
+  logic classc_ctrl_map_e1_we;
+  logic [1:0] classc_ctrl_map_e2_qs;
+  logic [1:0] classc_ctrl_map_e2_wd;
+  logic classc_ctrl_map_e2_we;
+  logic [1:0] classc_ctrl_map_e3_qs;
+  logic [1:0] classc_ctrl_map_e3_wd;
+  logic classc_ctrl_map_e3_we;
+  logic classc_clren_qs;
+  logic classc_clren_wd;
+  logic classc_clren_we;
+  logic classc_clr_wd;
+  logic classc_clr_we;
+  logic [15:0] classc_accum_cnt_qs;
+  logic classc_accum_cnt_re;
+  logic [15:0] classc_accum_thresh_qs;
+  logic [15:0] classc_accum_thresh_wd;
+  logic classc_accum_thresh_we;
+  logic [31:0] classc_timeout_cyc_qs;
+  logic [31:0] classc_timeout_cyc_wd;
+  logic classc_timeout_cyc_we;
+  logic [31:0] classc_phase0_cyc_qs;
+  logic [31:0] classc_phase0_cyc_wd;
+  logic classc_phase0_cyc_we;
+  logic [31:0] classc_phase1_cyc_qs;
+  logic [31:0] classc_phase1_cyc_wd;
+  logic classc_phase1_cyc_we;
+  logic [31:0] classc_phase2_cyc_qs;
+  logic [31:0] classc_phase2_cyc_wd;
+  logic classc_phase2_cyc_we;
+  logic [31:0] classc_phase3_cyc_qs;
+  logic [31:0] classc_phase3_cyc_wd;
+  logic classc_phase3_cyc_we;
+  logic [31:0] classc_esc_cnt_qs;
+  logic classc_esc_cnt_re;
+  logic [2:0] classc_state_qs;
+  logic classc_state_re;
+  logic classd_ctrl_en_qs;
+  logic classd_ctrl_en_wd;
+  logic classd_ctrl_en_we;
+  logic classd_ctrl_lock_qs;
+  logic classd_ctrl_lock_wd;
+  logic classd_ctrl_lock_we;
+  logic classd_ctrl_en_e0_qs;
+  logic classd_ctrl_en_e0_wd;
+  logic classd_ctrl_en_e0_we;
+  logic classd_ctrl_en_e1_qs;
+  logic classd_ctrl_en_e1_wd;
+  logic classd_ctrl_en_e1_we;
+  logic classd_ctrl_en_e2_qs;
+  logic classd_ctrl_en_e2_wd;
+  logic classd_ctrl_en_e2_we;
+  logic classd_ctrl_en_e3_qs;
+  logic classd_ctrl_en_e3_wd;
+  logic classd_ctrl_en_e3_we;
+  logic [1:0] classd_ctrl_map_e0_qs;
+  logic [1:0] classd_ctrl_map_e0_wd;
+  logic classd_ctrl_map_e0_we;
+  logic [1:0] classd_ctrl_map_e1_qs;
+  logic [1:0] classd_ctrl_map_e1_wd;
+  logic classd_ctrl_map_e1_we;
+  logic [1:0] classd_ctrl_map_e2_qs;
+  logic [1:0] classd_ctrl_map_e2_wd;
+  logic classd_ctrl_map_e2_we;
+  logic [1:0] classd_ctrl_map_e3_qs;
+  logic [1:0] classd_ctrl_map_e3_wd;
+  logic classd_ctrl_map_e3_we;
+  logic classd_clren_qs;
+  logic classd_clren_wd;
+  logic classd_clren_we;
+  logic classd_clr_wd;
+  logic classd_clr_we;
+  logic [15:0] classd_accum_cnt_qs;
+  logic classd_accum_cnt_re;
+  logic [15:0] classd_accum_thresh_qs;
+  logic [15:0] classd_accum_thresh_wd;
+  logic classd_accum_thresh_we;
+  logic [31:0] classd_timeout_cyc_qs;
+  logic [31:0] classd_timeout_cyc_wd;
+  logic classd_timeout_cyc_we;
+  logic [31:0] classd_phase0_cyc_qs;
+  logic [31:0] classd_phase0_cyc_wd;
+  logic classd_phase0_cyc_we;
+  logic [31:0] classd_phase1_cyc_qs;
+  logic [31:0] classd_phase1_cyc_wd;
+  logic classd_phase1_cyc_we;
+  logic [31:0] classd_phase2_cyc_qs;
+  logic [31:0] classd_phase2_cyc_wd;
+  logic classd_phase2_cyc_we;
+  logic [31:0] classd_phase3_cyc_qs;
+  logic [31:0] classd_phase3_cyc_wd;
+  logic classd_phase3_cyc_we;
+  logic [31:0] classd_esc_cnt_qs;
+  logic classd_esc_cnt_re;
+  logic [2:0] classd_state_qs;
+  logic classd_state_re;
+
+  // Register instances
+  // R[intr_state]: V(False)
+
+  //   F[classa]: 0:0
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h0)
+  ) u_intr_state_classa (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (intr_state_classa_we),
+    .wd     (intr_state_classa_wd),
+
+    // from internal hardware
+    .de     (hw2reg.intr_state.classa.de),
+    .d      (hw2reg.intr_state.classa.d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.intr_state.classa.q ),
+
+    // to register interface (read)
+    .qs     (intr_state_classa_qs)
+  );
+
+
+  //   F[classb]: 1:1
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h0)
+  ) u_intr_state_classb (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (intr_state_classb_we),
+    .wd     (intr_state_classb_wd),
+
+    // from internal hardware
+    .de     (hw2reg.intr_state.classb.de),
+    .d      (hw2reg.intr_state.classb.d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.intr_state.classb.q ),
+
+    // to register interface (read)
+    .qs     (intr_state_classb_qs)
+  );
+
+
+  //   F[classc]: 2:2
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h0)
+  ) u_intr_state_classc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (intr_state_classc_we),
+    .wd     (intr_state_classc_wd),
+
+    // from internal hardware
+    .de     (hw2reg.intr_state.classc.de),
+    .d      (hw2reg.intr_state.classc.d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.intr_state.classc.q ),
+
+    // to register interface (read)
+    .qs     (intr_state_classc_qs)
+  );
+
+
+  //   F[classd]: 3:3
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h0)
+  ) u_intr_state_classd (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (intr_state_classd_we),
+    .wd     (intr_state_classd_wd),
+
+    // from internal hardware
+    .de     (hw2reg.intr_state.classd.de),
+    .d      (hw2reg.intr_state.classd.d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.intr_state.classd.q ),
+
+    // to register interface (read)
+    .qs     (intr_state_classd_qs)
+  );
+
+
+  // R[intr_enable]: V(False)
+
+  //   F[classa]: 0:0
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_intr_enable_classa (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (intr_enable_classa_we),
+    .wd     (intr_enable_classa_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.intr_enable.classa.q ),
+
+    // to register interface (read)
+    .qs     (intr_enable_classa_qs)
+  );
+
+
+  //   F[classb]: 1:1
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_intr_enable_classb (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (intr_enable_classb_we),
+    .wd     (intr_enable_classb_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.intr_enable.classb.q ),
+
+    // to register interface (read)
+    .qs     (intr_enable_classb_qs)
+  );
+
+
+  //   F[classc]: 2:2
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_intr_enable_classc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (intr_enable_classc_we),
+    .wd     (intr_enable_classc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.intr_enable.classc.q ),
+
+    // to register interface (read)
+    .qs     (intr_enable_classc_qs)
+  );
+
+
+  //   F[classd]: 3:3
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_intr_enable_classd (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (intr_enable_classd_we),
+    .wd     (intr_enable_classd_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.intr_enable.classd.q ),
+
+    // to register interface (read)
+    .qs     (intr_enable_classd_qs)
+  );
+
+
+  // R[intr_test]: V(True)
+
+  //   F[classa]: 0:0
+  prim_subreg_ext #(
+    .DW    (1)
+  ) u_intr_test_classa (
+    .re     (1'b0),
+    .we     (intr_test_classa_we),
+    .wd     (intr_test_classa_wd),
+    .d      ('0),
+    .qre    (),
+    .qe     (reg2hw.intr_test.classa.qe),
+    .q      (reg2hw.intr_test.classa.q ),
+    .qs     ()
+  );
+
+
+  //   F[classb]: 1:1
+  prim_subreg_ext #(
+    .DW    (1)
+  ) u_intr_test_classb (
+    .re     (1'b0),
+    .we     (intr_test_classb_we),
+    .wd     (intr_test_classb_wd),
+    .d      ('0),
+    .qre    (),
+    .qe     (reg2hw.intr_test.classb.qe),
+    .q      (reg2hw.intr_test.classb.q ),
+    .qs     ()
+  );
+
+
+  //   F[classc]: 2:2
+  prim_subreg_ext #(
+    .DW    (1)
+  ) u_intr_test_classc (
+    .re     (1'b0),
+    .we     (intr_test_classc_we),
+    .wd     (intr_test_classc_wd),
+    .d      ('0),
+    .qre    (),
+    .qe     (reg2hw.intr_test.classc.qe),
+    .q      (reg2hw.intr_test.classc.q ),
+    .qs     ()
+  );
+
+
+  //   F[classd]: 3:3
+  prim_subreg_ext #(
+    .DW    (1)
+  ) u_intr_test_classd (
+    .re     (1'b0),
+    .we     (intr_test_classd_we),
+    .wd     (intr_test_classd_wd),
+    .d      ('0),
+    .qre    (),
+    .qe     (reg2hw.intr_test.classd.qe),
+    .q      (reg2hw.intr_test.classd.q ),
+    .qs     ()
+  );
+
+
+  // R[regen]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h1)
+  ) u_regen (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (regen_we),
+    .wd     (regen_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.regen.q ),
+
+    // to register interface (read)
+    .qs     (regen_qs)
+  );
+
+
+  // R[ping_timeout_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (24),
+    .SWACCESS("RW"),
+    .RESVAL  (24'h20)
+  ) u_ping_timeout_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (ping_timeout_cyc_we & regen_qs),
+    .wd     (ping_timeout_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.ping_timeout_cyc.q ),
+
+    // to register interface (read)
+    .qs     (ping_timeout_cyc_qs)
+  );
+
+
+
+  // Subregister 0 of Multireg alert_en
+  // R[alert_en]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_alert_en (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (alert_en_we & regen_qs),
+    .wd     (alert_en_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.alert_en[0].q ),
+
+    // to register interface (read)
+    .qs     (alert_en_qs)
+  );
+
+
+
+  // Subregister 0 of Multireg alert_class
+  // R[alert_class]: V(False)
+
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_alert_class (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (alert_class_we & regen_qs),
+    .wd     (alert_class_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.alert_class[0].q ),
+
+    // to register interface (read)
+    .qs     (alert_class_qs)
+  );
+
+
+
+  // Subregister 0 of Multireg alert_cause
+  // R[alert_cause]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h0)
+  ) u_alert_cause (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (alert_cause_we),
+    .wd     (alert_cause_wd),
+
+    // from internal hardware
+    .de     (hw2reg.alert_cause[0].de),
+    .d      (hw2reg.alert_cause[0].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.alert_cause[0].q ),
+
+    // to register interface (read)
+    .qs     (alert_cause_qs)
+  );
+
+
+
+  // Subregister 0 of Multireg loc_alert_en
+  // R[loc_alert_en]: V(False)
+
+  // F[en_la0]: 0:0
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_loc_alert_en_en_la0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (loc_alert_en_en_la0_we & regen_qs),
+    .wd     (loc_alert_en_en_la0_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_en[0].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_en_en_la0_qs)
+  );
+
+
+  // F[en_la1]: 1:1
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_loc_alert_en_en_la1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (loc_alert_en_en_la1_we & regen_qs),
+    .wd     (loc_alert_en_en_la1_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_en[1].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_en_en_la1_qs)
+  );
+
+
+  // F[en_la2]: 2:2
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_loc_alert_en_en_la2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (loc_alert_en_en_la2_we & regen_qs),
+    .wd     (loc_alert_en_en_la2_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_en[2].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_en_en_la2_qs)
+  );
+
+
+  // F[en_la3]: 3:3
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_loc_alert_en_en_la3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (loc_alert_en_en_la3_we & regen_qs),
+    .wd     (loc_alert_en_en_la3_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_en[3].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_en_en_la3_qs)
+  );
+
+
+
+
+  // Subregister 0 of Multireg loc_alert_class
+  // R[loc_alert_class]: V(False)
+
+  // F[class_la0]: 1:0
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_loc_alert_class_class_la0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (loc_alert_class_class_la0_we & regen_qs),
+    .wd     (loc_alert_class_class_la0_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_class[0].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_class_class_la0_qs)
+  );
+
+
+  // F[class_la1]: 3:2
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_loc_alert_class_class_la1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (loc_alert_class_class_la1_we & regen_qs),
+    .wd     (loc_alert_class_class_la1_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_class[1].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_class_class_la1_qs)
+  );
+
+
+  // F[class_la2]: 5:4
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_loc_alert_class_class_la2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (loc_alert_class_class_la2_we & regen_qs),
+    .wd     (loc_alert_class_class_la2_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_class[2].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_class_class_la2_qs)
+  );
+
+
+  // F[class_la3]: 7:6
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_loc_alert_class_class_la3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (loc_alert_class_class_la3_we & regen_qs),
+    .wd     (loc_alert_class_class_la3_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_class[3].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_class_class_la3_qs)
+  );
+
+
+
+
+  // Subregister 0 of Multireg loc_alert_cause
+  // R[loc_alert_cause]: V(False)
+
+  // F[la0]: 0:0
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h0)
+  ) u_loc_alert_cause_la0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (loc_alert_cause_la0_we),
+    .wd     (loc_alert_cause_la0_wd),
+
+    // from internal hardware
+    .de     (hw2reg.loc_alert_cause[0].de),
+    .d      (hw2reg.loc_alert_cause[0].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_cause[0].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_cause_la0_qs)
+  );
+
+
+  // F[la1]: 1:1
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h0)
+  ) u_loc_alert_cause_la1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (loc_alert_cause_la1_we),
+    .wd     (loc_alert_cause_la1_wd),
+
+    // from internal hardware
+    .de     (hw2reg.loc_alert_cause[1].de),
+    .d      (hw2reg.loc_alert_cause[1].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_cause[1].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_cause_la1_qs)
+  );
+
+
+  // F[la2]: 2:2
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h0)
+  ) u_loc_alert_cause_la2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (loc_alert_cause_la2_we),
+    .wd     (loc_alert_cause_la2_wd),
+
+    // from internal hardware
+    .de     (hw2reg.loc_alert_cause[2].de),
+    .d      (hw2reg.loc_alert_cause[2].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_cause[2].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_cause_la2_qs)
+  );
+
+
+  // F[la3]: 3:3
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h0)
+  ) u_loc_alert_cause_la3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (loc_alert_cause_la3_we),
+    .wd     (loc_alert_cause_la3_wd),
+
+    // from internal hardware
+    .de     (hw2reg.loc_alert_cause[3].de),
+    .d      (hw2reg.loc_alert_cause[3].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.loc_alert_cause[3].q ),
+
+    // to register interface (read)
+    .qs     (loc_alert_cause_la3_qs)
+  );
+
+
+
+  // R[classa_ctrl]: V(False)
+
+  //   F[en]: 0:0
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_classa_ctrl_en (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_ctrl_en_we & regen_qs),
+    .wd     (classa_ctrl_en_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_ctrl.en.q ),
+
+    // to register interface (read)
+    .qs     (classa_ctrl_en_qs)
+  );
+
+
+  //   F[lock]: 1:1
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_classa_ctrl_lock (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_ctrl_lock_we & regen_qs),
+    .wd     (classa_ctrl_lock_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_ctrl.lock.q ),
+
+    // to register interface (read)
+    .qs     (classa_ctrl_lock_qs)
+  );
+
+
+  //   F[en_e0]: 2:2
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classa_ctrl_en_e0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_ctrl_en_e0_we & regen_qs),
+    .wd     (classa_ctrl_en_e0_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_ctrl.en_e0.q ),
+
+    // to register interface (read)
+    .qs     (classa_ctrl_en_e0_qs)
+  );
+
+
+  //   F[en_e1]: 3:3
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classa_ctrl_en_e1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_ctrl_en_e1_we & regen_qs),
+    .wd     (classa_ctrl_en_e1_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_ctrl.en_e1.q ),
+
+    // to register interface (read)
+    .qs     (classa_ctrl_en_e1_qs)
+  );
+
+
+  //   F[en_e2]: 4:4
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classa_ctrl_en_e2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_ctrl_en_e2_we & regen_qs),
+    .wd     (classa_ctrl_en_e2_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_ctrl.en_e2.q ),
+
+    // to register interface (read)
+    .qs     (classa_ctrl_en_e2_qs)
+  );
+
+
+  //   F[en_e3]: 5:5
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classa_ctrl_en_e3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_ctrl_en_e3_we & regen_qs),
+    .wd     (classa_ctrl_en_e3_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_ctrl.en_e3.q ),
+
+    // to register interface (read)
+    .qs     (classa_ctrl_en_e3_qs)
+  );
+
+
+  //   F[map_e0]: 7:6
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_classa_ctrl_map_e0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_ctrl_map_e0_we & regen_qs),
+    .wd     (classa_ctrl_map_e0_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_ctrl.map_e0.q ),
+
+    // to register interface (read)
+    .qs     (classa_ctrl_map_e0_qs)
+  );
+
+
+  //   F[map_e1]: 9:8
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h1)
+  ) u_classa_ctrl_map_e1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_ctrl_map_e1_we & regen_qs),
+    .wd     (classa_ctrl_map_e1_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_ctrl.map_e1.q ),
+
+    // to register interface (read)
+    .qs     (classa_ctrl_map_e1_qs)
+  );
+
+
+  //   F[map_e2]: 11:10
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h2)
+  ) u_classa_ctrl_map_e2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_ctrl_map_e2_we & regen_qs),
+    .wd     (classa_ctrl_map_e2_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_ctrl.map_e2.q ),
+
+    // to register interface (read)
+    .qs     (classa_ctrl_map_e2_qs)
+  );
+
+
+  //   F[map_e3]: 13:12
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h3)
+  ) u_classa_ctrl_map_e3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_ctrl_map_e3_we & regen_qs),
+    .wd     (classa_ctrl_map_e3_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_ctrl.map_e3.q ),
+
+    // to register interface (read)
+    .qs     (classa_ctrl_map_e3_qs)
+  );
+
+
+  // R[classa_clren]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h1)
+  ) u_classa_clren (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (classa_clren_we),
+    .wd     (classa_clren_wd),
+
+    // from internal hardware
+    .de     (hw2reg.classa_clren.de),
+    .d      (hw2reg.classa_clren.d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (classa_clren_qs)
+  );
+
+
+  // R[classa_clr]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("WO"),
+    .RESVAL  (1'h0)
+  ) u_classa_clr (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_clr_we & classa_clren_qs),
+    .wd     (classa_clr_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (reg2hw.classa_clr.qe),
+    .q      (reg2hw.classa_clr.q ),
+
+    .qs     ()
+  );
+
+
+  // R[classa_accum_cnt]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (16)
+  ) u_classa_accum_cnt (
+    .re     (classa_accum_cnt_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classa_accum_cnt.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classa_accum_cnt_qs)
+  );
+
+
+  // R[classa_accum_thresh]: V(False)
+
+  prim_subreg #(
+    .DW      (16),
+    .SWACCESS("RW"),
+    .RESVAL  (16'h0)
+  ) u_classa_accum_thresh (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_accum_thresh_we & regen_qs),
+    .wd     (classa_accum_thresh_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_accum_thresh.q ),
+
+    // to register interface (read)
+    .qs     (classa_accum_thresh_qs)
+  );
+
+
+  // R[classa_timeout_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classa_timeout_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_timeout_cyc_we & regen_qs),
+    .wd     (classa_timeout_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_timeout_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classa_timeout_cyc_qs)
+  );
+
+
+  // R[classa_phase0_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classa_phase0_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_phase0_cyc_we & regen_qs),
+    .wd     (classa_phase0_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_phase0_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classa_phase0_cyc_qs)
+  );
+
+
+  // R[classa_phase1_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classa_phase1_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_phase1_cyc_we & regen_qs),
+    .wd     (classa_phase1_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_phase1_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classa_phase1_cyc_qs)
+  );
+
+
+  // R[classa_phase2_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classa_phase2_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_phase2_cyc_we & regen_qs),
+    .wd     (classa_phase2_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_phase2_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classa_phase2_cyc_qs)
+  );
+
+
+  // R[classa_phase3_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classa_phase3_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classa_phase3_cyc_we & regen_qs),
+    .wd     (classa_phase3_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classa_phase3_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classa_phase3_cyc_qs)
+  );
+
+
+  // R[classa_esc_cnt]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (32)
+  ) u_classa_esc_cnt (
+    .re     (classa_esc_cnt_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classa_esc_cnt.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classa_esc_cnt_qs)
+  );
+
+
+  // R[classa_state]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (3)
+  ) u_classa_state (
+    .re     (classa_state_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classa_state.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classa_state_qs)
+  );
+
+
+  // R[classb_ctrl]: V(False)
+
+  //   F[en]: 0:0
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_classb_ctrl_en (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_ctrl_en_we & regen_qs),
+    .wd     (classb_ctrl_en_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_ctrl.en.q ),
+
+    // to register interface (read)
+    .qs     (classb_ctrl_en_qs)
+  );
+
+
+  //   F[lock]: 1:1
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_classb_ctrl_lock (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_ctrl_lock_we & regen_qs),
+    .wd     (classb_ctrl_lock_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_ctrl.lock.q ),
+
+    // to register interface (read)
+    .qs     (classb_ctrl_lock_qs)
+  );
+
+
+  //   F[en_e0]: 2:2
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classb_ctrl_en_e0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_ctrl_en_e0_we & regen_qs),
+    .wd     (classb_ctrl_en_e0_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_ctrl.en_e0.q ),
+
+    // to register interface (read)
+    .qs     (classb_ctrl_en_e0_qs)
+  );
+
+
+  //   F[en_e1]: 3:3
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classb_ctrl_en_e1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_ctrl_en_e1_we & regen_qs),
+    .wd     (classb_ctrl_en_e1_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_ctrl.en_e1.q ),
+
+    // to register interface (read)
+    .qs     (classb_ctrl_en_e1_qs)
+  );
+
+
+  //   F[en_e2]: 4:4
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classb_ctrl_en_e2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_ctrl_en_e2_we & regen_qs),
+    .wd     (classb_ctrl_en_e2_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_ctrl.en_e2.q ),
+
+    // to register interface (read)
+    .qs     (classb_ctrl_en_e2_qs)
+  );
+
+
+  //   F[en_e3]: 5:5
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classb_ctrl_en_e3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_ctrl_en_e3_we & regen_qs),
+    .wd     (classb_ctrl_en_e3_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_ctrl.en_e3.q ),
+
+    // to register interface (read)
+    .qs     (classb_ctrl_en_e3_qs)
+  );
+
+
+  //   F[map_e0]: 7:6
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_classb_ctrl_map_e0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_ctrl_map_e0_we & regen_qs),
+    .wd     (classb_ctrl_map_e0_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_ctrl.map_e0.q ),
+
+    // to register interface (read)
+    .qs     (classb_ctrl_map_e0_qs)
+  );
+
+
+  //   F[map_e1]: 9:8
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h1)
+  ) u_classb_ctrl_map_e1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_ctrl_map_e1_we & regen_qs),
+    .wd     (classb_ctrl_map_e1_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_ctrl.map_e1.q ),
+
+    // to register interface (read)
+    .qs     (classb_ctrl_map_e1_qs)
+  );
+
+
+  //   F[map_e2]: 11:10
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h2)
+  ) u_classb_ctrl_map_e2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_ctrl_map_e2_we & regen_qs),
+    .wd     (classb_ctrl_map_e2_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_ctrl.map_e2.q ),
+
+    // to register interface (read)
+    .qs     (classb_ctrl_map_e2_qs)
+  );
+
+
+  //   F[map_e3]: 13:12
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h3)
+  ) u_classb_ctrl_map_e3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_ctrl_map_e3_we & regen_qs),
+    .wd     (classb_ctrl_map_e3_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_ctrl.map_e3.q ),
+
+    // to register interface (read)
+    .qs     (classb_ctrl_map_e3_qs)
+  );
+
+
+  // R[classb_clren]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h1)
+  ) u_classb_clren (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (classb_clren_we),
+    .wd     (classb_clren_wd),
+
+    // from internal hardware
+    .de     (hw2reg.classb_clren.de),
+    .d      (hw2reg.classb_clren.d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (classb_clren_qs)
+  );
+
+
+  // R[classb_clr]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("WO"),
+    .RESVAL  (1'h0)
+  ) u_classb_clr (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_clr_we & classb_clren_qs),
+    .wd     (classb_clr_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (reg2hw.classb_clr.qe),
+    .q      (reg2hw.classb_clr.q ),
+
+    .qs     ()
+  );
+
+
+  // R[classb_accum_cnt]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (16)
+  ) u_classb_accum_cnt (
+    .re     (classb_accum_cnt_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classb_accum_cnt.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classb_accum_cnt_qs)
+  );
+
+
+  // R[classb_accum_thresh]: V(False)
+
+  prim_subreg #(
+    .DW      (16),
+    .SWACCESS("RW"),
+    .RESVAL  (16'h0)
+  ) u_classb_accum_thresh (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_accum_thresh_we & regen_qs),
+    .wd     (classb_accum_thresh_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_accum_thresh.q ),
+
+    // to register interface (read)
+    .qs     (classb_accum_thresh_qs)
+  );
+
+
+  // R[classb_timeout_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classb_timeout_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_timeout_cyc_we & regen_qs),
+    .wd     (classb_timeout_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_timeout_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classb_timeout_cyc_qs)
+  );
+
+
+  // R[classb_phase0_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classb_phase0_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_phase0_cyc_we & regen_qs),
+    .wd     (classb_phase0_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_phase0_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classb_phase0_cyc_qs)
+  );
+
+
+  // R[classb_phase1_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classb_phase1_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_phase1_cyc_we & regen_qs),
+    .wd     (classb_phase1_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_phase1_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classb_phase1_cyc_qs)
+  );
+
+
+  // R[classb_phase2_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classb_phase2_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_phase2_cyc_we & regen_qs),
+    .wd     (classb_phase2_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_phase2_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classb_phase2_cyc_qs)
+  );
+
+
+  // R[classb_phase3_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classb_phase3_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classb_phase3_cyc_we & regen_qs),
+    .wd     (classb_phase3_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classb_phase3_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classb_phase3_cyc_qs)
+  );
+
+
+  // R[classb_esc_cnt]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (32)
+  ) u_classb_esc_cnt (
+    .re     (classb_esc_cnt_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classb_esc_cnt.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classb_esc_cnt_qs)
+  );
+
+
+  // R[classb_state]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (3)
+  ) u_classb_state (
+    .re     (classb_state_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classb_state.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classb_state_qs)
+  );
+
+
+  // R[classc_ctrl]: V(False)
+
+  //   F[en]: 0:0
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_classc_ctrl_en (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_ctrl_en_we & regen_qs),
+    .wd     (classc_ctrl_en_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_ctrl.en.q ),
+
+    // to register interface (read)
+    .qs     (classc_ctrl_en_qs)
+  );
+
+
+  //   F[lock]: 1:1
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_classc_ctrl_lock (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_ctrl_lock_we & regen_qs),
+    .wd     (classc_ctrl_lock_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_ctrl.lock.q ),
+
+    // to register interface (read)
+    .qs     (classc_ctrl_lock_qs)
+  );
+
+
+  //   F[en_e0]: 2:2
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classc_ctrl_en_e0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_ctrl_en_e0_we & regen_qs),
+    .wd     (classc_ctrl_en_e0_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_ctrl.en_e0.q ),
+
+    // to register interface (read)
+    .qs     (classc_ctrl_en_e0_qs)
+  );
+
+
+  //   F[en_e1]: 3:3
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classc_ctrl_en_e1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_ctrl_en_e1_we & regen_qs),
+    .wd     (classc_ctrl_en_e1_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_ctrl.en_e1.q ),
+
+    // to register interface (read)
+    .qs     (classc_ctrl_en_e1_qs)
+  );
+
+
+  //   F[en_e2]: 4:4
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classc_ctrl_en_e2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_ctrl_en_e2_we & regen_qs),
+    .wd     (classc_ctrl_en_e2_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_ctrl.en_e2.q ),
+
+    // to register interface (read)
+    .qs     (classc_ctrl_en_e2_qs)
+  );
+
+
+  //   F[en_e3]: 5:5
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classc_ctrl_en_e3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_ctrl_en_e3_we & regen_qs),
+    .wd     (classc_ctrl_en_e3_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_ctrl.en_e3.q ),
+
+    // to register interface (read)
+    .qs     (classc_ctrl_en_e3_qs)
+  );
+
+
+  //   F[map_e0]: 7:6
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_classc_ctrl_map_e0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_ctrl_map_e0_we & regen_qs),
+    .wd     (classc_ctrl_map_e0_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_ctrl.map_e0.q ),
+
+    // to register interface (read)
+    .qs     (classc_ctrl_map_e0_qs)
+  );
+
+
+  //   F[map_e1]: 9:8
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h1)
+  ) u_classc_ctrl_map_e1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_ctrl_map_e1_we & regen_qs),
+    .wd     (classc_ctrl_map_e1_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_ctrl.map_e1.q ),
+
+    // to register interface (read)
+    .qs     (classc_ctrl_map_e1_qs)
+  );
+
+
+  //   F[map_e2]: 11:10
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h2)
+  ) u_classc_ctrl_map_e2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_ctrl_map_e2_we & regen_qs),
+    .wd     (classc_ctrl_map_e2_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_ctrl.map_e2.q ),
+
+    // to register interface (read)
+    .qs     (classc_ctrl_map_e2_qs)
+  );
+
+
+  //   F[map_e3]: 13:12
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h3)
+  ) u_classc_ctrl_map_e3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_ctrl_map_e3_we & regen_qs),
+    .wd     (classc_ctrl_map_e3_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_ctrl.map_e3.q ),
+
+    // to register interface (read)
+    .qs     (classc_ctrl_map_e3_qs)
+  );
+
+
+  // R[classc_clren]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h1)
+  ) u_classc_clren (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (classc_clren_we),
+    .wd     (classc_clren_wd),
+
+    // from internal hardware
+    .de     (hw2reg.classc_clren.de),
+    .d      (hw2reg.classc_clren.d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (classc_clren_qs)
+  );
+
+
+  // R[classc_clr]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("WO"),
+    .RESVAL  (1'h0)
+  ) u_classc_clr (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_clr_we & classc_clren_qs),
+    .wd     (classc_clr_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (reg2hw.classc_clr.qe),
+    .q      (reg2hw.classc_clr.q ),
+
+    .qs     ()
+  );
+
+
+  // R[classc_accum_cnt]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (16)
+  ) u_classc_accum_cnt (
+    .re     (classc_accum_cnt_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classc_accum_cnt.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classc_accum_cnt_qs)
+  );
+
+
+  // R[classc_accum_thresh]: V(False)
+
+  prim_subreg #(
+    .DW      (16),
+    .SWACCESS("RW"),
+    .RESVAL  (16'h0)
+  ) u_classc_accum_thresh (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_accum_thresh_we & regen_qs),
+    .wd     (classc_accum_thresh_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_accum_thresh.q ),
+
+    // to register interface (read)
+    .qs     (classc_accum_thresh_qs)
+  );
+
+
+  // R[classc_timeout_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classc_timeout_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_timeout_cyc_we & regen_qs),
+    .wd     (classc_timeout_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_timeout_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classc_timeout_cyc_qs)
+  );
+
+
+  // R[classc_phase0_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classc_phase0_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_phase0_cyc_we & regen_qs),
+    .wd     (classc_phase0_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_phase0_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classc_phase0_cyc_qs)
+  );
+
+
+  // R[classc_phase1_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classc_phase1_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_phase1_cyc_we & regen_qs),
+    .wd     (classc_phase1_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_phase1_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classc_phase1_cyc_qs)
+  );
+
+
+  // R[classc_phase2_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classc_phase2_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_phase2_cyc_we & regen_qs),
+    .wd     (classc_phase2_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_phase2_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classc_phase2_cyc_qs)
+  );
+
+
+  // R[classc_phase3_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classc_phase3_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classc_phase3_cyc_we & regen_qs),
+    .wd     (classc_phase3_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classc_phase3_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classc_phase3_cyc_qs)
+  );
+
+
+  // R[classc_esc_cnt]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (32)
+  ) u_classc_esc_cnt (
+    .re     (classc_esc_cnt_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classc_esc_cnt.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classc_esc_cnt_qs)
+  );
+
+
+  // R[classc_state]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (3)
+  ) u_classc_state (
+    .re     (classc_state_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classc_state.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classc_state_qs)
+  );
+
+
+  // R[classd_ctrl]: V(False)
+
+  //   F[en]: 0:0
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_classd_ctrl_en (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_ctrl_en_we & regen_qs),
+    .wd     (classd_ctrl_en_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_ctrl.en.q ),
+
+    // to register interface (read)
+    .qs     (classd_ctrl_en_qs)
+  );
+
+
+  //   F[lock]: 1:1
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_classd_ctrl_lock (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_ctrl_lock_we & regen_qs),
+    .wd     (classd_ctrl_lock_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_ctrl.lock.q ),
+
+    // to register interface (read)
+    .qs     (classd_ctrl_lock_qs)
+  );
+
+
+  //   F[en_e0]: 2:2
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classd_ctrl_en_e0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_ctrl_en_e0_we & regen_qs),
+    .wd     (classd_ctrl_en_e0_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_ctrl.en_e0.q ),
+
+    // to register interface (read)
+    .qs     (classd_ctrl_en_e0_qs)
+  );
+
+
+  //   F[en_e1]: 3:3
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classd_ctrl_en_e1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_ctrl_en_e1_we & regen_qs),
+    .wd     (classd_ctrl_en_e1_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_ctrl.en_e1.q ),
+
+    // to register interface (read)
+    .qs     (classd_ctrl_en_e1_qs)
+  );
+
+
+  //   F[en_e2]: 4:4
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classd_ctrl_en_e2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_ctrl_en_e2_we & regen_qs),
+    .wd     (classd_ctrl_en_e2_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_ctrl.en_e2.q ),
+
+    // to register interface (read)
+    .qs     (classd_ctrl_en_e2_qs)
+  );
+
+
+  //   F[en_e3]: 5:5
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h1)
+  ) u_classd_ctrl_en_e3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_ctrl_en_e3_we & regen_qs),
+    .wd     (classd_ctrl_en_e3_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_ctrl.en_e3.q ),
+
+    // to register interface (read)
+    .qs     (classd_ctrl_en_e3_qs)
+  );
+
+
+  //   F[map_e0]: 7:6
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_classd_ctrl_map_e0 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_ctrl_map_e0_we & regen_qs),
+    .wd     (classd_ctrl_map_e0_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_ctrl.map_e0.q ),
+
+    // to register interface (read)
+    .qs     (classd_ctrl_map_e0_qs)
+  );
+
+
+  //   F[map_e1]: 9:8
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h1)
+  ) u_classd_ctrl_map_e1 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_ctrl_map_e1_we & regen_qs),
+    .wd     (classd_ctrl_map_e1_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_ctrl.map_e1.q ),
+
+    // to register interface (read)
+    .qs     (classd_ctrl_map_e1_qs)
+  );
+
+
+  //   F[map_e2]: 11:10
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h2)
+  ) u_classd_ctrl_map_e2 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_ctrl_map_e2_we & regen_qs),
+    .wd     (classd_ctrl_map_e2_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_ctrl.map_e2.q ),
+
+    // to register interface (read)
+    .qs     (classd_ctrl_map_e2_qs)
+  );
+
+
+  //   F[map_e3]: 13:12
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h3)
+  ) u_classd_ctrl_map_e3 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_ctrl_map_e3_we & regen_qs),
+    .wd     (classd_ctrl_map_e3_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_ctrl.map_e3.q ),
+
+    // to register interface (read)
+    .qs     (classd_ctrl_map_e3_qs)
+  );
+
+
+  // R[classd_clren]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("W1C"),
+    .RESVAL  (1'h1)
+  ) u_classd_clren (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (classd_clren_we),
+    .wd     (classd_clren_wd),
+
+    // from internal hardware
+    .de     (hw2reg.classd_clren.de),
+    .d      (hw2reg.classd_clren.d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (classd_clren_qs)
+  );
+
+
+  // R[classd_clr]: V(False)
+
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("WO"),
+    .RESVAL  (1'h0)
+  ) u_classd_clr (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_clr_we & classd_clren_qs),
+    .wd     (classd_clr_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (reg2hw.classd_clr.qe),
+    .q      (reg2hw.classd_clr.q ),
+
+    .qs     ()
+  );
+
+
+  // R[classd_accum_cnt]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (16)
+  ) u_classd_accum_cnt (
+    .re     (classd_accum_cnt_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classd_accum_cnt.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classd_accum_cnt_qs)
+  );
+
+
+  // R[classd_accum_thresh]: V(False)
+
+  prim_subreg #(
+    .DW      (16),
+    .SWACCESS("RW"),
+    .RESVAL  (16'h0)
+  ) u_classd_accum_thresh (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_accum_thresh_we & regen_qs),
+    .wd     (classd_accum_thresh_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_accum_thresh.q ),
+
+    // to register interface (read)
+    .qs     (classd_accum_thresh_qs)
+  );
+
+
+  // R[classd_timeout_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classd_timeout_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_timeout_cyc_we & regen_qs),
+    .wd     (classd_timeout_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_timeout_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classd_timeout_cyc_qs)
+  );
+
+
+  // R[classd_phase0_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classd_phase0_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_phase0_cyc_we & regen_qs),
+    .wd     (classd_phase0_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_phase0_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classd_phase0_cyc_qs)
+  );
+
+
+  // R[classd_phase1_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classd_phase1_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_phase1_cyc_we & regen_qs),
+    .wd     (classd_phase1_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_phase1_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classd_phase1_cyc_qs)
+  );
+
+
+  // R[classd_phase2_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classd_phase2_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_phase2_cyc_we & regen_qs),
+    .wd     (classd_phase2_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_phase2_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classd_phase2_cyc_qs)
+  );
+
+
+  // R[classd_phase3_cyc]: V(False)
+
+  prim_subreg #(
+    .DW      (32),
+    .SWACCESS("RW"),
+    .RESVAL  (32'h0)
+  ) u_classd_phase3_cyc (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface (qualified with register enable)
+    .we     (classd_phase3_cyc_we & regen_qs),
+    .wd     (classd_phase3_cyc_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.classd_phase3_cyc.q ),
+
+    // to register interface (read)
+    .qs     (classd_phase3_cyc_qs)
+  );
+
+
+  // R[classd_esc_cnt]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (32)
+  ) u_classd_esc_cnt (
+    .re     (classd_esc_cnt_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classd_esc_cnt.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classd_esc_cnt_qs)
+  );
+
+
+  // R[classd_state]: V(True)
+
+  prim_subreg_ext #(
+    .DW    (3)
+  ) u_classd_state (
+    .re     (classd_state_re),
+    .we     (1'b0),
+    .wd     ('0),
+    .d      (hw2reg.classd_state.d),
+    .qre    (),
+    .qe     (),
+    .q      (),
+    .qs     (classd_state_qs)
+  );
+
+
+
+
+  logic [58:0] addr_hit;
+  always_comb begin
+    addr_hit = '0;
+    addr_hit[ 0] = (reg_addr == ALERT_HANDLER_INTR_STATE_OFFSET);
+    addr_hit[ 1] = (reg_addr == ALERT_HANDLER_INTR_ENABLE_OFFSET);
+    addr_hit[ 2] = (reg_addr == ALERT_HANDLER_INTR_TEST_OFFSET);
+    addr_hit[ 3] = (reg_addr == ALERT_HANDLER_REGEN_OFFSET);
+    addr_hit[ 4] = (reg_addr == ALERT_HANDLER_PING_TIMEOUT_CYC_OFFSET);
+    addr_hit[ 5] = (reg_addr == ALERT_HANDLER_ALERT_EN_OFFSET);
+    addr_hit[ 6] = (reg_addr == ALERT_HANDLER_ALERT_CLASS_OFFSET);
+    addr_hit[ 7] = (reg_addr == ALERT_HANDLER_ALERT_CAUSE_OFFSET);
+    addr_hit[ 8] = (reg_addr == ALERT_HANDLER_LOC_ALERT_EN_OFFSET);
+    addr_hit[ 9] = (reg_addr == ALERT_HANDLER_LOC_ALERT_CLASS_OFFSET);
+    addr_hit[10] = (reg_addr == ALERT_HANDLER_LOC_ALERT_CAUSE_OFFSET);
+    addr_hit[11] = (reg_addr == ALERT_HANDLER_CLASSA_CTRL_OFFSET);
+    addr_hit[12] = (reg_addr == ALERT_HANDLER_CLASSA_CLREN_OFFSET);
+    addr_hit[13] = (reg_addr == ALERT_HANDLER_CLASSA_CLR_OFFSET);
+    addr_hit[14] = (reg_addr == ALERT_HANDLER_CLASSA_ACCUM_CNT_OFFSET);
+    addr_hit[15] = (reg_addr == ALERT_HANDLER_CLASSA_ACCUM_THRESH_OFFSET);
+    addr_hit[16] = (reg_addr == ALERT_HANDLER_CLASSA_TIMEOUT_CYC_OFFSET);
+    addr_hit[17] = (reg_addr == ALERT_HANDLER_CLASSA_PHASE0_CYC_OFFSET);
+    addr_hit[18] = (reg_addr == ALERT_HANDLER_CLASSA_PHASE1_CYC_OFFSET);
+    addr_hit[19] = (reg_addr == ALERT_HANDLER_CLASSA_PHASE2_CYC_OFFSET);
+    addr_hit[20] = (reg_addr == ALERT_HANDLER_CLASSA_PHASE3_CYC_OFFSET);
+    addr_hit[21] = (reg_addr == ALERT_HANDLER_CLASSA_ESC_CNT_OFFSET);
+    addr_hit[22] = (reg_addr == ALERT_HANDLER_CLASSA_STATE_OFFSET);
+    addr_hit[23] = (reg_addr == ALERT_HANDLER_CLASSB_CTRL_OFFSET);
+    addr_hit[24] = (reg_addr == ALERT_HANDLER_CLASSB_CLREN_OFFSET);
+    addr_hit[25] = (reg_addr == ALERT_HANDLER_CLASSB_CLR_OFFSET);
+    addr_hit[26] = (reg_addr == ALERT_HANDLER_CLASSB_ACCUM_CNT_OFFSET);
+    addr_hit[27] = (reg_addr == ALERT_HANDLER_CLASSB_ACCUM_THRESH_OFFSET);
+    addr_hit[28] = (reg_addr == ALERT_HANDLER_CLASSB_TIMEOUT_CYC_OFFSET);
+    addr_hit[29] = (reg_addr == ALERT_HANDLER_CLASSB_PHASE0_CYC_OFFSET);
+    addr_hit[30] = (reg_addr == ALERT_HANDLER_CLASSB_PHASE1_CYC_OFFSET);
+    addr_hit[31] = (reg_addr == ALERT_HANDLER_CLASSB_PHASE2_CYC_OFFSET);
+    addr_hit[32] = (reg_addr == ALERT_HANDLER_CLASSB_PHASE3_CYC_OFFSET);
+    addr_hit[33] = (reg_addr == ALERT_HANDLER_CLASSB_ESC_CNT_OFFSET);
+    addr_hit[34] = (reg_addr == ALERT_HANDLER_CLASSB_STATE_OFFSET);
+    addr_hit[35] = (reg_addr == ALERT_HANDLER_CLASSC_CTRL_OFFSET);
+    addr_hit[36] = (reg_addr == ALERT_HANDLER_CLASSC_CLREN_OFFSET);
+    addr_hit[37] = (reg_addr == ALERT_HANDLER_CLASSC_CLR_OFFSET);
+    addr_hit[38] = (reg_addr == ALERT_HANDLER_CLASSC_ACCUM_CNT_OFFSET);
+    addr_hit[39] = (reg_addr == ALERT_HANDLER_CLASSC_ACCUM_THRESH_OFFSET);
+    addr_hit[40] = (reg_addr == ALERT_HANDLER_CLASSC_TIMEOUT_CYC_OFFSET);
+    addr_hit[41] = (reg_addr == ALERT_HANDLER_CLASSC_PHASE0_CYC_OFFSET);
+    addr_hit[42] = (reg_addr == ALERT_HANDLER_CLASSC_PHASE1_CYC_OFFSET);
+    addr_hit[43] = (reg_addr == ALERT_HANDLER_CLASSC_PHASE2_CYC_OFFSET);
+    addr_hit[44] = (reg_addr == ALERT_HANDLER_CLASSC_PHASE3_CYC_OFFSET);
+    addr_hit[45] = (reg_addr == ALERT_HANDLER_CLASSC_ESC_CNT_OFFSET);
+    addr_hit[46] = (reg_addr == ALERT_HANDLER_CLASSC_STATE_OFFSET);
+    addr_hit[47] = (reg_addr == ALERT_HANDLER_CLASSD_CTRL_OFFSET);
+    addr_hit[48] = (reg_addr == ALERT_HANDLER_CLASSD_CLREN_OFFSET);
+    addr_hit[49] = (reg_addr == ALERT_HANDLER_CLASSD_CLR_OFFSET);
+    addr_hit[50] = (reg_addr == ALERT_HANDLER_CLASSD_ACCUM_CNT_OFFSET);
+    addr_hit[51] = (reg_addr == ALERT_HANDLER_CLASSD_ACCUM_THRESH_OFFSET);
+    addr_hit[52] = (reg_addr == ALERT_HANDLER_CLASSD_TIMEOUT_CYC_OFFSET);
+    addr_hit[53] = (reg_addr == ALERT_HANDLER_CLASSD_PHASE0_CYC_OFFSET);
+    addr_hit[54] = (reg_addr == ALERT_HANDLER_CLASSD_PHASE1_CYC_OFFSET);
+    addr_hit[55] = (reg_addr == ALERT_HANDLER_CLASSD_PHASE2_CYC_OFFSET);
+    addr_hit[56] = (reg_addr == ALERT_HANDLER_CLASSD_PHASE3_CYC_OFFSET);
+    addr_hit[57] = (reg_addr == ALERT_HANDLER_CLASSD_ESC_CNT_OFFSET);
+    addr_hit[58] = (reg_addr == ALERT_HANDLER_CLASSD_STATE_OFFSET);
+  end
+
+  assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ;
+
+  // Check sub-word write is permitted
+  always_comb begin
+    wr_err = 1'b0;
+    if (addr_hit[ 0] && reg_we && (ALERT_HANDLER_PERMIT[ 0] != (ALERT_HANDLER_PERMIT[ 0] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[ 1] && reg_we && (ALERT_HANDLER_PERMIT[ 1] != (ALERT_HANDLER_PERMIT[ 1] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[ 2] && reg_we && (ALERT_HANDLER_PERMIT[ 2] != (ALERT_HANDLER_PERMIT[ 2] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[ 3] && reg_we && (ALERT_HANDLER_PERMIT[ 3] != (ALERT_HANDLER_PERMIT[ 3] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[ 4] && reg_we && (ALERT_HANDLER_PERMIT[ 4] != (ALERT_HANDLER_PERMIT[ 4] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[ 5] && reg_we && (ALERT_HANDLER_PERMIT[ 5] != (ALERT_HANDLER_PERMIT[ 5] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[ 6] && reg_we && (ALERT_HANDLER_PERMIT[ 6] != (ALERT_HANDLER_PERMIT[ 6] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[ 7] && reg_we && (ALERT_HANDLER_PERMIT[ 7] != (ALERT_HANDLER_PERMIT[ 7] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[ 8] && reg_we && (ALERT_HANDLER_PERMIT[ 8] != (ALERT_HANDLER_PERMIT[ 8] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[ 9] && reg_we && (ALERT_HANDLER_PERMIT[ 9] != (ALERT_HANDLER_PERMIT[ 9] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[10] && reg_we && (ALERT_HANDLER_PERMIT[10] != (ALERT_HANDLER_PERMIT[10] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[11] && reg_we && (ALERT_HANDLER_PERMIT[11] != (ALERT_HANDLER_PERMIT[11] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[12] && reg_we && (ALERT_HANDLER_PERMIT[12] != (ALERT_HANDLER_PERMIT[12] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[13] && reg_we && (ALERT_HANDLER_PERMIT[13] != (ALERT_HANDLER_PERMIT[13] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[14] && reg_we && (ALERT_HANDLER_PERMIT[14] != (ALERT_HANDLER_PERMIT[14] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[15] && reg_we && (ALERT_HANDLER_PERMIT[15] != (ALERT_HANDLER_PERMIT[15] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[16] && reg_we && (ALERT_HANDLER_PERMIT[16] != (ALERT_HANDLER_PERMIT[16] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[17] && reg_we && (ALERT_HANDLER_PERMIT[17] != (ALERT_HANDLER_PERMIT[17] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[18] && reg_we && (ALERT_HANDLER_PERMIT[18] != (ALERT_HANDLER_PERMIT[18] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[19] && reg_we && (ALERT_HANDLER_PERMIT[19] != (ALERT_HANDLER_PERMIT[19] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[20] && reg_we && (ALERT_HANDLER_PERMIT[20] != (ALERT_HANDLER_PERMIT[20] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[21] && reg_we && (ALERT_HANDLER_PERMIT[21] != (ALERT_HANDLER_PERMIT[21] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[22] && reg_we && (ALERT_HANDLER_PERMIT[22] != (ALERT_HANDLER_PERMIT[22] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[23] && reg_we && (ALERT_HANDLER_PERMIT[23] != (ALERT_HANDLER_PERMIT[23] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[24] && reg_we && (ALERT_HANDLER_PERMIT[24] != (ALERT_HANDLER_PERMIT[24] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[25] && reg_we && (ALERT_HANDLER_PERMIT[25] != (ALERT_HANDLER_PERMIT[25] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[26] && reg_we && (ALERT_HANDLER_PERMIT[26] != (ALERT_HANDLER_PERMIT[26] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[27] && reg_we && (ALERT_HANDLER_PERMIT[27] != (ALERT_HANDLER_PERMIT[27] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[28] && reg_we && (ALERT_HANDLER_PERMIT[28] != (ALERT_HANDLER_PERMIT[28] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[29] && reg_we && (ALERT_HANDLER_PERMIT[29] != (ALERT_HANDLER_PERMIT[29] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[30] && reg_we && (ALERT_HANDLER_PERMIT[30] != (ALERT_HANDLER_PERMIT[30] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[31] && reg_we && (ALERT_HANDLER_PERMIT[31] != (ALERT_HANDLER_PERMIT[31] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[32] && reg_we && (ALERT_HANDLER_PERMIT[32] != (ALERT_HANDLER_PERMIT[32] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[33] && reg_we && (ALERT_HANDLER_PERMIT[33] != (ALERT_HANDLER_PERMIT[33] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[34] && reg_we && (ALERT_HANDLER_PERMIT[34] != (ALERT_HANDLER_PERMIT[34] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[35] && reg_we && (ALERT_HANDLER_PERMIT[35] != (ALERT_HANDLER_PERMIT[35] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[36] && reg_we && (ALERT_HANDLER_PERMIT[36] != (ALERT_HANDLER_PERMIT[36] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[37] && reg_we && (ALERT_HANDLER_PERMIT[37] != (ALERT_HANDLER_PERMIT[37] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[38] && reg_we && (ALERT_HANDLER_PERMIT[38] != (ALERT_HANDLER_PERMIT[38] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[39] && reg_we && (ALERT_HANDLER_PERMIT[39] != (ALERT_HANDLER_PERMIT[39] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[40] && reg_we && (ALERT_HANDLER_PERMIT[40] != (ALERT_HANDLER_PERMIT[40] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[41] && reg_we && (ALERT_HANDLER_PERMIT[41] != (ALERT_HANDLER_PERMIT[41] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[42] && reg_we && (ALERT_HANDLER_PERMIT[42] != (ALERT_HANDLER_PERMIT[42] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[43] && reg_we && (ALERT_HANDLER_PERMIT[43] != (ALERT_HANDLER_PERMIT[43] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[44] && reg_we && (ALERT_HANDLER_PERMIT[44] != (ALERT_HANDLER_PERMIT[44] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[45] && reg_we && (ALERT_HANDLER_PERMIT[45] != (ALERT_HANDLER_PERMIT[45] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[46] && reg_we && (ALERT_HANDLER_PERMIT[46] != (ALERT_HANDLER_PERMIT[46] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[47] && reg_we && (ALERT_HANDLER_PERMIT[47] != (ALERT_HANDLER_PERMIT[47] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[48] && reg_we && (ALERT_HANDLER_PERMIT[48] != (ALERT_HANDLER_PERMIT[48] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[49] && reg_we && (ALERT_HANDLER_PERMIT[49] != (ALERT_HANDLER_PERMIT[49] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[50] && reg_we && (ALERT_HANDLER_PERMIT[50] != (ALERT_HANDLER_PERMIT[50] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[51] && reg_we && (ALERT_HANDLER_PERMIT[51] != (ALERT_HANDLER_PERMIT[51] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[52] && reg_we && (ALERT_HANDLER_PERMIT[52] != (ALERT_HANDLER_PERMIT[52] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[53] && reg_we && (ALERT_HANDLER_PERMIT[53] != (ALERT_HANDLER_PERMIT[53] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[54] && reg_we && (ALERT_HANDLER_PERMIT[54] != (ALERT_HANDLER_PERMIT[54] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[55] && reg_we && (ALERT_HANDLER_PERMIT[55] != (ALERT_HANDLER_PERMIT[55] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[56] && reg_we && (ALERT_HANDLER_PERMIT[56] != (ALERT_HANDLER_PERMIT[56] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[57] && reg_we && (ALERT_HANDLER_PERMIT[57] != (ALERT_HANDLER_PERMIT[57] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[58] && reg_we && (ALERT_HANDLER_PERMIT[58] != (ALERT_HANDLER_PERMIT[58] & reg_be))) wr_err = 1'b1 ;
+  end
+
+  assign intr_state_classa_we = addr_hit[0] & reg_we & ~wr_err;
+  assign intr_state_classa_wd = reg_wdata[0];
+
+  assign intr_state_classb_we = addr_hit[0] & reg_we & ~wr_err;
+  assign intr_state_classb_wd = reg_wdata[1];
+
+  assign intr_state_classc_we = addr_hit[0] & reg_we & ~wr_err;
+  assign intr_state_classc_wd = reg_wdata[2];
+
+  assign intr_state_classd_we = addr_hit[0] & reg_we & ~wr_err;
+  assign intr_state_classd_wd = reg_wdata[3];
+
+  assign intr_enable_classa_we = addr_hit[1] & reg_we & ~wr_err;
+  assign intr_enable_classa_wd = reg_wdata[0];
+
+  assign intr_enable_classb_we = addr_hit[1] & reg_we & ~wr_err;
+  assign intr_enable_classb_wd = reg_wdata[1];
+
+  assign intr_enable_classc_we = addr_hit[1] & reg_we & ~wr_err;
+  assign intr_enable_classc_wd = reg_wdata[2];
+
+  assign intr_enable_classd_we = addr_hit[1] & reg_we & ~wr_err;
+  assign intr_enable_classd_wd = reg_wdata[3];
+
+  assign intr_test_classa_we = addr_hit[2] & reg_we & ~wr_err;
+  assign intr_test_classa_wd = reg_wdata[0];
+
+  assign intr_test_classb_we = addr_hit[2] & reg_we & ~wr_err;
+  assign intr_test_classb_wd = reg_wdata[1];
+
+  assign intr_test_classc_we = addr_hit[2] & reg_we & ~wr_err;
+  assign intr_test_classc_wd = reg_wdata[2];
+
+  assign intr_test_classd_we = addr_hit[2] & reg_we & ~wr_err;
+  assign intr_test_classd_wd = reg_wdata[3];
+
+  assign regen_we = addr_hit[3] & reg_we & ~wr_err;
+  assign regen_wd = reg_wdata[0];
+
+  assign ping_timeout_cyc_we = addr_hit[4] & reg_we & ~wr_err;
+  assign ping_timeout_cyc_wd = reg_wdata[23:0];
+
+  assign alert_en_we = addr_hit[5] & reg_we & ~wr_err;
+  assign alert_en_wd = reg_wdata[0];
+
+  assign alert_class_we = addr_hit[6] & reg_we & ~wr_err;
+  assign alert_class_wd = reg_wdata[1:0];
+
+  assign alert_cause_we = addr_hit[7] & reg_we & ~wr_err;
+  assign alert_cause_wd = reg_wdata[0];
+
+  assign loc_alert_en_en_la0_we = addr_hit[8] & reg_we & ~wr_err;
+  assign loc_alert_en_en_la0_wd = reg_wdata[0];
+
+  assign loc_alert_en_en_la1_we = addr_hit[8] & reg_we & ~wr_err;
+  assign loc_alert_en_en_la1_wd = reg_wdata[1];
+
+  assign loc_alert_en_en_la2_we = addr_hit[8] & reg_we & ~wr_err;
+  assign loc_alert_en_en_la2_wd = reg_wdata[2];
+
+  assign loc_alert_en_en_la3_we = addr_hit[8] & reg_we & ~wr_err;
+  assign loc_alert_en_en_la3_wd = reg_wdata[3];
+
+  assign loc_alert_class_class_la0_we = addr_hit[9] & reg_we & ~wr_err;
+  assign loc_alert_class_class_la0_wd = reg_wdata[1:0];
+
+  assign loc_alert_class_class_la1_we = addr_hit[9] & reg_we & ~wr_err;
+  assign loc_alert_class_class_la1_wd = reg_wdata[3:2];
+
+  assign loc_alert_class_class_la2_we = addr_hit[9] & reg_we & ~wr_err;
+  assign loc_alert_class_class_la2_wd = reg_wdata[5:4];
+
+  assign loc_alert_class_class_la3_we = addr_hit[9] & reg_we & ~wr_err;
+  assign loc_alert_class_class_la3_wd = reg_wdata[7:6];
+
+  assign loc_alert_cause_la0_we = addr_hit[10] & reg_we & ~wr_err;
+  assign loc_alert_cause_la0_wd = reg_wdata[0];
+
+  assign loc_alert_cause_la1_we = addr_hit[10] & reg_we & ~wr_err;
+  assign loc_alert_cause_la1_wd = reg_wdata[1];
+
+  assign loc_alert_cause_la2_we = addr_hit[10] & reg_we & ~wr_err;
+  assign loc_alert_cause_la2_wd = reg_wdata[2];
+
+  assign loc_alert_cause_la3_we = addr_hit[10] & reg_we & ~wr_err;
+  assign loc_alert_cause_la3_wd = reg_wdata[3];
+
+  assign classa_ctrl_en_we = addr_hit[11] & reg_we & ~wr_err;
+  assign classa_ctrl_en_wd = reg_wdata[0];
+
+  assign classa_ctrl_lock_we = addr_hit[11] & reg_we & ~wr_err;
+  assign classa_ctrl_lock_wd = reg_wdata[1];
+
+  assign classa_ctrl_en_e0_we = addr_hit[11] & reg_we & ~wr_err;
+  assign classa_ctrl_en_e0_wd = reg_wdata[2];
+
+  assign classa_ctrl_en_e1_we = addr_hit[11] & reg_we & ~wr_err;
+  assign classa_ctrl_en_e1_wd = reg_wdata[3];
+
+  assign classa_ctrl_en_e2_we = addr_hit[11] & reg_we & ~wr_err;
+  assign classa_ctrl_en_e2_wd = reg_wdata[4];
+
+  assign classa_ctrl_en_e3_we = addr_hit[11] & reg_we & ~wr_err;
+  assign classa_ctrl_en_e3_wd = reg_wdata[5];
+
+  assign classa_ctrl_map_e0_we = addr_hit[11] & reg_we & ~wr_err;
+  assign classa_ctrl_map_e0_wd = reg_wdata[7:6];
+
+  assign classa_ctrl_map_e1_we = addr_hit[11] & reg_we & ~wr_err;
+  assign classa_ctrl_map_e1_wd = reg_wdata[9:8];
+
+  assign classa_ctrl_map_e2_we = addr_hit[11] & reg_we & ~wr_err;
+  assign classa_ctrl_map_e2_wd = reg_wdata[11:10];
+
+  assign classa_ctrl_map_e3_we = addr_hit[11] & reg_we & ~wr_err;
+  assign classa_ctrl_map_e3_wd = reg_wdata[13:12];
+
+  assign classa_clren_we = addr_hit[12] & reg_we & ~wr_err;
+  assign classa_clren_wd = reg_wdata[0];
+
+  assign classa_clr_we = addr_hit[13] & reg_we & ~wr_err;
+  assign classa_clr_wd = reg_wdata[0];
+
+  assign classa_accum_cnt_re = addr_hit[14] && reg_re;
+
+  assign classa_accum_thresh_we = addr_hit[15] & reg_we & ~wr_err;
+  assign classa_accum_thresh_wd = reg_wdata[15:0];
+
+  assign classa_timeout_cyc_we = addr_hit[16] & reg_we & ~wr_err;
+  assign classa_timeout_cyc_wd = reg_wdata[31:0];
+
+  assign classa_phase0_cyc_we = addr_hit[17] & reg_we & ~wr_err;
+  assign classa_phase0_cyc_wd = reg_wdata[31:0];
+
+  assign classa_phase1_cyc_we = addr_hit[18] & reg_we & ~wr_err;
+  assign classa_phase1_cyc_wd = reg_wdata[31:0];
+
+  assign classa_phase2_cyc_we = addr_hit[19] & reg_we & ~wr_err;
+  assign classa_phase2_cyc_wd = reg_wdata[31:0];
+
+  assign classa_phase3_cyc_we = addr_hit[20] & reg_we & ~wr_err;
+  assign classa_phase3_cyc_wd = reg_wdata[31:0];
+
+  assign classa_esc_cnt_re = addr_hit[21] && reg_re;
+
+  assign classa_state_re = addr_hit[22] && reg_re;
+
+  assign classb_ctrl_en_we = addr_hit[23] & reg_we & ~wr_err;
+  assign classb_ctrl_en_wd = reg_wdata[0];
+
+  assign classb_ctrl_lock_we = addr_hit[23] & reg_we & ~wr_err;
+  assign classb_ctrl_lock_wd = reg_wdata[1];
+
+  assign classb_ctrl_en_e0_we = addr_hit[23] & reg_we & ~wr_err;
+  assign classb_ctrl_en_e0_wd = reg_wdata[2];
+
+  assign classb_ctrl_en_e1_we = addr_hit[23] & reg_we & ~wr_err;
+  assign classb_ctrl_en_e1_wd = reg_wdata[3];
+
+  assign classb_ctrl_en_e2_we = addr_hit[23] & reg_we & ~wr_err;
+  assign classb_ctrl_en_e2_wd = reg_wdata[4];
+
+  assign classb_ctrl_en_e3_we = addr_hit[23] & reg_we & ~wr_err;
+  assign classb_ctrl_en_e3_wd = reg_wdata[5];
+
+  assign classb_ctrl_map_e0_we = addr_hit[23] & reg_we & ~wr_err;
+  assign classb_ctrl_map_e0_wd = reg_wdata[7:6];
+
+  assign classb_ctrl_map_e1_we = addr_hit[23] & reg_we & ~wr_err;
+  assign classb_ctrl_map_e1_wd = reg_wdata[9:8];
+
+  assign classb_ctrl_map_e2_we = addr_hit[23] & reg_we & ~wr_err;
+  assign classb_ctrl_map_e2_wd = reg_wdata[11:10];
+
+  assign classb_ctrl_map_e3_we = addr_hit[23] & reg_we & ~wr_err;
+  assign classb_ctrl_map_e3_wd = reg_wdata[13:12];
+
+  assign classb_clren_we = addr_hit[24] & reg_we & ~wr_err;
+  assign classb_clren_wd = reg_wdata[0];
+
+  assign classb_clr_we = addr_hit[25] & reg_we & ~wr_err;
+  assign classb_clr_wd = reg_wdata[0];
+
+  assign classb_accum_cnt_re = addr_hit[26] && reg_re;
+
+  assign classb_accum_thresh_we = addr_hit[27] & reg_we & ~wr_err;
+  assign classb_accum_thresh_wd = reg_wdata[15:0];
+
+  assign classb_timeout_cyc_we = addr_hit[28] & reg_we & ~wr_err;
+  assign classb_timeout_cyc_wd = reg_wdata[31:0];
+
+  assign classb_phase0_cyc_we = addr_hit[29] & reg_we & ~wr_err;
+  assign classb_phase0_cyc_wd = reg_wdata[31:0];
+
+  assign classb_phase1_cyc_we = addr_hit[30] & reg_we & ~wr_err;
+  assign classb_phase1_cyc_wd = reg_wdata[31:0];
+
+  assign classb_phase2_cyc_we = addr_hit[31] & reg_we & ~wr_err;
+  assign classb_phase2_cyc_wd = reg_wdata[31:0];
+
+  assign classb_phase3_cyc_we = addr_hit[32] & reg_we & ~wr_err;
+  assign classb_phase3_cyc_wd = reg_wdata[31:0];
+
+  assign classb_esc_cnt_re = addr_hit[33] && reg_re;
+
+  assign classb_state_re = addr_hit[34] && reg_re;
+
+  assign classc_ctrl_en_we = addr_hit[35] & reg_we & ~wr_err;
+  assign classc_ctrl_en_wd = reg_wdata[0];
+
+  assign classc_ctrl_lock_we = addr_hit[35] & reg_we & ~wr_err;
+  assign classc_ctrl_lock_wd = reg_wdata[1];
+
+  assign classc_ctrl_en_e0_we = addr_hit[35] & reg_we & ~wr_err;
+  assign classc_ctrl_en_e0_wd = reg_wdata[2];
+
+  assign classc_ctrl_en_e1_we = addr_hit[35] & reg_we & ~wr_err;
+  assign classc_ctrl_en_e1_wd = reg_wdata[3];
+
+  assign classc_ctrl_en_e2_we = addr_hit[35] & reg_we & ~wr_err;
+  assign classc_ctrl_en_e2_wd = reg_wdata[4];
+
+  assign classc_ctrl_en_e3_we = addr_hit[35] & reg_we & ~wr_err;
+  assign classc_ctrl_en_e3_wd = reg_wdata[5];
+
+  assign classc_ctrl_map_e0_we = addr_hit[35] & reg_we & ~wr_err;
+  assign classc_ctrl_map_e0_wd = reg_wdata[7:6];
+
+  assign classc_ctrl_map_e1_we = addr_hit[35] & reg_we & ~wr_err;
+  assign classc_ctrl_map_e1_wd = reg_wdata[9:8];
+
+  assign classc_ctrl_map_e2_we = addr_hit[35] & reg_we & ~wr_err;
+  assign classc_ctrl_map_e2_wd = reg_wdata[11:10];
+
+  assign classc_ctrl_map_e3_we = addr_hit[35] & reg_we & ~wr_err;
+  assign classc_ctrl_map_e3_wd = reg_wdata[13:12];
+
+  assign classc_clren_we = addr_hit[36] & reg_we & ~wr_err;
+  assign classc_clren_wd = reg_wdata[0];
+
+  assign classc_clr_we = addr_hit[37] & reg_we & ~wr_err;
+  assign classc_clr_wd = reg_wdata[0];
+
+  assign classc_accum_cnt_re = addr_hit[38] && reg_re;
+
+  assign classc_accum_thresh_we = addr_hit[39] & reg_we & ~wr_err;
+  assign classc_accum_thresh_wd = reg_wdata[15:0];
+
+  assign classc_timeout_cyc_we = addr_hit[40] & reg_we & ~wr_err;
+  assign classc_timeout_cyc_wd = reg_wdata[31:0];
+
+  assign classc_phase0_cyc_we = addr_hit[41] & reg_we & ~wr_err;
+  assign classc_phase0_cyc_wd = reg_wdata[31:0];
+
+  assign classc_phase1_cyc_we = addr_hit[42] & reg_we & ~wr_err;
+  assign classc_phase1_cyc_wd = reg_wdata[31:0];
+
+  assign classc_phase2_cyc_we = addr_hit[43] & reg_we & ~wr_err;
+  assign classc_phase2_cyc_wd = reg_wdata[31:0];
+
+  assign classc_phase3_cyc_we = addr_hit[44] & reg_we & ~wr_err;
+  assign classc_phase3_cyc_wd = reg_wdata[31:0];
+
+  assign classc_esc_cnt_re = addr_hit[45] && reg_re;
+
+  assign classc_state_re = addr_hit[46] && reg_re;
+
+  assign classd_ctrl_en_we = addr_hit[47] & reg_we & ~wr_err;
+  assign classd_ctrl_en_wd = reg_wdata[0];
+
+  assign classd_ctrl_lock_we = addr_hit[47] & reg_we & ~wr_err;
+  assign classd_ctrl_lock_wd = reg_wdata[1];
+
+  assign classd_ctrl_en_e0_we = addr_hit[47] & reg_we & ~wr_err;
+  assign classd_ctrl_en_e0_wd = reg_wdata[2];
+
+  assign classd_ctrl_en_e1_we = addr_hit[47] & reg_we & ~wr_err;
+  assign classd_ctrl_en_e1_wd = reg_wdata[3];
+
+  assign classd_ctrl_en_e2_we = addr_hit[47] & reg_we & ~wr_err;
+  assign classd_ctrl_en_e2_wd = reg_wdata[4];
+
+  assign classd_ctrl_en_e3_we = addr_hit[47] & reg_we & ~wr_err;
+  assign classd_ctrl_en_e3_wd = reg_wdata[5];
+
+  assign classd_ctrl_map_e0_we = addr_hit[47] & reg_we & ~wr_err;
+  assign classd_ctrl_map_e0_wd = reg_wdata[7:6];
+
+  assign classd_ctrl_map_e1_we = addr_hit[47] & reg_we & ~wr_err;
+  assign classd_ctrl_map_e1_wd = reg_wdata[9:8];
+
+  assign classd_ctrl_map_e2_we = addr_hit[47] & reg_we & ~wr_err;
+  assign classd_ctrl_map_e2_wd = reg_wdata[11:10];
+
+  assign classd_ctrl_map_e3_we = addr_hit[47] & reg_we & ~wr_err;
+  assign classd_ctrl_map_e3_wd = reg_wdata[13:12];
+
+  assign classd_clren_we = addr_hit[48] & reg_we & ~wr_err;
+  assign classd_clren_wd = reg_wdata[0];
+
+  assign classd_clr_we = addr_hit[49] & reg_we & ~wr_err;
+  assign classd_clr_wd = reg_wdata[0];
+
+  assign classd_accum_cnt_re = addr_hit[50] && reg_re;
+
+  assign classd_accum_thresh_we = addr_hit[51] & reg_we & ~wr_err;
+  assign classd_accum_thresh_wd = reg_wdata[15:0];
+
+  assign classd_timeout_cyc_we = addr_hit[52] & reg_we & ~wr_err;
+  assign classd_timeout_cyc_wd = reg_wdata[31:0];
+
+  assign classd_phase0_cyc_we = addr_hit[53] & reg_we & ~wr_err;
+  assign classd_phase0_cyc_wd = reg_wdata[31:0];
+
+  assign classd_phase1_cyc_we = addr_hit[54] & reg_we & ~wr_err;
+  assign classd_phase1_cyc_wd = reg_wdata[31:0];
+
+  assign classd_phase2_cyc_we = addr_hit[55] & reg_we & ~wr_err;
+  assign classd_phase2_cyc_wd = reg_wdata[31:0];
+
+  assign classd_phase3_cyc_we = addr_hit[56] & reg_we & ~wr_err;
+  assign classd_phase3_cyc_wd = reg_wdata[31:0];
+
+  assign classd_esc_cnt_re = addr_hit[57] && reg_re;
+
+  assign classd_state_re = addr_hit[58] && reg_re;
+
+  // Read data return
+  always_comb begin
+    reg_rdata_next = '0;
+    unique case (1'b1)
+      addr_hit[0]: begin
+        reg_rdata_next[0] = intr_state_classa_qs;
+        reg_rdata_next[1] = intr_state_classb_qs;
+        reg_rdata_next[2] = intr_state_classc_qs;
+        reg_rdata_next[3] = intr_state_classd_qs;
+      end
+
+      addr_hit[1]: begin
+        reg_rdata_next[0] = intr_enable_classa_qs;
+        reg_rdata_next[1] = intr_enable_classb_qs;
+        reg_rdata_next[2] = intr_enable_classc_qs;
+        reg_rdata_next[3] = intr_enable_classd_qs;
+      end
+
+      addr_hit[2]: begin
+        reg_rdata_next[0] = '0;
+        reg_rdata_next[1] = '0;
+        reg_rdata_next[2] = '0;
+        reg_rdata_next[3] = '0;
+      end
+
+      addr_hit[3]: begin
+        reg_rdata_next[0] = regen_qs;
+      end
+
+      addr_hit[4]: begin
+        reg_rdata_next[23:0] = ping_timeout_cyc_qs;
+      end
+
+      addr_hit[5]: begin
+        reg_rdata_next[0] = alert_en_qs;
+      end
+
+      addr_hit[6]: begin
+        reg_rdata_next[1:0] = alert_class_qs;
+      end
+
+      addr_hit[7]: begin
+        reg_rdata_next[0] = alert_cause_qs;
+      end
+
+      addr_hit[8]: begin
+        reg_rdata_next[0] = loc_alert_en_en_la0_qs;
+        reg_rdata_next[1] = loc_alert_en_en_la1_qs;
+        reg_rdata_next[2] = loc_alert_en_en_la2_qs;
+        reg_rdata_next[3] = loc_alert_en_en_la3_qs;
+      end
+
+      addr_hit[9]: begin
+        reg_rdata_next[1:0] = loc_alert_class_class_la0_qs;
+        reg_rdata_next[3:2] = loc_alert_class_class_la1_qs;
+        reg_rdata_next[5:4] = loc_alert_class_class_la2_qs;
+        reg_rdata_next[7:6] = loc_alert_class_class_la3_qs;
+      end
+
+      addr_hit[10]: begin
+        reg_rdata_next[0] = loc_alert_cause_la0_qs;
+        reg_rdata_next[1] = loc_alert_cause_la1_qs;
+        reg_rdata_next[2] = loc_alert_cause_la2_qs;
+        reg_rdata_next[3] = loc_alert_cause_la3_qs;
+      end
+
+      addr_hit[11]: begin
+        reg_rdata_next[0] = classa_ctrl_en_qs;
+        reg_rdata_next[1] = classa_ctrl_lock_qs;
+        reg_rdata_next[2] = classa_ctrl_en_e0_qs;
+        reg_rdata_next[3] = classa_ctrl_en_e1_qs;
+        reg_rdata_next[4] = classa_ctrl_en_e2_qs;
+        reg_rdata_next[5] = classa_ctrl_en_e3_qs;
+        reg_rdata_next[7:6] = classa_ctrl_map_e0_qs;
+        reg_rdata_next[9:8] = classa_ctrl_map_e1_qs;
+        reg_rdata_next[11:10] = classa_ctrl_map_e2_qs;
+        reg_rdata_next[13:12] = classa_ctrl_map_e3_qs;
+      end
+
+      addr_hit[12]: begin
+        reg_rdata_next[0] = classa_clren_qs;
+      end
+
+      addr_hit[13]: begin
+        reg_rdata_next[0] = '0;
+      end
+
+      addr_hit[14]: begin
+        reg_rdata_next[15:0] = classa_accum_cnt_qs;
+      end
+
+      addr_hit[15]: begin
+        reg_rdata_next[15:0] = classa_accum_thresh_qs;
+      end
+
+      addr_hit[16]: begin
+        reg_rdata_next[31:0] = classa_timeout_cyc_qs;
+      end
+
+      addr_hit[17]: begin
+        reg_rdata_next[31:0] = classa_phase0_cyc_qs;
+      end
+
+      addr_hit[18]: begin
+        reg_rdata_next[31:0] = classa_phase1_cyc_qs;
+      end
+
+      addr_hit[19]: begin
+        reg_rdata_next[31:0] = classa_phase2_cyc_qs;
+      end
+
+      addr_hit[20]: begin
+        reg_rdata_next[31:0] = classa_phase3_cyc_qs;
+      end
+
+      addr_hit[21]: begin
+        reg_rdata_next[31:0] = classa_esc_cnt_qs;
+      end
+
+      addr_hit[22]: begin
+        reg_rdata_next[2:0] = classa_state_qs;
+      end
+
+      addr_hit[23]: begin
+        reg_rdata_next[0] = classb_ctrl_en_qs;
+        reg_rdata_next[1] = classb_ctrl_lock_qs;
+        reg_rdata_next[2] = classb_ctrl_en_e0_qs;
+        reg_rdata_next[3] = classb_ctrl_en_e1_qs;
+        reg_rdata_next[4] = classb_ctrl_en_e2_qs;
+        reg_rdata_next[5] = classb_ctrl_en_e3_qs;
+        reg_rdata_next[7:6] = classb_ctrl_map_e0_qs;
+        reg_rdata_next[9:8] = classb_ctrl_map_e1_qs;
+        reg_rdata_next[11:10] = classb_ctrl_map_e2_qs;
+        reg_rdata_next[13:12] = classb_ctrl_map_e3_qs;
+      end
+
+      addr_hit[24]: begin
+        reg_rdata_next[0] = classb_clren_qs;
+      end
+
+      addr_hit[25]: begin
+        reg_rdata_next[0] = '0;
+      end
+
+      addr_hit[26]: begin
+        reg_rdata_next[15:0] = classb_accum_cnt_qs;
+      end
+
+      addr_hit[27]: begin
+        reg_rdata_next[15:0] = classb_accum_thresh_qs;
+      end
+
+      addr_hit[28]: begin
+        reg_rdata_next[31:0] = classb_timeout_cyc_qs;
+      end
+
+      addr_hit[29]: begin
+        reg_rdata_next[31:0] = classb_phase0_cyc_qs;
+      end
+
+      addr_hit[30]: begin
+        reg_rdata_next[31:0] = classb_phase1_cyc_qs;
+      end
+
+      addr_hit[31]: begin
+        reg_rdata_next[31:0] = classb_phase2_cyc_qs;
+      end
+
+      addr_hit[32]: begin
+        reg_rdata_next[31:0] = classb_phase3_cyc_qs;
+      end
+
+      addr_hit[33]: begin
+        reg_rdata_next[31:0] = classb_esc_cnt_qs;
+      end
+
+      addr_hit[34]: begin
+        reg_rdata_next[2:0] = classb_state_qs;
+      end
+
+      addr_hit[35]: begin
+        reg_rdata_next[0] = classc_ctrl_en_qs;
+        reg_rdata_next[1] = classc_ctrl_lock_qs;
+        reg_rdata_next[2] = classc_ctrl_en_e0_qs;
+        reg_rdata_next[3] = classc_ctrl_en_e1_qs;
+        reg_rdata_next[4] = classc_ctrl_en_e2_qs;
+        reg_rdata_next[5] = classc_ctrl_en_e3_qs;
+        reg_rdata_next[7:6] = classc_ctrl_map_e0_qs;
+        reg_rdata_next[9:8] = classc_ctrl_map_e1_qs;
+        reg_rdata_next[11:10] = classc_ctrl_map_e2_qs;
+        reg_rdata_next[13:12] = classc_ctrl_map_e3_qs;
+      end
+
+      addr_hit[36]: begin
+        reg_rdata_next[0] = classc_clren_qs;
+      end
+
+      addr_hit[37]: begin
+        reg_rdata_next[0] = '0;
+      end
+
+      addr_hit[38]: begin
+        reg_rdata_next[15:0] = classc_accum_cnt_qs;
+      end
+
+      addr_hit[39]: begin
+        reg_rdata_next[15:0] = classc_accum_thresh_qs;
+      end
+
+      addr_hit[40]: begin
+        reg_rdata_next[31:0] = classc_timeout_cyc_qs;
+      end
+
+      addr_hit[41]: begin
+        reg_rdata_next[31:0] = classc_phase0_cyc_qs;
+      end
+
+      addr_hit[42]: begin
+        reg_rdata_next[31:0] = classc_phase1_cyc_qs;
+      end
+
+      addr_hit[43]: begin
+        reg_rdata_next[31:0] = classc_phase2_cyc_qs;
+      end
+
+      addr_hit[44]: begin
+        reg_rdata_next[31:0] = classc_phase3_cyc_qs;
+      end
+
+      addr_hit[45]: begin
+        reg_rdata_next[31:0] = classc_esc_cnt_qs;
+      end
+
+      addr_hit[46]: begin
+        reg_rdata_next[2:0] = classc_state_qs;
+      end
+
+      addr_hit[47]: begin
+        reg_rdata_next[0] = classd_ctrl_en_qs;
+        reg_rdata_next[1] = classd_ctrl_lock_qs;
+        reg_rdata_next[2] = classd_ctrl_en_e0_qs;
+        reg_rdata_next[3] = classd_ctrl_en_e1_qs;
+        reg_rdata_next[4] = classd_ctrl_en_e2_qs;
+        reg_rdata_next[5] = classd_ctrl_en_e3_qs;
+        reg_rdata_next[7:6] = classd_ctrl_map_e0_qs;
+        reg_rdata_next[9:8] = classd_ctrl_map_e1_qs;
+        reg_rdata_next[11:10] = classd_ctrl_map_e2_qs;
+        reg_rdata_next[13:12] = classd_ctrl_map_e3_qs;
+      end
+
+      addr_hit[48]: begin
+        reg_rdata_next[0] = classd_clren_qs;
+      end
+
+      addr_hit[49]: begin
+        reg_rdata_next[0] = '0;
+      end
+
+      addr_hit[50]: begin
+        reg_rdata_next[15:0] = classd_accum_cnt_qs;
+      end
+
+      addr_hit[51]: begin
+        reg_rdata_next[15:0] = classd_accum_thresh_qs;
+      end
+
+      addr_hit[52]: begin
+        reg_rdata_next[31:0] = classd_timeout_cyc_qs;
+      end
+
+      addr_hit[53]: begin
+        reg_rdata_next[31:0] = classd_phase0_cyc_qs;
+      end
+
+      addr_hit[54]: begin
+        reg_rdata_next[31:0] = classd_phase1_cyc_qs;
+      end
+
+      addr_hit[55]: begin
+        reg_rdata_next[31:0] = classd_phase2_cyc_qs;
+      end
+
+      addr_hit[56]: begin
+        reg_rdata_next[31:0] = classd_phase3_cyc_qs;
+      end
+
+      addr_hit[57]: begin
+        reg_rdata_next[31:0] = classd_esc_cnt_qs;
+      end
+
+      addr_hit[58]: begin
+        reg_rdata_next[2:0] = classd_state_qs;
+      end
+
+      default: begin
+        reg_rdata_next = '1;
+      end
+    endcase
+  end
+
+  // Assertions for Register Interface
+  `ASSERT_PULSE(wePulse, reg_we, clk_i, !rst_ni)
+  `ASSERT_PULSE(rePulse, reg_re, clk_i, !rst_ni)
+
+  `ASSERT(reAfterRv, $rose(reg_re || reg_we) |=> tl_o.d_valid, clk_i, !rst_ni)
+
+  `ASSERT(en2addrHit, (reg_we || reg_re) |-> $onehot0(addr_hit), clk_i, !rst_ni)
+
+  // this is formulated as an assumption such that the FPV testbenches do disprove this
+  // property by mistake
+  `ASSUME(reqParity, tl_reg_h2d.a_valid |-> tl_reg_h2d.a_user.parity_en == 1'b0, clk_i, !rst_ni)
+
+endmodule
diff --git a/hw/top_earlgrey/ip/rv_plic/data/autogen/rv_plic.hjson b/hw/top_earlgrey/ip/rv_plic/data/autogen/rv_plic.hjson
index b9d16ba..2106f27 100644
--- a/hw/top_earlgrey/ip/rv_plic/data/autogen/rv_plic.hjson
+++ b/hw/top_earlgrey/ip/rv_plic/data/autogen/rv_plic.hjson
@@ -25,7 +25,7 @@
     { name: "NumSrc",
       desc: "Number of interrupt sources",
       type: "int",
-      default: "55",
+      default: "63",
       local: "true"
     },
     { name: "NumTarget",
@@ -501,7 +501,71 @@
         { bits: "1:0" }
       ],
     }
-    { skipto: "256" }
+    { name: "PRIO55",
+      desc: "Interrupt Source 55 Priority",
+      swaccess: "rw",
+      hwaccess: "hro",
+      fields: [
+        { bits: "1:0" }
+      ],
+    }
+    { name: "PRIO56",
+      desc: "Interrupt Source 56 Priority",
+      swaccess: "rw",
+      hwaccess: "hro",
+      fields: [
+        { bits: "1:0" }
+      ],
+    }
+    { name: "PRIO57",
+      desc: "Interrupt Source 57 Priority",
+      swaccess: "rw",
+      hwaccess: "hro",
+      fields: [
+        { bits: "1:0" }
+      ],
+    }
+    { name: "PRIO58",
+      desc: "Interrupt Source 58 Priority",
+      swaccess: "rw",
+      hwaccess: "hro",
+      fields: [
+        { bits: "1:0" }
+      ],
+    }
+    { name: "PRIO59",
+      desc: "Interrupt Source 59 Priority",
+      swaccess: "rw",
+      hwaccess: "hro",
+      fields: [
+        { bits: "1:0" }
+      ],
+    }
+    { name: "PRIO60",
+      desc: "Interrupt Source 60 Priority",
+      swaccess: "rw",
+      hwaccess: "hro",
+      fields: [
+        { bits: "1:0" }
+      ],
+    }
+    { name: "PRIO61",
+      desc: "Interrupt Source 61 Priority",
+      swaccess: "rw",
+      hwaccess: "hro",
+      fields: [
+        { bits: "1:0" }
+      ],
+    }
+    { name: "PRIO62",
+      desc: "Interrupt Source 62 Priority",
+      swaccess: "rw",
+      hwaccess: "hro",
+      fields: [
+        { bits: "1:0" }
+      ],
+    }
+    { skipto: "512" }
     { multireg: {
         name: "IE0",
         desc: "Interrupt Enable for Target 0",
@@ -523,7 +587,8 @@
       ],
     }
     { name: "CC0",
-      desc: "Claim interrupt by read, complete interrupt by write for Target 0. Value read/written is interrupt ID. Reading a value of 0 means no pending interrupts.",
+      desc: '''Claim interrupt by read, complete interrupt by write for Target 0.
+      Value read/written is interrupt ID. Reading a value of 0 means no pending interrupts.''',
       swaccess: "rw",
       hwaccess: "hrw",
       hwext: "true",
@@ -534,7 +599,8 @@
       ],
     }
     { name: "MSIP0",
-      desc: "msip for Hart 0. Write 1 to here asserts software interrupt for Hart msip_o[0], write 0 to clear",
+      desc: '''msip for Hart 0.
+      Write 1 to here asserts software interrupt for Hart msip_o[0], write 0 to clear.''',
       swaccess: "rw",
       hwaccess: "hro",
       fields: [
diff --git a/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic.sv b/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic.sv
index aae343c..28acb95 100644
--- a/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic.sv
+++ b/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic.sv
@@ -151,11 +151,19 @@
   assign prio[52] = reg2hw.prio52.q;
   assign prio[53] = reg2hw.prio53.q;
   assign prio[54] = reg2hw.prio54.q;
+  assign prio[55] = reg2hw.prio55.q;
+  assign prio[56] = reg2hw.prio56.q;
+  assign prio[57] = reg2hw.prio57.q;
+  assign prio[58] = reg2hw.prio58.q;
+  assign prio[59] = reg2hw.prio59.q;
+  assign prio[60] = reg2hw.prio60.q;
+  assign prio[61] = reg2hw.prio61.q;
+  assign prio[62] = reg2hw.prio62.q;
 
   //////////////////////
   // Interrupt Enable //
   //////////////////////
-  for (genvar s = 0; s < 55; s++) begin : gen_ie0
+  for (genvar s = 0; s < 63; s++) begin : gen_ie0
     assign ie[0][s] = reg2hw.ie0[s].q;
   end
 
@@ -181,7 +189,7 @@
   ////////
   // IP //
   ////////
-  for (genvar s = 0; s < 55; s++) begin : gen_ip
+  for (genvar s = 0; s < 63; s++) begin : gen_ip
     assign hw2reg.ip[s].de = 1'b1; // Always write
     assign hw2reg.ip[s].d  = ip[s];
   end
@@ -189,7 +197,7 @@
   ///////////////////////////////////
   // Detection:: 0: Level, 1: Edge //
   ///////////////////////////////////
-  for (genvar s = 0; s < 55; s++) begin : gen_le
+  for (genvar s = 0; s < 63; s++) begin : gen_le
     assign le[s] = reg2hw.le[s].q;
   end
 
diff --git a/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic_reg_pkg.sv b/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic_reg_pkg.sv
index 6a52203..dabca79 100644
--- a/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic_reg_pkg.sv
+++ b/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic_reg_pkg.sv
@@ -7,7 +7,7 @@
 package rv_plic_reg_pkg;
 
   // Param list
-  localparam int NumSrc = 55;
+  localparam int NumSrc = 63;
   localparam int NumTarget = 1;
 
   ////////////////////////////
@@ -238,6 +238,38 @@
   } rv_plic_reg2hw_prio54_reg_t;
 
   typedef struct packed {
+    logic [1:0]  q;
+  } rv_plic_reg2hw_prio55_reg_t;
+
+  typedef struct packed {
+    logic [1:0]  q;
+  } rv_plic_reg2hw_prio56_reg_t;
+
+  typedef struct packed {
+    logic [1:0]  q;
+  } rv_plic_reg2hw_prio57_reg_t;
+
+  typedef struct packed {
+    logic [1:0]  q;
+  } rv_plic_reg2hw_prio58_reg_t;
+
+  typedef struct packed {
+    logic [1:0]  q;
+  } rv_plic_reg2hw_prio59_reg_t;
+
+  typedef struct packed {
+    logic [1:0]  q;
+  } rv_plic_reg2hw_prio60_reg_t;
+
+  typedef struct packed {
+    logic [1:0]  q;
+  } rv_plic_reg2hw_prio61_reg_t;
+
+  typedef struct packed {
+    logic [1:0]  q;
+  } rv_plic_reg2hw_prio62_reg_t;
+
+  typedef struct packed {
     logic        q;
   } rv_plic_reg2hw_ie0_mreg_t;
 
@@ -270,63 +302,71 @@
   // Register to internal design logic //
   ///////////////////////////////////////
   typedef struct packed {
-    rv_plic_reg2hw_le_mreg_t [54:0] le; // [230:176]
-    rv_plic_reg2hw_prio0_reg_t prio0; // [175:174]
-    rv_plic_reg2hw_prio1_reg_t prio1; // [173:172]
-    rv_plic_reg2hw_prio2_reg_t prio2; // [171:170]
-    rv_plic_reg2hw_prio3_reg_t prio3; // [169:168]
-    rv_plic_reg2hw_prio4_reg_t prio4; // [167:166]
-    rv_plic_reg2hw_prio5_reg_t prio5; // [165:164]
-    rv_plic_reg2hw_prio6_reg_t prio6; // [163:162]
-    rv_plic_reg2hw_prio7_reg_t prio7; // [161:160]
-    rv_plic_reg2hw_prio8_reg_t prio8; // [159:158]
-    rv_plic_reg2hw_prio9_reg_t prio9; // [157:156]
-    rv_plic_reg2hw_prio10_reg_t prio10; // [155:154]
-    rv_plic_reg2hw_prio11_reg_t prio11; // [153:152]
-    rv_plic_reg2hw_prio12_reg_t prio12; // [151:150]
-    rv_plic_reg2hw_prio13_reg_t prio13; // [149:148]
-    rv_plic_reg2hw_prio14_reg_t prio14; // [147:146]
-    rv_plic_reg2hw_prio15_reg_t prio15; // [145:144]
-    rv_plic_reg2hw_prio16_reg_t prio16; // [143:142]
-    rv_plic_reg2hw_prio17_reg_t prio17; // [141:140]
-    rv_plic_reg2hw_prio18_reg_t prio18; // [139:138]
-    rv_plic_reg2hw_prio19_reg_t prio19; // [137:136]
-    rv_plic_reg2hw_prio20_reg_t prio20; // [135:134]
-    rv_plic_reg2hw_prio21_reg_t prio21; // [133:132]
-    rv_plic_reg2hw_prio22_reg_t prio22; // [131:130]
-    rv_plic_reg2hw_prio23_reg_t prio23; // [129:128]
-    rv_plic_reg2hw_prio24_reg_t prio24; // [127:126]
-    rv_plic_reg2hw_prio25_reg_t prio25; // [125:124]
-    rv_plic_reg2hw_prio26_reg_t prio26; // [123:122]
-    rv_plic_reg2hw_prio27_reg_t prio27; // [121:120]
-    rv_plic_reg2hw_prio28_reg_t prio28; // [119:118]
-    rv_plic_reg2hw_prio29_reg_t prio29; // [117:116]
-    rv_plic_reg2hw_prio30_reg_t prio30; // [115:114]
-    rv_plic_reg2hw_prio31_reg_t prio31; // [113:112]
-    rv_plic_reg2hw_prio32_reg_t prio32; // [111:110]
-    rv_plic_reg2hw_prio33_reg_t prio33; // [109:108]
-    rv_plic_reg2hw_prio34_reg_t prio34; // [107:106]
-    rv_plic_reg2hw_prio35_reg_t prio35; // [105:104]
-    rv_plic_reg2hw_prio36_reg_t prio36; // [103:102]
-    rv_plic_reg2hw_prio37_reg_t prio37; // [101:100]
-    rv_plic_reg2hw_prio38_reg_t prio38; // [99:98]
-    rv_plic_reg2hw_prio39_reg_t prio39; // [97:96]
-    rv_plic_reg2hw_prio40_reg_t prio40; // [95:94]
-    rv_plic_reg2hw_prio41_reg_t prio41; // [93:92]
-    rv_plic_reg2hw_prio42_reg_t prio42; // [91:90]
-    rv_plic_reg2hw_prio43_reg_t prio43; // [89:88]
-    rv_plic_reg2hw_prio44_reg_t prio44; // [87:86]
-    rv_plic_reg2hw_prio45_reg_t prio45; // [85:84]
-    rv_plic_reg2hw_prio46_reg_t prio46; // [83:82]
-    rv_plic_reg2hw_prio47_reg_t prio47; // [81:80]
-    rv_plic_reg2hw_prio48_reg_t prio48; // [79:78]
-    rv_plic_reg2hw_prio49_reg_t prio49; // [77:76]
-    rv_plic_reg2hw_prio50_reg_t prio50; // [75:74]
-    rv_plic_reg2hw_prio51_reg_t prio51; // [73:72]
-    rv_plic_reg2hw_prio52_reg_t prio52; // [71:70]
-    rv_plic_reg2hw_prio53_reg_t prio53; // [69:68]
-    rv_plic_reg2hw_prio54_reg_t prio54; // [67:66]
-    rv_plic_reg2hw_ie0_mreg_t [54:0] ie0; // [65:11]
+    rv_plic_reg2hw_le_mreg_t [62:0] le; // [262:200]
+    rv_plic_reg2hw_prio0_reg_t prio0; // [199:198]
+    rv_plic_reg2hw_prio1_reg_t prio1; // [197:196]
+    rv_plic_reg2hw_prio2_reg_t prio2; // [195:194]
+    rv_plic_reg2hw_prio3_reg_t prio3; // [193:192]
+    rv_plic_reg2hw_prio4_reg_t prio4; // [191:190]
+    rv_plic_reg2hw_prio5_reg_t prio5; // [189:188]
+    rv_plic_reg2hw_prio6_reg_t prio6; // [187:186]
+    rv_plic_reg2hw_prio7_reg_t prio7; // [185:184]
+    rv_plic_reg2hw_prio8_reg_t prio8; // [183:182]
+    rv_plic_reg2hw_prio9_reg_t prio9; // [181:180]
+    rv_plic_reg2hw_prio10_reg_t prio10; // [179:178]
+    rv_plic_reg2hw_prio11_reg_t prio11; // [177:176]
+    rv_plic_reg2hw_prio12_reg_t prio12; // [175:174]
+    rv_plic_reg2hw_prio13_reg_t prio13; // [173:172]
+    rv_plic_reg2hw_prio14_reg_t prio14; // [171:170]
+    rv_plic_reg2hw_prio15_reg_t prio15; // [169:168]
+    rv_plic_reg2hw_prio16_reg_t prio16; // [167:166]
+    rv_plic_reg2hw_prio17_reg_t prio17; // [165:164]
+    rv_plic_reg2hw_prio18_reg_t prio18; // [163:162]
+    rv_plic_reg2hw_prio19_reg_t prio19; // [161:160]
+    rv_plic_reg2hw_prio20_reg_t prio20; // [159:158]
+    rv_plic_reg2hw_prio21_reg_t prio21; // [157:156]
+    rv_plic_reg2hw_prio22_reg_t prio22; // [155:154]
+    rv_plic_reg2hw_prio23_reg_t prio23; // [153:152]
+    rv_plic_reg2hw_prio24_reg_t prio24; // [151:150]
+    rv_plic_reg2hw_prio25_reg_t prio25; // [149:148]
+    rv_plic_reg2hw_prio26_reg_t prio26; // [147:146]
+    rv_plic_reg2hw_prio27_reg_t prio27; // [145:144]
+    rv_plic_reg2hw_prio28_reg_t prio28; // [143:142]
+    rv_plic_reg2hw_prio29_reg_t prio29; // [141:140]
+    rv_plic_reg2hw_prio30_reg_t prio30; // [139:138]
+    rv_plic_reg2hw_prio31_reg_t prio31; // [137:136]
+    rv_plic_reg2hw_prio32_reg_t prio32; // [135:134]
+    rv_plic_reg2hw_prio33_reg_t prio33; // [133:132]
+    rv_plic_reg2hw_prio34_reg_t prio34; // [131:130]
+    rv_plic_reg2hw_prio35_reg_t prio35; // [129:128]
+    rv_plic_reg2hw_prio36_reg_t prio36; // [127:126]
+    rv_plic_reg2hw_prio37_reg_t prio37; // [125:124]
+    rv_plic_reg2hw_prio38_reg_t prio38; // [123:122]
+    rv_plic_reg2hw_prio39_reg_t prio39; // [121:120]
+    rv_plic_reg2hw_prio40_reg_t prio40; // [119:118]
+    rv_plic_reg2hw_prio41_reg_t prio41; // [117:116]
+    rv_plic_reg2hw_prio42_reg_t prio42; // [115:114]
+    rv_plic_reg2hw_prio43_reg_t prio43; // [113:112]
+    rv_plic_reg2hw_prio44_reg_t prio44; // [111:110]
+    rv_plic_reg2hw_prio45_reg_t prio45; // [109:108]
+    rv_plic_reg2hw_prio46_reg_t prio46; // [107:106]
+    rv_plic_reg2hw_prio47_reg_t prio47; // [105:104]
+    rv_plic_reg2hw_prio48_reg_t prio48; // [103:102]
+    rv_plic_reg2hw_prio49_reg_t prio49; // [101:100]
+    rv_plic_reg2hw_prio50_reg_t prio50; // [99:98]
+    rv_plic_reg2hw_prio51_reg_t prio51; // [97:96]
+    rv_plic_reg2hw_prio52_reg_t prio52; // [95:94]
+    rv_plic_reg2hw_prio53_reg_t prio53; // [93:92]
+    rv_plic_reg2hw_prio54_reg_t prio54; // [91:90]
+    rv_plic_reg2hw_prio55_reg_t prio55; // [89:88]
+    rv_plic_reg2hw_prio56_reg_t prio56; // [87:86]
+    rv_plic_reg2hw_prio57_reg_t prio57; // [85:84]
+    rv_plic_reg2hw_prio58_reg_t prio58; // [83:82]
+    rv_plic_reg2hw_prio59_reg_t prio59; // [81:80]
+    rv_plic_reg2hw_prio60_reg_t prio60; // [79:78]
+    rv_plic_reg2hw_prio61_reg_t prio61; // [77:76]
+    rv_plic_reg2hw_prio62_reg_t prio62; // [75:74]
+    rv_plic_reg2hw_ie0_mreg_t [62:0] ie0; // [73:11]
     rv_plic_reg2hw_threshold0_reg_t threshold0; // [10:9]
     rv_plic_reg2hw_cc0_reg_t cc0; // [8:1]
     rv_plic_reg2hw_msip0_reg_t msip0; // [0:0]
@@ -336,75 +376,83 @@
   // Internal design logic to register //
   ///////////////////////////////////////
   typedef struct packed {
-    rv_plic_hw2reg_ip_mreg_t [54:0] ip; // [115:6]
+    rv_plic_hw2reg_ip_mreg_t [62:0] ip; // [131:6]
     rv_plic_hw2reg_cc0_reg_t cc0; // [5:-2]
   } rv_plic_hw2reg_t;
 
   // Register Address
-  parameter RV_PLIC_IP0_OFFSET = 9'h 0;
-  parameter RV_PLIC_IP1_OFFSET = 9'h 4;
-  parameter RV_PLIC_LE0_OFFSET = 9'h 8;
-  parameter RV_PLIC_LE1_OFFSET = 9'h c;
-  parameter RV_PLIC_PRIO0_OFFSET = 9'h 10;
-  parameter RV_PLIC_PRIO1_OFFSET = 9'h 14;
-  parameter RV_PLIC_PRIO2_OFFSET = 9'h 18;
-  parameter RV_PLIC_PRIO3_OFFSET = 9'h 1c;
-  parameter RV_PLIC_PRIO4_OFFSET = 9'h 20;
-  parameter RV_PLIC_PRIO5_OFFSET = 9'h 24;
-  parameter RV_PLIC_PRIO6_OFFSET = 9'h 28;
-  parameter RV_PLIC_PRIO7_OFFSET = 9'h 2c;
-  parameter RV_PLIC_PRIO8_OFFSET = 9'h 30;
-  parameter RV_PLIC_PRIO9_OFFSET = 9'h 34;
-  parameter RV_PLIC_PRIO10_OFFSET = 9'h 38;
-  parameter RV_PLIC_PRIO11_OFFSET = 9'h 3c;
-  parameter RV_PLIC_PRIO12_OFFSET = 9'h 40;
-  parameter RV_PLIC_PRIO13_OFFSET = 9'h 44;
-  parameter RV_PLIC_PRIO14_OFFSET = 9'h 48;
-  parameter RV_PLIC_PRIO15_OFFSET = 9'h 4c;
-  parameter RV_PLIC_PRIO16_OFFSET = 9'h 50;
-  parameter RV_PLIC_PRIO17_OFFSET = 9'h 54;
-  parameter RV_PLIC_PRIO18_OFFSET = 9'h 58;
-  parameter RV_PLIC_PRIO19_OFFSET = 9'h 5c;
-  parameter RV_PLIC_PRIO20_OFFSET = 9'h 60;
-  parameter RV_PLIC_PRIO21_OFFSET = 9'h 64;
-  parameter RV_PLIC_PRIO22_OFFSET = 9'h 68;
-  parameter RV_PLIC_PRIO23_OFFSET = 9'h 6c;
-  parameter RV_PLIC_PRIO24_OFFSET = 9'h 70;
-  parameter RV_PLIC_PRIO25_OFFSET = 9'h 74;
-  parameter RV_PLIC_PRIO26_OFFSET = 9'h 78;
-  parameter RV_PLIC_PRIO27_OFFSET = 9'h 7c;
-  parameter RV_PLIC_PRIO28_OFFSET = 9'h 80;
-  parameter RV_PLIC_PRIO29_OFFSET = 9'h 84;
-  parameter RV_PLIC_PRIO30_OFFSET = 9'h 88;
-  parameter RV_PLIC_PRIO31_OFFSET = 9'h 8c;
-  parameter RV_PLIC_PRIO32_OFFSET = 9'h 90;
-  parameter RV_PLIC_PRIO33_OFFSET = 9'h 94;
-  parameter RV_PLIC_PRIO34_OFFSET = 9'h 98;
-  parameter RV_PLIC_PRIO35_OFFSET = 9'h 9c;
-  parameter RV_PLIC_PRIO36_OFFSET = 9'h a0;
-  parameter RV_PLIC_PRIO37_OFFSET = 9'h a4;
-  parameter RV_PLIC_PRIO38_OFFSET = 9'h a8;
-  parameter RV_PLIC_PRIO39_OFFSET = 9'h ac;
-  parameter RV_PLIC_PRIO40_OFFSET = 9'h b0;
-  parameter RV_PLIC_PRIO41_OFFSET = 9'h b4;
-  parameter RV_PLIC_PRIO42_OFFSET = 9'h b8;
-  parameter RV_PLIC_PRIO43_OFFSET = 9'h bc;
-  parameter RV_PLIC_PRIO44_OFFSET = 9'h c0;
-  parameter RV_PLIC_PRIO45_OFFSET = 9'h c4;
-  parameter RV_PLIC_PRIO46_OFFSET = 9'h c8;
-  parameter RV_PLIC_PRIO47_OFFSET = 9'h cc;
-  parameter RV_PLIC_PRIO48_OFFSET = 9'h d0;
-  parameter RV_PLIC_PRIO49_OFFSET = 9'h d4;
-  parameter RV_PLIC_PRIO50_OFFSET = 9'h d8;
-  parameter RV_PLIC_PRIO51_OFFSET = 9'h dc;
-  parameter RV_PLIC_PRIO52_OFFSET = 9'h e0;
-  parameter RV_PLIC_PRIO53_OFFSET = 9'h e4;
-  parameter RV_PLIC_PRIO54_OFFSET = 9'h e8;
-  parameter RV_PLIC_IE00_OFFSET = 9'h 100;
-  parameter RV_PLIC_IE01_OFFSET = 9'h 104;
-  parameter RV_PLIC_THRESHOLD0_OFFSET = 9'h 108;
-  parameter RV_PLIC_CC0_OFFSET = 9'h 10c;
-  parameter RV_PLIC_MSIP0_OFFSET = 9'h 110;
+  parameter RV_PLIC_IP0_OFFSET = 10'h 0;
+  parameter RV_PLIC_IP1_OFFSET = 10'h 4;
+  parameter RV_PLIC_LE0_OFFSET = 10'h 8;
+  parameter RV_PLIC_LE1_OFFSET = 10'h c;
+  parameter RV_PLIC_PRIO0_OFFSET = 10'h 10;
+  parameter RV_PLIC_PRIO1_OFFSET = 10'h 14;
+  parameter RV_PLIC_PRIO2_OFFSET = 10'h 18;
+  parameter RV_PLIC_PRIO3_OFFSET = 10'h 1c;
+  parameter RV_PLIC_PRIO4_OFFSET = 10'h 20;
+  parameter RV_PLIC_PRIO5_OFFSET = 10'h 24;
+  parameter RV_PLIC_PRIO6_OFFSET = 10'h 28;
+  parameter RV_PLIC_PRIO7_OFFSET = 10'h 2c;
+  parameter RV_PLIC_PRIO8_OFFSET = 10'h 30;
+  parameter RV_PLIC_PRIO9_OFFSET = 10'h 34;
+  parameter RV_PLIC_PRIO10_OFFSET = 10'h 38;
+  parameter RV_PLIC_PRIO11_OFFSET = 10'h 3c;
+  parameter RV_PLIC_PRIO12_OFFSET = 10'h 40;
+  parameter RV_PLIC_PRIO13_OFFSET = 10'h 44;
+  parameter RV_PLIC_PRIO14_OFFSET = 10'h 48;
+  parameter RV_PLIC_PRIO15_OFFSET = 10'h 4c;
+  parameter RV_PLIC_PRIO16_OFFSET = 10'h 50;
+  parameter RV_PLIC_PRIO17_OFFSET = 10'h 54;
+  parameter RV_PLIC_PRIO18_OFFSET = 10'h 58;
+  parameter RV_PLIC_PRIO19_OFFSET = 10'h 5c;
+  parameter RV_PLIC_PRIO20_OFFSET = 10'h 60;
+  parameter RV_PLIC_PRIO21_OFFSET = 10'h 64;
+  parameter RV_PLIC_PRIO22_OFFSET = 10'h 68;
+  parameter RV_PLIC_PRIO23_OFFSET = 10'h 6c;
+  parameter RV_PLIC_PRIO24_OFFSET = 10'h 70;
+  parameter RV_PLIC_PRIO25_OFFSET = 10'h 74;
+  parameter RV_PLIC_PRIO26_OFFSET = 10'h 78;
+  parameter RV_PLIC_PRIO27_OFFSET = 10'h 7c;
+  parameter RV_PLIC_PRIO28_OFFSET = 10'h 80;
+  parameter RV_PLIC_PRIO29_OFFSET = 10'h 84;
+  parameter RV_PLIC_PRIO30_OFFSET = 10'h 88;
+  parameter RV_PLIC_PRIO31_OFFSET = 10'h 8c;
+  parameter RV_PLIC_PRIO32_OFFSET = 10'h 90;
+  parameter RV_PLIC_PRIO33_OFFSET = 10'h 94;
+  parameter RV_PLIC_PRIO34_OFFSET = 10'h 98;
+  parameter RV_PLIC_PRIO35_OFFSET = 10'h 9c;
+  parameter RV_PLIC_PRIO36_OFFSET = 10'h a0;
+  parameter RV_PLIC_PRIO37_OFFSET = 10'h a4;
+  parameter RV_PLIC_PRIO38_OFFSET = 10'h a8;
+  parameter RV_PLIC_PRIO39_OFFSET = 10'h ac;
+  parameter RV_PLIC_PRIO40_OFFSET = 10'h b0;
+  parameter RV_PLIC_PRIO41_OFFSET = 10'h b4;
+  parameter RV_PLIC_PRIO42_OFFSET = 10'h b8;
+  parameter RV_PLIC_PRIO43_OFFSET = 10'h bc;
+  parameter RV_PLIC_PRIO44_OFFSET = 10'h c0;
+  parameter RV_PLIC_PRIO45_OFFSET = 10'h c4;
+  parameter RV_PLIC_PRIO46_OFFSET = 10'h c8;
+  parameter RV_PLIC_PRIO47_OFFSET = 10'h cc;
+  parameter RV_PLIC_PRIO48_OFFSET = 10'h d0;
+  parameter RV_PLIC_PRIO49_OFFSET = 10'h d4;
+  parameter RV_PLIC_PRIO50_OFFSET = 10'h d8;
+  parameter RV_PLIC_PRIO51_OFFSET = 10'h dc;
+  parameter RV_PLIC_PRIO52_OFFSET = 10'h e0;
+  parameter RV_PLIC_PRIO53_OFFSET = 10'h e4;
+  parameter RV_PLIC_PRIO54_OFFSET = 10'h e8;
+  parameter RV_PLIC_PRIO55_OFFSET = 10'h ec;
+  parameter RV_PLIC_PRIO56_OFFSET = 10'h f0;
+  parameter RV_PLIC_PRIO57_OFFSET = 10'h f4;
+  parameter RV_PLIC_PRIO58_OFFSET = 10'h f8;
+  parameter RV_PLIC_PRIO59_OFFSET = 10'h fc;
+  parameter RV_PLIC_PRIO60_OFFSET = 10'h 100;
+  parameter RV_PLIC_PRIO61_OFFSET = 10'h 104;
+  parameter RV_PLIC_PRIO62_OFFSET = 10'h 108;
+  parameter RV_PLIC_IE00_OFFSET = 10'h 200;
+  parameter RV_PLIC_IE01_OFFSET = 10'h 204;
+  parameter RV_PLIC_THRESHOLD0_OFFSET = 10'h 208;
+  parameter RV_PLIC_CC0_OFFSET = 10'h 20c;
+  parameter RV_PLIC_MSIP0_OFFSET = 10'h 210;
 
 
   // Register Index
@@ -468,6 +516,14 @@
     RV_PLIC_PRIO52,
     RV_PLIC_PRIO53,
     RV_PLIC_PRIO54,
+    RV_PLIC_PRIO55,
+    RV_PLIC_PRIO56,
+    RV_PLIC_PRIO57,
+    RV_PLIC_PRIO58,
+    RV_PLIC_PRIO59,
+    RV_PLIC_PRIO60,
+    RV_PLIC_PRIO61,
+    RV_PLIC_PRIO62,
     RV_PLIC_IE00,
     RV_PLIC_IE01,
     RV_PLIC_THRESHOLD0,
@@ -476,11 +532,11 @@
   } rv_plic_id_e;
 
   // Register width information to check illegal writes
-  localparam logic [3:0] RV_PLIC_PERMIT [64] = '{
+  localparam logic [3:0] RV_PLIC_PERMIT [72] = '{
     4'b 1111, // index[ 0] RV_PLIC_IP0
-    4'b 0111, // index[ 1] RV_PLIC_IP1
+    4'b 1111, // index[ 1] RV_PLIC_IP1
     4'b 1111, // index[ 2] RV_PLIC_LE0
-    4'b 0111, // index[ 3] RV_PLIC_LE1
+    4'b 1111, // index[ 3] RV_PLIC_LE1
     4'b 0001, // index[ 4] RV_PLIC_PRIO0
     4'b 0001, // index[ 5] RV_PLIC_PRIO1
     4'b 0001, // index[ 6] RV_PLIC_PRIO2
@@ -536,11 +592,19 @@
     4'b 0001, // index[56] RV_PLIC_PRIO52
     4'b 0001, // index[57] RV_PLIC_PRIO53
     4'b 0001, // index[58] RV_PLIC_PRIO54
-    4'b 1111, // index[59] RV_PLIC_IE00
-    4'b 0111, // index[60] RV_PLIC_IE01
-    4'b 0001, // index[61] RV_PLIC_THRESHOLD0
-    4'b 0001, // index[62] RV_PLIC_CC0
-    4'b 0001  // index[63] RV_PLIC_MSIP0
+    4'b 0001, // index[59] RV_PLIC_PRIO55
+    4'b 0001, // index[60] RV_PLIC_PRIO56
+    4'b 0001, // index[61] RV_PLIC_PRIO57
+    4'b 0001, // index[62] RV_PLIC_PRIO58
+    4'b 0001, // index[63] RV_PLIC_PRIO59
+    4'b 0001, // index[64] RV_PLIC_PRIO60
+    4'b 0001, // index[65] RV_PLIC_PRIO61
+    4'b 0001, // index[66] RV_PLIC_PRIO62
+    4'b 1111, // index[67] RV_PLIC_IE00
+    4'b 1111, // index[68] RV_PLIC_IE01
+    4'b 0001, // index[69] RV_PLIC_THRESHOLD0
+    4'b 0001, // index[70] RV_PLIC_CC0
+    4'b 0001  // index[71] RV_PLIC_MSIP0
   };
 endpackage
 
diff --git a/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic_reg_top.sv b/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic_reg_top.sv
index c91a113..f9138ae 100644
--- a/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic_reg_top.sv
+++ b/hw/top_earlgrey/ip/rv_plic/rtl/autogen/rv_plic_reg_top.sv
@@ -21,7 +21,7 @@
 
   import rv_plic_reg_pkg::* ;
 
-  localparam AW = 9;
+  localparam AW = 10;
   localparam DW = 32;
   localparam DBW = DW/8;                    // Byte Width
 
@@ -124,6 +124,14 @@
   logic ip1_p52_qs;
   logic ip1_p53_qs;
   logic ip1_p54_qs;
+  logic ip1_p55_qs;
+  logic ip1_p56_qs;
+  logic ip1_p57_qs;
+  logic ip1_p58_qs;
+  logic ip1_p59_qs;
+  logic ip1_p60_qs;
+  logic ip1_p61_qs;
+  logic ip1_p62_qs;
   logic le0_le0_qs;
   logic le0_le0_wd;
   logic le0_le0_we;
@@ -289,6 +297,30 @@
   logic le1_le54_qs;
   logic le1_le54_wd;
   logic le1_le54_we;
+  logic le1_le55_qs;
+  logic le1_le55_wd;
+  logic le1_le55_we;
+  logic le1_le56_qs;
+  logic le1_le56_wd;
+  logic le1_le56_we;
+  logic le1_le57_qs;
+  logic le1_le57_wd;
+  logic le1_le57_we;
+  logic le1_le58_qs;
+  logic le1_le58_wd;
+  logic le1_le58_we;
+  logic le1_le59_qs;
+  logic le1_le59_wd;
+  logic le1_le59_we;
+  logic le1_le60_qs;
+  logic le1_le60_wd;
+  logic le1_le60_we;
+  logic le1_le61_qs;
+  logic le1_le61_wd;
+  logic le1_le61_we;
+  logic le1_le62_qs;
+  logic le1_le62_wd;
+  logic le1_le62_we;
   logic [1:0] prio0_qs;
   logic [1:0] prio0_wd;
   logic prio0_we;
@@ -454,6 +486,30 @@
   logic [1:0] prio54_qs;
   logic [1:0] prio54_wd;
   logic prio54_we;
+  logic [1:0] prio55_qs;
+  logic [1:0] prio55_wd;
+  logic prio55_we;
+  logic [1:0] prio56_qs;
+  logic [1:0] prio56_wd;
+  logic prio56_we;
+  logic [1:0] prio57_qs;
+  logic [1:0] prio57_wd;
+  logic prio57_we;
+  logic [1:0] prio58_qs;
+  logic [1:0] prio58_wd;
+  logic prio58_we;
+  logic [1:0] prio59_qs;
+  logic [1:0] prio59_wd;
+  logic prio59_we;
+  logic [1:0] prio60_qs;
+  logic [1:0] prio60_wd;
+  logic prio60_we;
+  logic [1:0] prio61_qs;
+  logic [1:0] prio61_wd;
+  logic prio61_we;
+  logic [1:0] prio62_qs;
+  logic [1:0] prio62_wd;
+  logic prio62_we;
   logic ie00_e0_qs;
   logic ie00_e0_wd;
   logic ie00_e0_we;
@@ -619,6 +675,30 @@
   logic ie01_e54_qs;
   logic ie01_e54_wd;
   logic ie01_e54_we;
+  logic ie01_e55_qs;
+  logic ie01_e55_wd;
+  logic ie01_e55_we;
+  logic ie01_e56_qs;
+  logic ie01_e56_wd;
+  logic ie01_e56_we;
+  logic ie01_e57_qs;
+  logic ie01_e57_wd;
+  logic ie01_e57_we;
+  logic ie01_e58_qs;
+  logic ie01_e58_wd;
+  logic ie01_e58_we;
+  logic ie01_e59_qs;
+  logic ie01_e59_wd;
+  logic ie01_e59_we;
+  logic ie01_e60_qs;
+  logic ie01_e60_wd;
+  logic ie01_e60_we;
+  logic ie01_e61_qs;
+  logic ie01_e61_wd;
+  logic ie01_e61_we;
+  logic ie01_e62_qs;
+  logic ie01_e62_wd;
+  logic ie01_e62_we;
   logic [1:0] threshold0_qs;
   logic [1:0] threshold0_wd;
   logic threshold0_we;
@@ -2013,6 +2093,206 @@
   );
 
 
+  // F[p55]: 23:23
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RO"),
+    .RESVAL  (1'h0)
+  ) u_ip1_p55 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    .we     (1'b0),
+    .wd     ('0  ),
+
+    // from internal hardware
+    .de     (hw2reg.ip[55].de),
+    .d      (hw2reg.ip[55].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (ip1_p55_qs)
+  );
+
+
+  // F[p56]: 24:24
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RO"),
+    .RESVAL  (1'h0)
+  ) u_ip1_p56 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    .we     (1'b0),
+    .wd     ('0  ),
+
+    // from internal hardware
+    .de     (hw2reg.ip[56].de),
+    .d      (hw2reg.ip[56].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (ip1_p56_qs)
+  );
+
+
+  // F[p57]: 25:25
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RO"),
+    .RESVAL  (1'h0)
+  ) u_ip1_p57 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    .we     (1'b0),
+    .wd     ('0  ),
+
+    // from internal hardware
+    .de     (hw2reg.ip[57].de),
+    .d      (hw2reg.ip[57].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (ip1_p57_qs)
+  );
+
+
+  // F[p58]: 26:26
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RO"),
+    .RESVAL  (1'h0)
+  ) u_ip1_p58 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    .we     (1'b0),
+    .wd     ('0  ),
+
+    // from internal hardware
+    .de     (hw2reg.ip[58].de),
+    .d      (hw2reg.ip[58].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (ip1_p58_qs)
+  );
+
+
+  // F[p59]: 27:27
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RO"),
+    .RESVAL  (1'h0)
+  ) u_ip1_p59 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    .we     (1'b0),
+    .wd     ('0  ),
+
+    // from internal hardware
+    .de     (hw2reg.ip[59].de),
+    .d      (hw2reg.ip[59].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (ip1_p59_qs)
+  );
+
+
+  // F[p60]: 28:28
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RO"),
+    .RESVAL  (1'h0)
+  ) u_ip1_p60 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    .we     (1'b0),
+    .wd     ('0  ),
+
+    // from internal hardware
+    .de     (hw2reg.ip[60].de),
+    .d      (hw2reg.ip[60].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (ip1_p60_qs)
+  );
+
+
+  // F[p61]: 29:29
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RO"),
+    .RESVAL  (1'h0)
+  ) u_ip1_p61 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    .we     (1'b0),
+    .wd     ('0  ),
+
+    // from internal hardware
+    .de     (hw2reg.ip[61].de),
+    .d      (hw2reg.ip[61].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (ip1_p61_qs)
+  );
+
+
+  // F[p62]: 30:30
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RO"),
+    .RESVAL  (1'h0)
+  ) u_ip1_p62 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    .we     (1'b0),
+    .wd     ('0  ),
+
+    // from internal hardware
+    .de     (hw2reg.ip[62].de),
+    .d      (hw2reg.ip[62].d ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (),
+
+    // to register interface (read)
+    .qs     (ip1_p62_qs)
+  );
+
+
 
 
   // Subregister 0 of Multireg le
@@ -3451,6 +3731,214 @@
   );
 
 
+  // F[le55]: 23:23
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_le1_le55 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (le1_le55_we),
+    .wd     (le1_le55_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.le[55].q ),
+
+    // to register interface (read)
+    .qs     (le1_le55_qs)
+  );
+
+
+  // F[le56]: 24:24
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_le1_le56 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (le1_le56_we),
+    .wd     (le1_le56_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.le[56].q ),
+
+    // to register interface (read)
+    .qs     (le1_le56_qs)
+  );
+
+
+  // F[le57]: 25:25
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_le1_le57 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (le1_le57_we),
+    .wd     (le1_le57_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.le[57].q ),
+
+    // to register interface (read)
+    .qs     (le1_le57_qs)
+  );
+
+
+  // F[le58]: 26:26
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_le1_le58 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (le1_le58_we),
+    .wd     (le1_le58_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.le[58].q ),
+
+    // to register interface (read)
+    .qs     (le1_le58_qs)
+  );
+
+
+  // F[le59]: 27:27
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_le1_le59 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (le1_le59_we),
+    .wd     (le1_le59_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.le[59].q ),
+
+    // to register interface (read)
+    .qs     (le1_le59_qs)
+  );
+
+
+  // F[le60]: 28:28
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_le1_le60 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (le1_le60_we),
+    .wd     (le1_le60_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.le[60].q ),
+
+    // to register interface (read)
+    .qs     (le1_le60_qs)
+  );
+
+
+  // F[le61]: 29:29
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_le1_le61 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (le1_le61_we),
+    .wd     (le1_le61_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.le[61].q ),
+
+    // to register interface (read)
+    .qs     (le1_le61_qs)
+  );
+
+
+  // F[le62]: 30:30
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_le1_le62 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (le1_le62_we),
+    .wd     (le1_le62_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.le[62].q ),
+
+    // to register interface (read)
+    .qs     (le1_le62_qs)
+  );
+
+
 
   // R[prio0]: V(False)
 
@@ -4937,6 +5425,222 @@
   );
 
 
+  // R[prio55]: V(False)
+
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_prio55 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (prio55_we),
+    .wd     (prio55_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.prio55.q ),
+
+    // to register interface (read)
+    .qs     (prio55_qs)
+  );
+
+
+  // R[prio56]: V(False)
+
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_prio56 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (prio56_we),
+    .wd     (prio56_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.prio56.q ),
+
+    // to register interface (read)
+    .qs     (prio56_qs)
+  );
+
+
+  // R[prio57]: V(False)
+
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_prio57 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (prio57_we),
+    .wd     (prio57_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.prio57.q ),
+
+    // to register interface (read)
+    .qs     (prio57_qs)
+  );
+
+
+  // R[prio58]: V(False)
+
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_prio58 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (prio58_we),
+    .wd     (prio58_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.prio58.q ),
+
+    // to register interface (read)
+    .qs     (prio58_qs)
+  );
+
+
+  // R[prio59]: V(False)
+
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_prio59 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (prio59_we),
+    .wd     (prio59_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.prio59.q ),
+
+    // to register interface (read)
+    .qs     (prio59_qs)
+  );
+
+
+  // R[prio60]: V(False)
+
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_prio60 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (prio60_we),
+    .wd     (prio60_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.prio60.q ),
+
+    // to register interface (read)
+    .qs     (prio60_qs)
+  );
+
+
+  // R[prio61]: V(False)
+
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_prio61 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (prio61_we),
+    .wd     (prio61_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.prio61.q ),
+
+    // to register interface (read)
+    .qs     (prio61_qs)
+  );
+
+
+  // R[prio62]: V(False)
+
+  prim_subreg #(
+    .DW      (2),
+    .SWACCESS("RW"),
+    .RESVAL  (2'h0)
+  ) u_prio62 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (prio62_we),
+    .wd     (prio62_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.prio62.q ),
+
+    // to register interface (read)
+    .qs     (prio62_qs)
+  );
+
+
 
   // Subregister 0 of Multireg ie0
   // R[ie00]: V(False)
@@ -6374,6 +7078,214 @@
   );
 
 
+  // F[e55]: 23:23
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_ie01_e55 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (ie01_e55_we),
+    .wd     (ie01_e55_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.ie0[55].q ),
+
+    // to register interface (read)
+    .qs     (ie01_e55_qs)
+  );
+
+
+  // F[e56]: 24:24
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_ie01_e56 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (ie01_e56_we),
+    .wd     (ie01_e56_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.ie0[56].q ),
+
+    // to register interface (read)
+    .qs     (ie01_e56_qs)
+  );
+
+
+  // F[e57]: 25:25
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_ie01_e57 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (ie01_e57_we),
+    .wd     (ie01_e57_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.ie0[57].q ),
+
+    // to register interface (read)
+    .qs     (ie01_e57_qs)
+  );
+
+
+  // F[e58]: 26:26
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_ie01_e58 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (ie01_e58_we),
+    .wd     (ie01_e58_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.ie0[58].q ),
+
+    // to register interface (read)
+    .qs     (ie01_e58_qs)
+  );
+
+
+  // F[e59]: 27:27
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_ie01_e59 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (ie01_e59_we),
+    .wd     (ie01_e59_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.ie0[59].q ),
+
+    // to register interface (read)
+    .qs     (ie01_e59_qs)
+  );
+
+
+  // F[e60]: 28:28
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_ie01_e60 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (ie01_e60_we),
+    .wd     (ie01_e60_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.ie0[60].q ),
+
+    // to register interface (read)
+    .qs     (ie01_e60_qs)
+  );
+
+
+  // F[e61]: 29:29
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_ie01_e61 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (ie01_e61_we),
+    .wd     (ie01_e61_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.ie0[61].q ),
+
+    // to register interface (read)
+    .qs     (ie01_e61_qs)
+  );
+
+
+  // F[e62]: 30:30
+  prim_subreg #(
+    .DW      (1),
+    .SWACCESS("RW"),
+    .RESVAL  (1'h0)
+  ) u_ie01_e62 (
+    .clk_i   (clk_i    ),
+    .rst_ni  (rst_ni  ),
+
+    // from register interface
+    .we     (ie01_e62_we),
+    .wd     (ie01_e62_wd),
+
+    // from internal hardware
+    .de     (1'b0),
+    .d      ('0  ),
+
+    // to internal hardware
+    .qe     (),
+    .q      (reg2hw.ie0[62].q ),
+
+    // to register interface (read)
+    .qs     (ie01_e62_qs)
+  );
+
+
 
   // R[threshold0]: V(False)
 
@@ -6447,7 +7359,7 @@
 
 
 
-  logic [63:0] addr_hit;
+  logic [71:0] addr_hit;
   always_comb begin
     addr_hit = '0;
     addr_hit[ 0] = (reg_addr == RV_PLIC_IP0_OFFSET);
@@ -6509,11 +7421,19 @@
     addr_hit[56] = (reg_addr == RV_PLIC_PRIO52_OFFSET);
     addr_hit[57] = (reg_addr == RV_PLIC_PRIO53_OFFSET);
     addr_hit[58] = (reg_addr == RV_PLIC_PRIO54_OFFSET);
-    addr_hit[59] = (reg_addr == RV_PLIC_IE00_OFFSET);
-    addr_hit[60] = (reg_addr == RV_PLIC_IE01_OFFSET);
-    addr_hit[61] = (reg_addr == RV_PLIC_THRESHOLD0_OFFSET);
-    addr_hit[62] = (reg_addr == RV_PLIC_CC0_OFFSET);
-    addr_hit[63] = (reg_addr == RV_PLIC_MSIP0_OFFSET);
+    addr_hit[59] = (reg_addr == RV_PLIC_PRIO55_OFFSET);
+    addr_hit[60] = (reg_addr == RV_PLIC_PRIO56_OFFSET);
+    addr_hit[61] = (reg_addr == RV_PLIC_PRIO57_OFFSET);
+    addr_hit[62] = (reg_addr == RV_PLIC_PRIO58_OFFSET);
+    addr_hit[63] = (reg_addr == RV_PLIC_PRIO59_OFFSET);
+    addr_hit[64] = (reg_addr == RV_PLIC_PRIO60_OFFSET);
+    addr_hit[65] = (reg_addr == RV_PLIC_PRIO61_OFFSET);
+    addr_hit[66] = (reg_addr == RV_PLIC_PRIO62_OFFSET);
+    addr_hit[67] = (reg_addr == RV_PLIC_IE00_OFFSET);
+    addr_hit[68] = (reg_addr == RV_PLIC_IE01_OFFSET);
+    addr_hit[69] = (reg_addr == RV_PLIC_THRESHOLD0_OFFSET);
+    addr_hit[70] = (reg_addr == RV_PLIC_CC0_OFFSET);
+    addr_hit[71] = (reg_addr == RV_PLIC_MSIP0_OFFSET);
   end
 
   assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ;
@@ -6585,6 +7505,14 @@
     if (addr_hit[61] && reg_we && (RV_PLIC_PERMIT[61] != (RV_PLIC_PERMIT[61] & reg_be))) wr_err = 1'b1 ;
     if (addr_hit[62] && reg_we && (RV_PLIC_PERMIT[62] != (RV_PLIC_PERMIT[62] & reg_be))) wr_err = 1'b1 ;
     if (addr_hit[63] && reg_we && (RV_PLIC_PERMIT[63] != (RV_PLIC_PERMIT[63] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[64] && reg_we && (RV_PLIC_PERMIT[64] != (RV_PLIC_PERMIT[64] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[65] && reg_we && (RV_PLIC_PERMIT[65] != (RV_PLIC_PERMIT[65] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[66] && reg_we && (RV_PLIC_PERMIT[66] != (RV_PLIC_PERMIT[66] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[67] && reg_we && (RV_PLIC_PERMIT[67] != (RV_PLIC_PERMIT[67] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[68] && reg_we && (RV_PLIC_PERMIT[68] != (RV_PLIC_PERMIT[68] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[69] && reg_we && (RV_PLIC_PERMIT[69] != (RV_PLIC_PERMIT[69] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[70] && reg_we && (RV_PLIC_PERMIT[70] != (RV_PLIC_PERMIT[70] & reg_be))) wr_err = 1'b1 ;
+    if (addr_hit[71] && reg_we && (RV_PLIC_PERMIT[71] != (RV_PLIC_PERMIT[71] & reg_be))) wr_err = 1'b1 ;
   end
 
 
@@ -6642,6 +7570,14 @@
 
 
 
+
+
+
+
+
+
+
+
   assign le0_le0_we = addr_hit[2] & reg_we & ~wr_err;
   assign le0_le0_wd = reg_wdata[0];
 
@@ -6807,6 +7743,30 @@
   assign le1_le54_we = addr_hit[3] & reg_we & ~wr_err;
   assign le1_le54_wd = reg_wdata[22];
 
+  assign le1_le55_we = addr_hit[3] & reg_we & ~wr_err;
+  assign le1_le55_wd = reg_wdata[23];
+
+  assign le1_le56_we = addr_hit[3] & reg_we & ~wr_err;
+  assign le1_le56_wd = reg_wdata[24];
+
+  assign le1_le57_we = addr_hit[3] & reg_we & ~wr_err;
+  assign le1_le57_wd = reg_wdata[25];
+
+  assign le1_le58_we = addr_hit[3] & reg_we & ~wr_err;
+  assign le1_le58_wd = reg_wdata[26];
+
+  assign le1_le59_we = addr_hit[3] & reg_we & ~wr_err;
+  assign le1_le59_wd = reg_wdata[27];
+
+  assign le1_le60_we = addr_hit[3] & reg_we & ~wr_err;
+  assign le1_le60_wd = reg_wdata[28];
+
+  assign le1_le61_we = addr_hit[3] & reg_we & ~wr_err;
+  assign le1_le61_wd = reg_wdata[29];
+
+  assign le1_le62_we = addr_hit[3] & reg_we & ~wr_err;
+  assign le1_le62_wd = reg_wdata[30];
+
   assign prio0_we = addr_hit[4] & reg_we & ~wr_err;
   assign prio0_wd = reg_wdata[1:0];
 
@@ -6972,179 +7932,227 @@
   assign prio54_we = addr_hit[58] & reg_we & ~wr_err;
   assign prio54_wd = reg_wdata[1:0];
 
-  assign ie00_e0_we = addr_hit[59] & reg_we & ~wr_err;
+  assign prio55_we = addr_hit[59] & reg_we & ~wr_err;
+  assign prio55_wd = reg_wdata[1:0];
+
+  assign prio56_we = addr_hit[60] & reg_we & ~wr_err;
+  assign prio56_wd = reg_wdata[1:0];
+
+  assign prio57_we = addr_hit[61] & reg_we & ~wr_err;
+  assign prio57_wd = reg_wdata[1:0];
+
+  assign prio58_we = addr_hit[62] & reg_we & ~wr_err;
+  assign prio58_wd = reg_wdata[1:0];
+
+  assign prio59_we = addr_hit[63] & reg_we & ~wr_err;
+  assign prio59_wd = reg_wdata[1:0];
+
+  assign prio60_we = addr_hit[64] & reg_we & ~wr_err;
+  assign prio60_wd = reg_wdata[1:0];
+
+  assign prio61_we = addr_hit[65] & reg_we & ~wr_err;
+  assign prio61_wd = reg_wdata[1:0];
+
+  assign prio62_we = addr_hit[66] & reg_we & ~wr_err;
+  assign prio62_wd = reg_wdata[1:0];
+
+  assign ie00_e0_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e0_wd = reg_wdata[0];
 
-  assign ie00_e1_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e1_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e1_wd = reg_wdata[1];
 
-  assign ie00_e2_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e2_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e2_wd = reg_wdata[2];
 
-  assign ie00_e3_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e3_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e3_wd = reg_wdata[3];
 
-  assign ie00_e4_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e4_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e4_wd = reg_wdata[4];
 
-  assign ie00_e5_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e5_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e5_wd = reg_wdata[5];
 
-  assign ie00_e6_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e6_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e6_wd = reg_wdata[6];
 
-  assign ie00_e7_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e7_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e7_wd = reg_wdata[7];
 
-  assign ie00_e8_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e8_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e8_wd = reg_wdata[8];
 
-  assign ie00_e9_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e9_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e9_wd = reg_wdata[9];
 
-  assign ie00_e10_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e10_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e10_wd = reg_wdata[10];
 
-  assign ie00_e11_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e11_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e11_wd = reg_wdata[11];
 
-  assign ie00_e12_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e12_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e12_wd = reg_wdata[12];
 
-  assign ie00_e13_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e13_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e13_wd = reg_wdata[13];
 
-  assign ie00_e14_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e14_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e14_wd = reg_wdata[14];
 
-  assign ie00_e15_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e15_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e15_wd = reg_wdata[15];
 
-  assign ie00_e16_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e16_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e16_wd = reg_wdata[16];
 
-  assign ie00_e17_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e17_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e17_wd = reg_wdata[17];
 
-  assign ie00_e18_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e18_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e18_wd = reg_wdata[18];
 
-  assign ie00_e19_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e19_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e19_wd = reg_wdata[19];
 
-  assign ie00_e20_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e20_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e20_wd = reg_wdata[20];
 
-  assign ie00_e21_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e21_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e21_wd = reg_wdata[21];
 
-  assign ie00_e22_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e22_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e22_wd = reg_wdata[22];
 
-  assign ie00_e23_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e23_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e23_wd = reg_wdata[23];
 
-  assign ie00_e24_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e24_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e24_wd = reg_wdata[24];
 
-  assign ie00_e25_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e25_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e25_wd = reg_wdata[25];
 
-  assign ie00_e26_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e26_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e26_wd = reg_wdata[26];
 
-  assign ie00_e27_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e27_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e27_wd = reg_wdata[27];
 
-  assign ie00_e28_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e28_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e28_wd = reg_wdata[28];
 
-  assign ie00_e29_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e29_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e29_wd = reg_wdata[29];
 
-  assign ie00_e30_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e30_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e30_wd = reg_wdata[30];
 
-  assign ie00_e31_we = addr_hit[59] & reg_we & ~wr_err;
+  assign ie00_e31_we = addr_hit[67] & reg_we & ~wr_err;
   assign ie00_e31_wd = reg_wdata[31];
 
-  assign ie01_e32_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e32_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e32_wd = reg_wdata[0];
 
-  assign ie01_e33_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e33_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e33_wd = reg_wdata[1];
 
-  assign ie01_e34_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e34_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e34_wd = reg_wdata[2];
 
-  assign ie01_e35_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e35_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e35_wd = reg_wdata[3];
 
-  assign ie01_e36_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e36_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e36_wd = reg_wdata[4];
 
-  assign ie01_e37_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e37_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e37_wd = reg_wdata[5];
 
-  assign ie01_e38_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e38_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e38_wd = reg_wdata[6];
 
-  assign ie01_e39_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e39_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e39_wd = reg_wdata[7];
 
-  assign ie01_e40_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e40_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e40_wd = reg_wdata[8];
 
-  assign ie01_e41_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e41_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e41_wd = reg_wdata[9];
 
-  assign ie01_e42_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e42_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e42_wd = reg_wdata[10];
 
-  assign ie01_e43_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e43_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e43_wd = reg_wdata[11];
 
-  assign ie01_e44_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e44_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e44_wd = reg_wdata[12];
 
-  assign ie01_e45_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e45_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e45_wd = reg_wdata[13];
 
-  assign ie01_e46_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e46_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e46_wd = reg_wdata[14];
 
-  assign ie01_e47_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e47_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e47_wd = reg_wdata[15];
 
-  assign ie01_e48_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e48_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e48_wd = reg_wdata[16];
 
-  assign ie01_e49_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e49_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e49_wd = reg_wdata[17];
 
-  assign ie01_e50_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e50_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e50_wd = reg_wdata[18];
 
-  assign ie01_e51_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e51_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e51_wd = reg_wdata[19];
 
-  assign ie01_e52_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e52_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e52_wd = reg_wdata[20];
 
-  assign ie01_e53_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e53_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e53_wd = reg_wdata[21];
 
-  assign ie01_e54_we = addr_hit[60] & reg_we & ~wr_err;
+  assign ie01_e54_we = addr_hit[68] & reg_we & ~wr_err;
   assign ie01_e54_wd = reg_wdata[22];
 
-  assign threshold0_we = addr_hit[61] & reg_we & ~wr_err;
+  assign ie01_e55_we = addr_hit[68] & reg_we & ~wr_err;
+  assign ie01_e55_wd = reg_wdata[23];
+
+  assign ie01_e56_we = addr_hit[68] & reg_we & ~wr_err;
+  assign ie01_e56_wd = reg_wdata[24];
+
+  assign ie01_e57_we = addr_hit[68] & reg_we & ~wr_err;
+  assign ie01_e57_wd = reg_wdata[25];
+
+  assign ie01_e58_we = addr_hit[68] & reg_we & ~wr_err;
+  assign ie01_e58_wd = reg_wdata[26];
+
+  assign ie01_e59_we = addr_hit[68] & reg_we & ~wr_err;
+  assign ie01_e59_wd = reg_wdata[27];
+
+  assign ie01_e60_we = addr_hit[68] & reg_we & ~wr_err;
+  assign ie01_e60_wd = reg_wdata[28];
+
+  assign ie01_e61_we = addr_hit[68] & reg_we & ~wr_err;
+  assign ie01_e61_wd = reg_wdata[29];
+
+  assign ie01_e62_we = addr_hit[68] & reg_we & ~wr_err;
+  assign ie01_e62_wd = reg_wdata[30];
+
+  assign threshold0_we = addr_hit[69] & reg_we & ~wr_err;
   assign threshold0_wd = reg_wdata[1:0];
 
-  assign cc0_we = addr_hit[62] & reg_we & ~wr_err;
+  assign cc0_we = addr_hit[70] & reg_we & ~wr_err;
   assign cc0_wd = reg_wdata[5:0];
-  assign cc0_re = addr_hit[62] && reg_re;
+  assign cc0_re = addr_hit[70] && reg_re;
 
-  assign msip0_we = addr_hit[63] & reg_we & ~wr_err;
+  assign msip0_we = addr_hit[71] & reg_we & ~wr_err;
   assign msip0_wd = reg_wdata[0];
 
   // Read data return
@@ -7210,6 +8218,14 @@
         reg_rdata_next[20] = ip1_p52_qs;
         reg_rdata_next[21] = ip1_p53_qs;
         reg_rdata_next[22] = ip1_p54_qs;
+        reg_rdata_next[23] = ip1_p55_qs;
+        reg_rdata_next[24] = ip1_p56_qs;
+        reg_rdata_next[25] = ip1_p57_qs;
+        reg_rdata_next[26] = ip1_p58_qs;
+        reg_rdata_next[27] = ip1_p59_qs;
+        reg_rdata_next[28] = ip1_p60_qs;
+        reg_rdata_next[29] = ip1_p61_qs;
+        reg_rdata_next[30] = ip1_p62_qs;
       end
 
       addr_hit[2]: begin
@@ -7271,6 +8287,14 @@
         reg_rdata_next[20] = le1_le52_qs;
         reg_rdata_next[21] = le1_le53_qs;
         reg_rdata_next[22] = le1_le54_qs;
+        reg_rdata_next[23] = le1_le55_qs;
+        reg_rdata_next[24] = le1_le56_qs;
+        reg_rdata_next[25] = le1_le57_qs;
+        reg_rdata_next[26] = le1_le58_qs;
+        reg_rdata_next[27] = le1_le59_qs;
+        reg_rdata_next[28] = le1_le60_qs;
+        reg_rdata_next[29] = le1_le61_qs;
+        reg_rdata_next[30] = le1_le62_qs;
       end
 
       addr_hit[4]: begin
@@ -7494,6 +8518,38 @@
       end
 
       addr_hit[59]: begin
+        reg_rdata_next[1:0] = prio55_qs;
+      end
+
+      addr_hit[60]: begin
+        reg_rdata_next[1:0] = prio56_qs;
+      end
+
+      addr_hit[61]: begin
+        reg_rdata_next[1:0] = prio57_qs;
+      end
+
+      addr_hit[62]: begin
+        reg_rdata_next[1:0] = prio58_qs;
+      end
+
+      addr_hit[63]: begin
+        reg_rdata_next[1:0] = prio59_qs;
+      end
+
+      addr_hit[64]: begin
+        reg_rdata_next[1:0] = prio60_qs;
+      end
+
+      addr_hit[65]: begin
+        reg_rdata_next[1:0] = prio61_qs;
+      end
+
+      addr_hit[66]: begin
+        reg_rdata_next[1:0] = prio62_qs;
+      end
+
+      addr_hit[67]: begin
         reg_rdata_next[0] = ie00_e0_qs;
         reg_rdata_next[1] = ie00_e1_qs;
         reg_rdata_next[2] = ie00_e2_qs;
@@ -7528,7 +8584,7 @@
         reg_rdata_next[31] = ie00_e31_qs;
       end
 
-      addr_hit[60]: begin
+      addr_hit[68]: begin
         reg_rdata_next[0] = ie01_e32_qs;
         reg_rdata_next[1] = ie01_e33_qs;
         reg_rdata_next[2] = ie01_e34_qs;
@@ -7552,17 +8608,25 @@
         reg_rdata_next[20] = ie01_e52_qs;
         reg_rdata_next[21] = ie01_e53_qs;
         reg_rdata_next[22] = ie01_e54_qs;
+        reg_rdata_next[23] = ie01_e55_qs;
+        reg_rdata_next[24] = ie01_e56_qs;
+        reg_rdata_next[25] = ie01_e57_qs;
+        reg_rdata_next[26] = ie01_e58_qs;
+        reg_rdata_next[27] = ie01_e59_qs;
+        reg_rdata_next[28] = ie01_e60_qs;
+        reg_rdata_next[29] = ie01_e61_qs;
+        reg_rdata_next[30] = ie01_e62_qs;
       end
 
-      addr_hit[61]: begin
+      addr_hit[69]: begin
         reg_rdata_next[1:0] = threshold0_qs;
       end
 
-      addr_hit[62]: begin
+      addr_hit[70]: begin
         reg_rdata_next[5:0] = cc0_qs;
       end
 
-      addr_hit[63]: begin
+      addr_hit[71]: begin
         reg_rdata_next[0] = msip0_qs;
       end
 
diff --git a/hw/top_earlgrey/ip/xbar/data/autogen/xbar_main.gen.hjson b/hw/top_earlgrey/ip/xbar/data/autogen/xbar_main.gen.hjson
index 676f05c..e377830 100644
--- a/hw/top_earlgrey/ip/xbar/data/autogen/xbar_main.gen.hjson
+++ b/hw/top_earlgrey/ip/xbar/data/autogen/xbar_main.gen.hjson
@@ -41,6 +41,8 @@
       hmac
       rv_plic
       pinmux
+      alert_handler
+      nmi_gen
     ]
     dm_sba:
     [
@@ -56,6 +58,8 @@
       hmac
       rv_plic
       pinmux
+      alert_handler
+      nmi_gen
     ]
   }
   nodes:
@@ -214,6 +218,26 @@
       pipeline_byp: "false"
       pipeline: "true"
     }
+    {
+      name: alert_handler
+      type: device
+      clock: main
+      inst_type: alert_handler
+      pipeline_byp: "false"
+      base_addr: 0x40130000
+      size_byte: 0x1000
+      pipeline: "true"
+    }
+    {
+      name: nmi_gen
+      type: device
+      clock: main
+      inst_type: nmi_gen
+      pipeline_byp: "false"
+      base_addr: 0x40140000
+      size_byte: 0x1000
+      pipeline: "true"
+    }
   ]
   clock: main
   type: xbar
diff --git a/hw/top_earlgrey/ip/xbar/dv/autogen/xbar_main_bind.sv b/hw/top_earlgrey/ip/xbar/dv/autogen/xbar_main_bind.sv
index be3cd61..913f600 100644
--- a/hw/top_earlgrey/ip/xbar/dv/autogen/xbar_main_bind.sv
+++ b/hw/top_earlgrey/ip/xbar/dv/autogen/xbar_main_bind.sv
@@ -104,6 +104,18 @@
     .h2d    (tl_pinmux_o),
     .d2h    (tl_pinmux_i)
   );
+  bind xbar_main tlul_assert tlul_assert_device_alert_handler (
+    .clk_i  (clk_main_i),
+    .rst_ni (rst_main_ni),
+    .h2d    (tl_alert_handler_o),
+    .d2h    (tl_alert_handler_i)
+  );
+  bind xbar_main tlul_assert tlul_assert_device_nmi_gen (
+    .clk_i  (clk_main_i),
+    .rst_ni (rst_main_ni),
+    .h2d    (tl_nmi_gen_o),
+    .d2h    (tl_nmi_gen_i)
+  );
 
 endmodule
 
diff --git a/hw/top_earlgrey/ip/xbar/rtl/autogen/tl_main_pkg.sv b/hw/top_earlgrey/ip/xbar/rtl/autogen/tl_main_pkg.sv
index 84b2a90..84a257b 100644
--- a/hw/top_earlgrey/ip/xbar/rtl/autogen/tl_main_pkg.sv
+++ b/hw/top_earlgrey/ip/xbar/rtl/autogen/tl_main_pkg.sv
@@ -6,36 +6,40 @@
 
 package tl_main_pkg;
 
-  localparam logic [31:0] ADDR_SPACE_ROM        = 32'h 00008000;
-  localparam logic [31:0] ADDR_SPACE_DEBUG_MEM  = 32'h 1a110000;
-  localparam logic [31:0] ADDR_SPACE_RAM_MAIN   = 32'h 10000000;
-  localparam logic [31:0] ADDR_SPACE_EFLASH     = 32'h 20000000;
-  localparam logic [31:0] ADDR_SPACE_UART       = 32'h 40000000;
-  localparam logic [31:0] ADDR_SPACE_GPIO       = 32'h 40010000;
-  localparam logic [31:0] ADDR_SPACE_SPI_DEVICE = 32'h 40020000;
-  localparam logic [31:0] ADDR_SPACE_FLASH_CTRL = 32'h 40030000;
-  localparam logic [31:0] ADDR_SPACE_RV_TIMER   = 32'h 40080000;
-  localparam logic [31:0] ADDR_SPACE_HMAC       = 32'h 40120000;
-  localparam logic [31:0] ADDR_SPACE_AES        = 32'h 40110000;
-  localparam logic [31:0] ADDR_SPACE_RV_PLIC    = 32'h 40090000;
-  localparam logic [31:0] ADDR_SPACE_PINMUX     = 32'h 40070000;
+  localparam logic [31:0] ADDR_SPACE_ROM           = 32'h 00008000;
+  localparam logic [31:0] ADDR_SPACE_DEBUG_MEM     = 32'h 1a110000;
+  localparam logic [31:0] ADDR_SPACE_RAM_MAIN      = 32'h 10000000;
+  localparam logic [31:0] ADDR_SPACE_EFLASH        = 32'h 20000000;
+  localparam logic [31:0] ADDR_SPACE_UART          = 32'h 40000000;
+  localparam logic [31:0] ADDR_SPACE_GPIO          = 32'h 40010000;
+  localparam logic [31:0] ADDR_SPACE_SPI_DEVICE    = 32'h 40020000;
+  localparam logic [31:0] ADDR_SPACE_FLASH_CTRL    = 32'h 40030000;
+  localparam logic [31:0] ADDR_SPACE_RV_TIMER      = 32'h 40080000;
+  localparam logic [31:0] ADDR_SPACE_HMAC          = 32'h 40120000;
+  localparam logic [31:0] ADDR_SPACE_AES           = 32'h 40110000;
+  localparam logic [31:0] ADDR_SPACE_RV_PLIC       = 32'h 40090000;
+  localparam logic [31:0] ADDR_SPACE_PINMUX        = 32'h 40070000;
+  localparam logic [31:0] ADDR_SPACE_ALERT_HANDLER = 32'h 40130000;
+  localparam logic [31:0] ADDR_SPACE_NMI_GEN       = 32'h 40140000;
 
-  localparam logic [31:0] ADDR_MASK_ROM        = 32'h 00001fff;
-  localparam logic [31:0] ADDR_MASK_DEBUG_MEM  = 32'h 00000fff;
-  localparam logic [31:0] ADDR_MASK_RAM_MAIN   = 32'h 0000ffff;
-  localparam logic [31:0] ADDR_MASK_EFLASH     = 32'h 0007ffff;
-  localparam logic [31:0] ADDR_MASK_UART       = 32'h 00000fff;
-  localparam logic [31:0] ADDR_MASK_GPIO       = 32'h 00000fff;
-  localparam logic [31:0] ADDR_MASK_SPI_DEVICE = 32'h 00000fff;
-  localparam logic [31:0] ADDR_MASK_FLASH_CTRL = 32'h 00000fff;
-  localparam logic [31:0] ADDR_MASK_RV_TIMER   = 32'h 00000fff;
-  localparam logic [31:0] ADDR_MASK_HMAC       = 32'h 00000fff;
-  localparam logic [31:0] ADDR_MASK_AES        = 32'h 00000fff;
-  localparam logic [31:0] ADDR_MASK_RV_PLIC    = 32'h 00000fff;
-  localparam logic [31:0] ADDR_MASK_PINMUX     = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_ROM           = 32'h 00001fff;
+  localparam logic [31:0] ADDR_MASK_DEBUG_MEM     = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_RAM_MAIN      = 32'h 0000ffff;
+  localparam logic [31:0] ADDR_MASK_EFLASH        = 32'h 0007ffff;
+  localparam logic [31:0] ADDR_MASK_UART          = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_GPIO          = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_SPI_DEVICE    = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_FLASH_CTRL    = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_RV_TIMER      = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_HMAC          = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_AES           = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_RV_PLIC       = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_PINMUX        = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_ALERT_HANDLER = 32'h 00000fff;
+  localparam logic [31:0] ADDR_MASK_NMI_GEN       = 32'h 00000fff;
 
   localparam int N_HOST   = 3;
-  localparam int N_DEVICE = 13;
+  localparam int N_DEVICE = 15;
 
   typedef enum int {
     TlRom = 0,
@@ -50,7 +54,9 @@
     TlHmac = 9,
     TlAes = 10,
     TlRvPlic = 11,
-    TlPinmux = 12
+    TlPinmux = 12,
+    TlAlertHandler = 13,
+    TlNmiGen = 14
   } tl_device_e;
 
   typedef enum int {
diff --git a/hw/top_earlgrey/ip/xbar/rtl/autogen/xbar_main.sv b/hw/top_earlgrey/ip/xbar/rtl/autogen/xbar_main.sv
index 80c5a72..2d3d421 100644
--- a/hw/top_earlgrey/ip/xbar/rtl/autogen/xbar_main.sv
+++ b/hw/top_earlgrey/ip/xbar/rtl/autogen/xbar_main.sv
@@ -7,69 +7,77 @@
 //
 // Interconnect
 // corei
-//   -> s1n_16
-//     -> sm1_17
-//       -> rom
-//     -> sm1_18
-//       -> debug_mem
+//   -> s1n_18
 //     -> sm1_19
-//       -> ram_main
+//       -> rom
 //     -> sm1_20
+//       -> debug_mem
+//     -> sm1_21
+//       -> ram_main
+//     -> sm1_22
 //       -> eflash
 // cored
-//   -> s1n_21
-//     -> sm1_17
+//   -> s1n_23
+//     -> sm1_19
 //       -> rom
-//     -> sm1_18
+//     -> sm1_20
 //       -> debug_mem
-//     -> sm1_19
+//     -> sm1_21
 //       -> ram_main
-//     -> sm1_20
-//       -> eflash
 //     -> sm1_22
-//       -> uart
-//     -> sm1_23
-//       -> gpio
+//       -> eflash
 //     -> sm1_24
-//       -> spi_device
+//       -> uart
 //     -> sm1_25
-//       -> flash_ctrl
+//       -> gpio
 //     -> sm1_26
-//       -> rv_timer
+//       -> spi_device
 //     -> sm1_27
-//       -> aes
+//       -> flash_ctrl
 //     -> sm1_28
-//       -> hmac
+//       -> rv_timer
 //     -> sm1_29
-//       -> rv_plic
+//       -> aes
 //     -> sm1_30
+//       -> hmac
+//     -> sm1_31
+//       -> rv_plic
+//     -> sm1_32
 //       -> pinmux
+//     -> sm1_33
+//       -> alert_handler
+//     -> sm1_34
+//       -> nmi_gen
 // dm_sba
-//   -> s1n_31
-//     -> sm1_17
-//       -> rom
+//   -> s1n_35
 //     -> sm1_19
+//       -> rom
+//     -> sm1_21
 //       -> ram_main
-//     -> sm1_20
-//       -> eflash
 //     -> sm1_22
-//       -> uart
-//     -> sm1_23
-//       -> gpio
+//       -> eflash
 //     -> sm1_24
-//       -> spi_device
+//       -> uart
 //     -> sm1_25
-//       -> flash_ctrl
+//       -> gpio
 //     -> sm1_26
-//       -> rv_timer
+//       -> spi_device
 //     -> sm1_27
-//       -> aes
+//       -> flash_ctrl
 //     -> sm1_28
-//       -> hmac
+//       -> rv_timer
 //     -> sm1_29
-//       -> rv_plic
+//       -> aes
 //     -> sm1_30
+//       -> hmac
+//     -> sm1_31
+//       -> rv_plic
+//     -> sm1_32
 //       -> pinmux
+//     -> sm1_33
+//       -> alert_handler
+//     -> sm1_34
+//       -> nmi_gen
 
 module xbar_main (
   input clk_main_i,
@@ -110,6 +118,10 @@
   input  tlul_pkg::tl_d2h_t tl_rv_plic_i,
   output tlul_pkg::tl_h2d_t tl_pinmux_o,
   input  tlul_pkg::tl_d2h_t tl_pinmux_i,
+  output tlul_pkg::tl_h2d_t tl_alert_handler_o,
+  input  tlul_pkg::tl_d2h_t tl_alert_handler_i,
+  output tlul_pkg::tl_h2d_t tl_nmi_gen_o,
+  input  tlul_pkg::tl_d2h_t tl_nmi_gen_i,
 
   input scanmode_i
 );
@@ -122,29 +134,15 @@
   logic unused_scanmode;
   assign unused_scanmode = scanmode_i;
 
-  tl_h2d_t tl_s1n_16_us_h2d ;
-  tl_d2h_t tl_s1n_16_us_d2h ;
+  tl_h2d_t tl_s1n_18_us_h2d ;
+  tl_d2h_t tl_s1n_18_us_d2h ;
 
 
-  tl_h2d_t tl_s1n_16_ds_h2d [4];
-  tl_d2h_t tl_s1n_16_ds_d2h [4];
+  tl_h2d_t tl_s1n_18_ds_h2d [4];
+  tl_d2h_t tl_s1n_18_ds_d2h [4];
 
   // Create steering signal
-  logic [2:0] dev_sel_s1n_16;
-
-
-  tl_h2d_t tl_sm1_17_us_h2d [3];
-  tl_d2h_t tl_sm1_17_us_d2h [3];
-
-  tl_h2d_t tl_sm1_17_ds_h2d ;
-  tl_d2h_t tl_sm1_17_ds_d2h ;
-
-
-  tl_h2d_t tl_sm1_18_us_h2d [2];
-  tl_d2h_t tl_sm1_18_us_d2h [2];
-
-  tl_h2d_t tl_sm1_18_ds_h2d ;
-  tl_d2h_t tl_sm1_18_ds_d2h ;
+  logic [2:0] dev_sel_s1n_18;
 
 
   tl_h2d_t tl_sm1_19_us_h2d [3];
@@ -154,35 +152,35 @@
   tl_d2h_t tl_sm1_19_ds_d2h ;
 
 
-  tl_h2d_t tl_sm1_20_us_h2d [3];
-  tl_d2h_t tl_sm1_20_us_d2h [3];
+  tl_h2d_t tl_sm1_20_us_h2d [2];
+  tl_d2h_t tl_sm1_20_us_d2h [2];
 
   tl_h2d_t tl_sm1_20_ds_h2d ;
   tl_d2h_t tl_sm1_20_ds_d2h ;
 
-  tl_h2d_t tl_s1n_21_us_h2d ;
-  tl_d2h_t tl_s1n_21_us_d2h ;
+
+  tl_h2d_t tl_sm1_21_us_h2d [3];
+  tl_d2h_t tl_sm1_21_us_d2h [3];
+
+  tl_h2d_t tl_sm1_21_ds_h2d ;
+  tl_d2h_t tl_sm1_21_ds_d2h ;
 
 
-  tl_h2d_t tl_s1n_21_ds_h2d [13];
-  tl_d2h_t tl_s1n_21_ds_d2h [13];
-
-  // Create steering signal
-  logic [3:0] dev_sel_s1n_21;
-
-
-  tl_h2d_t tl_sm1_22_us_h2d [2];
-  tl_d2h_t tl_sm1_22_us_d2h [2];
+  tl_h2d_t tl_sm1_22_us_h2d [3];
+  tl_d2h_t tl_sm1_22_us_d2h [3];
 
   tl_h2d_t tl_sm1_22_ds_h2d ;
   tl_d2h_t tl_sm1_22_ds_d2h ;
 
+  tl_h2d_t tl_s1n_23_us_h2d ;
+  tl_d2h_t tl_s1n_23_us_d2h ;
 
-  tl_h2d_t tl_sm1_23_us_h2d [2];
-  tl_d2h_t tl_sm1_23_us_d2h [2];
 
-  tl_h2d_t tl_sm1_23_ds_h2d ;
-  tl_d2h_t tl_sm1_23_ds_d2h ;
+  tl_h2d_t tl_s1n_23_ds_h2d [15];
+  tl_d2h_t tl_s1n_23_ds_d2h [15];
+
+  // Create steering signal
+  logic [3:0] dev_sel_s1n_23;
 
 
   tl_h2d_t tl_sm1_24_us_h2d [2];
@@ -233,226 +231,280 @@
   tl_h2d_t tl_sm1_30_ds_h2d ;
   tl_d2h_t tl_sm1_30_ds_d2h ;
 
-  tl_h2d_t tl_s1n_31_us_h2d ;
-  tl_d2h_t tl_s1n_31_us_d2h ;
+
+  tl_h2d_t tl_sm1_31_us_h2d [2];
+  tl_d2h_t tl_sm1_31_us_d2h [2];
+
+  tl_h2d_t tl_sm1_31_ds_h2d ;
+  tl_d2h_t tl_sm1_31_ds_d2h ;
 
 
-  tl_h2d_t tl_s1n_31_ds_h2d [12];
-  tl_d2h_t tl_s1n_31_ds_d2h [12];
+  tl_h2d_t tl_sm1_32_us_h2d [2];
+  tl_d2h_t tl_sm1_32_us_d2h [2];
+
+  tl_h2d_t tl_sm1_32_ds_h2d ;
+  tl_d2h_t tl_sm1_32_ds_d2h ;
+
+
+  tl_h2d_t tl_sm1_33_us_h2d [2];
+  tl_d2h_t tl_sm1_33_us_d2h [2];
+
+  tl_h2d_t tl_sm1_33_ds_h2d ;
+  tl_d2h_t tl_sm1_33_ds_d2h ;
+
+
+  tl_h2d_t tl_sm1_34_us_h2d [2];
+  tl_d2h_t tl_sm1_34_us_d2h [2];
+
+  tl_h2d_t tl_sm1_34_ds_h2d ;
+  tl_d2h_t tl_sm1_34_ds_d2h ;
+
+  tl_h2d_t tl_s1n_35_us_h2d ;
+  tl_d2h_t tl_s1n_35_us_d2h ;
+
+
+  tl_h2d_t tl_s1n_35_ds_h2d [14];
+  tl_d2h_t tl_s1n_35_ds_d2h [14];
 
   // Create steering signal
-  logic [3:0] dev_sel_s1n_31;
+  logic [3:0] dev_sel_s1n_35;
 
 
 
-  assign tl_sm1_17_us_h2d[0] = tl_s1n_16_ds_h2d[0];
-  assign tl_s1n_16_ds_d2h[0] = tl_sm1_17_us_d2h[0];
+  assign tl_sm1_19_us_h2d[0] = tl_s1n_18_ds_h2d[0];
+  assign tl_s1n_18_ds_d2h[0] = tl_sm1_19_us_d2h[0];
 
-  assign tl_sm1_18_us_h2d[0] = tl_s1n_16_ds_h2d[1];
-  assign tl_s1n_16_ds_d2h[1] = tl_sm1_18_us_d2h[0];
+  assign tl_sm1_20_us_h2d[0] = tl_s1n_18_ds_h2d[1];
+  assign tl_s1n_18_ds_d2h[1] = tl_sm1_20_us_d2h[0];
 
-  assign tl_sm1_19_us_h2d[0] = tl_s1n_16_ds_h2d[2];
-  assign tl_s1n_16_ds_d2h[2] = tl_sm1_19_us_d2h[0];
+  assign tl_sm1_21_us_h2d[0] = tl_s1n_18_ds_h2d[2];
+  assign tl_s1n_18_ds_d2h[2] = tl_sm1_21_us_d2h[0];
 
-  assign tl_sm1_20_us_h2d[0] = tl_s1n_16_ds_h2d[3];
-  assign tl_s1n_16_ds_d2h[3] = tl_sm1_20_us_d2h[0];
+  assign tl_sm1_22_us_h2d[0] = tl_s1n_18_ds_h2d[3];
+  assign tl_s1n_18_ds_d2h[3] = tl_sm1_22_us_d2h[0];
 
-  assign tl_sm1_17_us_h2d[1] = tl_s1n_21_ds_h2d[0];
-  assign tl_s1n_21_ds_d2h[0] = tl_sm1_17_us_d2h[1];
+  assign tl_sm1_19_us_h2d[1] = tl_s1n_23_ds_h2d[0];
+  assign tl_s1n_23_ds_d2h[0] = tl_sm1_19_us_d2h[1];
 
-  assign tl_sm1_18_us_h2d[1] = tl_s1n_21_ds_h2d[1];
-  assign tl_s1n_21_ds_d2h[1] = tl_sm1_18_us_d2h[1];
+  assign tl_sm1_20_us_h2d[1] = tl_s1n_23_ds_h2d[1];
+  assign tl_s1n_23_ds_d2h[1] = tl_sm1_20_us_d2h[1];
 
-  assign tl_sm1_19_us_h2d[1] = tl_s1n_21_ds_h2d[2];
-  assign tl_s1n_21_ds_d2h[2] = tl_sm1_19_us_d2h[1];
+  assign tl_sm1_21_us_h2d[1] = tl_s1n_23_ds_h2d[2];
+  assign tl_s1n_23_ds_d2h[2] = tl_sm1_21_us_d2h[1];
 
-  assign tl_sm1_20_us_h2d[1] = tl_s1n_21_ds_h2d[3];
-  assign tl_s1n_21_ds_d2h[3] = tl_sm1_20_us_d2h[1];
+  assign tl_sm1_22_us_h2d[1] = tl_s1n_23_ds_h2d[3];
+  assign tl_s1n_23_ds_d2h[3] = tl_sm1_22_us_d2h[1];
 
-  assign tl_sm1_22_us_h2d[0] = tl_s1n_21_ds_h2d[4];
-  assign tl_s1n_21_ds_d2h[4] = tl_sm1_22_us_d2h[0];
+  assign tl_sm1_24_us_h2d[0] = tl_s1n_23_ds_h2d[4];
+  assign tl_s1n_23_ds_d2h[4] = tl_sm1_24_us_d2h[0];
 
-  assign tl_sm1_23_us_h2d[0] = tl_s1n_21_ds_h2d[5];
-  assign tl_s1n_21_ds_d2h[5] = tl_sm1_23_us_d2h[0];
+  assign tl_sm1_25_us_h2d[0] = tl_s1n_23_ds_h2d[5];
+  assign tl_s1n_23_ds_d2h[5] = tl_sm1_25_us_d2h[0];
 
-  assign tl_sm1_24_us_h2d[0] = tl_s1n_21_ds_h2d[6];
-  assign tl_s1n_21_ds_d2h[6] = tl_sm1_24_us_d2h[0];
+  assign tl_sm1_26_us_h2d[0] = tl_s1n_23_ds_h2d[6];
+  assign tl_s1n_23_ds_d2h[6] = tl_sm1_26_us_d2h[0];
 
-  assign tl_sm1_25_us_h2d[0] = tl_s1n_21_ds_h2d[7];
-  assign tl_s1n_21_ds_d2h[7] = tl_sm1_25_us_d2h[0];
+  assign tl_sm1_27_us_h2d[0] = tl_s1n_23_ds_h2d[7];
+  assign tl_s1n_23_ds_d2h[7] = tl_sm1_27_us_d2h[0];
 
-  assign tl_sm1_26_us_h2d[0] = tl_s1n_21_ds_h2d[8];
-  assign tl_s1n_21_ds_d2h[8] = tl_sm1_26_us_d2h[0];
+  assign tl_sm1_28_us_h2d[0] = tl_s1n_23_ds_h2d[8];
+  assign tl_s1n_23_ds_d2h[8] = tl_sm1_28_us_d2h[0];
 
-  assign tl_sm1_27_us_h2d[0] = tl_s1n_21_ds_h2d[9];
-  assign tl_s1n_21_ds_d2h[9] = tl_sm1_27_us_d2h[0];
+  assign tl_sm1_29_us_h2d[0] = tl_s1n_23_ds_h2d[9];
+  assign tl_s1n_23_ds_d2h[9] = tl_sm1_29_us_d2h[0];
 
-  assign tl_sm1_28_us_h2d[0] = tl_s1n_21_ds_h2d[10];
-  assign tl_s1n_21_ds_d2h[10] = tl_sm1_28_us_d2h[0];
+  assign tl_sm1_30_us_h2d[0] = tl_s1n_23_ds_h2d[10];
+  assign tl_s1n_23_ds_d2h[10] = tl_sm1_30_us_d2h[0];
 
-  assign tl_sm1_29_us_h2d[0] = tl_s1n_21_ds_h2d[11];
-  assign tl_s1n_21_ds_d2h[11] = tl_sm1_29_us_d2h[0];
+  assign tl_sm1_31_us_h2d[0] = tl_s1n_23_ds_h2d[11];
+  assign tl_s1n_23_ds_d2h[11] = tl_sm1_31_us_d2h[0];
 
-  assign tl_sm1_30_us_h2d[0] = tl_s1n_21_ds_h2d[12];
-  assign tl_s1n_21_ds_d2h[12] = tl_sm1_30_us_d2h[0];
+  assign tl_sm1_32_us_h2d[0] = tl_s1n_23_ds_h2d[12];
+  assign tl_s1n_23_ds_d2h[12] = tl_sm1_32_us_d2h[0];
 
-  assign tl_sm1_17_us_h2d[2] = tl_s1n_31_ds_h2d[0];
-  assign tl_s1n_31_ds_d2h[0] = tl_sm1_17_us_d2h[2];
+  assign tl_sm1_33_us_h2d[0] = tl_s1n_23_ds_h2d[13];
+  assign tl_s1n_23_ds_d2h[13] = tl_sm1_33_us_d2h[0];
 
-  assign tl_sm1_19_us_h2d[2] = tl_s1n_31_ds_h2d[1];
-  assign tl_s1n_31_ds_d2h[1] = tl_sm1_19_us_d2h[2];
+  assign tl_sm1_34_us_h2d[0] = tl_s1n_23_ds_h2d[14];
+  assign tl_s1n_23_ds_d2h[14] = tl_sm1_34_us_d2h[0];
 
-  assign tl_sm1_20_us_h2d[2] = tl_s1n_31_ds_h2d[2];
-  assign tl_s1n_31_ds_d2h[2] = tl_sm1_20_us_d2h[2];
+  assign tl_sm1_19_us_h2d[2] = tl_s1n_35_ds_h2d[0];
+  assign tl_s1n_35_ds_d2h[0] = tl_sm1_19_us_d2h[2];
 
-  assign tl_sm1_22_us_h2d[1] = tl_s1n_31_ds_h2d[3];
-  assign tl_s1n_31_ds_d2h[3] = tl_sm1_22_us_d2h[1];
+  assign tl_sm1_21_us_h2d[2] = tl_s1n_35_ds_h2d[1];
+  assign tl_s1n_35_ds_d2h[1] = tl_sm1_21_us_d2h[2];
 
-  assign tl_sm1_23_us_h2d[1] = tl_s1n_31_ds_h2d[4];
-  assign tl_s1n_31_ds_d2h[4] = tl_sm1_23_us_d2h[1];
+  assign tl_sm1_22_us_h2d[2] = tl_s1n_35_ds_h2d[2];
+  assign tl_s1n_35_ds_d2h[2] = tl_sm1_22_us_d2h[2];
 
-  assign tl_sm1_24_us_h2d[1] = tl_s1n_31_ds_h2d[5];
-  assign tl_s1n_31_ds_d2h[5] = tl_sm1_24_us_d2h[1];
+  assign tl_sm1_24_us_h2d[1] = tl_s1n_35_ds_h2d[3];
+  assign tl_s1n_35_ds_d2h[3] = tl_sm1_24_us_d2h[1];
 
-  assign tl_sm1_25_us_h2d[1] = tl_s1n_31_ds_h2d[6];
-  assign tl_s1n_31_ds_d2h[6] = tl_sm1_25_us_d2h[1];
+  assign tl_sm1_25_us_h2d[1] = tl_s1n_35_ds_h2d[4];
+  assign tl_s1n_35_ds_d2h[4] = tl_sm1_25_us_d2h[1];
 
-  assign tl_sm1_26_us_h2d[1] = tl_s1n_31_ds_h2d[7];
-  assign tl_s1n_31_ds_d2h[7] = tl_sm1_26_us_d2h[1];
+  assign tl_sm1_26_us_h2d[1] = tl_s1n_35_ds_h2d[5];
+  assign tl_s1n_35_ds_d2h[5] = tl_sm1_26_us_d2h[1];
 
-  assign tl_sm1_27_us_h2d[1] = tl_s1n_31_ds_h2d[8];
-  assign tl_s1n_31_ds_d2h[8] = tl_sm1_27_us_d2h[1];
+  assign tl_sm1_27_us_h2d[1] = tl_s1n_35_ds_h2d[6];
+  assign tl_s1n_35_ds_d2h[6] = tl_sm1_27_us_d2h[1];
 
-  assign tl_sm1_28_us_h2d[1] = tl_s1n_31_ds_h2d[9];
-  assign tl_s1n_31_ds_d2h[9] = tl_sm1_28_us_d2h[1];
+  assign tl_sm1_28_us_h2d[1] = tl_s1n_35_ds_h2d[7];
+  assign tl_s1n_35_ds_d2h[7] = tl_sm1_28_us_d2h[1];
 
-  assign tl_sm1_29_us_h2d[1] = tl_s1n_31_ds_h2d[10];
-  assign tl_s1n_31_ds_d2h[10] = tl_sm1_29_us_d2h[1];
+  assign tl_sm1_29_us_h2d[1] = tl_s1n_35_ds_h2d[8];
+  assign tl_s1n_35_ds_d2h[8] = tl_sm1_29_us_d2h[1];
 
-  assign tl_sm1_30_us_h2d[1] = tl_s1n_31_ds_h2d[11];
-  assign tl_s1n_31_ds_d2h[11] = tl_sm1_30_us_d2h[1];
+  assign tl_sm1_30_us_h2d[1] = tl_s1n_35_ds_h2d[9];
+  assign tl_s1n_35_ds_d2h[9] = tl_sm1_30_us_d2h[1];
 
-  assign tl_s1n_16_us_h2d = tl_corei_i;
-  assign tl_corei_o = tl_s1n_16_us_d2h;
+  assign tl_sm1_31_us_h2d[1] = tl_s1n_35_ds_h2d[10];
+  assign tl_s1n_35_ds_d2h[10] = tl_sm1_31_us_d2h[1];
 
-  assign tl_rom_o = tl_sm1_17_ds_h2d;
-  assign tl_sm1_17_ds_d2h = tl_rom_i;
+  assign tl_sm1_32_us_h2d[1] = tl_s1n_35_ds_h2d[11];
+  assign tl_s1n_35_ds_d2h[11] = tl_sm1_32_us_d2h[1];
 
-  assign tl_debug_mem_o = tl_sm1_18_ds_h2d;
-  assign tl_sm1_18_ds_d2h = tl_debug_mem_i;
+  assign tl_sm1_33_us_h2d[1] = tl_s1n_35_ds_h2d[12];
+  assign tl_s1n_35_ds_d2h[12] = tl_sm1_33_us_d2h[1];
 
-  assign tl_ram_main_o = tl_sm1_19_ds_h2d;
-  assign tl_sm1_19_ds_d2h = tl_ram_main_i;
+  assign tl_sm1_34_us_h2d[1] = tl_s1n_35_ds_h2d[13];
+  assign tl_s1n_35_ds_d2h[13] = tl_sm1_34_us_d2h[1];
 
-  assign tl_eflash_o = tl_sm1_20_ds_h2d;
-  assign tl_sm1_20_ds_d2h = tl_eflash_i;
+  assign tl_s1n_18_us_h2d = tl_corei_i;
+  assign tl_corei_o = tl_s1n_18_us_d2h;
 
-  assign tl_s1n_21_us_h2d = tl_cored_i;
-  assign tl_cored_o = tl_s1n_21_us_d2h;
+  assign tl_rom_o = tl_sm1_19_ds_h2d;
+  assign tl_sm1_19_ds_d2h = tl_rom_i;
 
-  assign tl_uart_o = tl_sm1_22_ds_h2d;
-  assign tl_sm1_22_ds_d2h = tl_uart_i;
+  assign tl_debug_mem_o = tl_sm1_20_ds_h2d;
+  assign tl_sm1_20_ds_d2h = tl_debug_mem_i;
 
-  assign tl_gpio_o = tl_sm1_23_ds_h2d;
-  assign tl_sm1_23_ds_d2h = tl_gpio_i;
+  assign tl_ram_main_o = tl_sm1_21_ds_h2d;
+  assign tl_sm1_21_ds_d2h = tl_ram_main_i;
 
-  assign tl_spi_device_o = tl_sm1_24_ds_h2d;
-  assign tl_sm1_24_ds_d2h = tl_spi_device_i;
+  assign tl_eflash_o = tl_sm1_22_ds_h2d;
+  assign tl_sm1_22_ds_d2h = tl_eflash_i;
 
-  assign tl_flash_ctrl_o = tl_sm1_25_ds_h2d;
-  assign tl_sm1_25_ds_d2h = tl_flash_ctrl_i;
+  assign tl_s1n_23_us_h2d = tl_cored_i;
+  assign tl_cored_o = tl_s1n_23_us_d2h;
 
-  assign tl_rv_timer_o = tl_sm1_26_ds_h2d;
-  assign tl_sm1_26_ds_d2h = tl_rv_timer_i;
+  assign tl_uart_o = tl_sm1_24_ds_h2d;
+  assign tl_sm1_24_ds_d2h = tl_uart_i;
 
-  assign tl_aes_o = tl_sm1_27_ds_h2d;
-  assign tl_sm1_27_ds_d2h = tl_aes_i;
+  assign tl_gpio_o = tl_sm1_25_ds_h2d;
+  assign tl_sm1_25_ds_d2h = tl_gpio_i;
 
-  assign tl_hmac_o = tl_sm1_28_ds_h2d;
-  assign tl_sm1_28_ds_d2h = tl_hmac_i;
+  assign tl_spi_device_o = tl_sm1_26_ds_h2d;
+  assign tl_sm1_26_ds_d2h = tl_spi_device_i;
 
-  assign tl_rv_plic_o = tl_sm1_29_ds_h2d;
-  assign tl_sm1_29_ds_d2h = tl_rv_plic_i;
+  assign tl_flash_ctrl_o = tl_sm1_27_ds_h2d;
+  assign tl_sm1_27_ds_d2h = tl_flash_ctrl_i;
 
-  assign tl_pinmux_o = tl_sm1_30_ds_h2d;
-  assign tl_sm1_30_ds_d2h = tl_pinmux_i;
+  assign tl_rv_timer_o = tl_sm1_28_ds_h2d;
+  assign tl_sm1_28_ds_d2h = tl_rv_timer_i;
 
-  assign tl_s1n_31_us_h2d = tl_dm_sba_i;
-  assign tl_dm_sba_o = tl_s1n_31_us_d2h;
+  assign tl_aes_o = tl_sm1_29_ds_h2d;
+  assign tl_sm1_29_ds_d2h = tl_aes_i;
+
+  assign tl_hmac_o = tl_sm1_30_ds_h2d;
+  assign tl_sm1_30_ds_d2h = tl_hmac_i;
+
+  assign tl_rv_plic_o = tl_sm1_31_ds_h2d;
+  assign tl_sm1_31_ds_d2h = tl_rv_plic_i;
+
+  assign tl_pinmux_o = tl_sm1_32_ds_h2d;
+  assign tl_sm1_32_ds_d2h = tl_pinmux_i;
+
+  assign tl_alert_handler_o = tl_sm1_33_ds_h2d;
+  assign tl_sm1_33_ds_d2h = tl_alert_handler_i;
+
+  assign tl_nmi_gen_o = tl_sm1_34_ds_h2d;
+  assign tl_sm1_34_ds_d2h = tl_nmi_gen_i;
+
+  assign tl_s1n_35_us_h2d = tl_dm_sba_i;
+  assign tl_dm_sba_o = tl_s1n_35_us_d2h;
 
   always_comb begin
     // default steering to generate error response if address is not within the range
-    dev_sel_s1n_16 = 3'd4;
-    if ((tl_s1n_16_us_h2d.a_address & ~(ADDR_MASK_ROM)) == ADDR_SPACE_ROM) begin
-      dev_sel_s1n_16 = 3'd0;
-    end else if ((tl_s1n_16_us_h2d.a_address & ~(ADDR_MASK_DEBUG_MEM)) == ADDR_SPACE_DEBUG_MEM) begin
-      dev_sel_s1n_16 = 3'd1;
-    end else if ((tl_s1n_16_us_h2d.a_address & ~(ADDR_MASK_RAM_MAIN)) == ADDR_SPACE_RAM_MAIN) begin
-      dev_sel_s1n_16 = 3'd2;
-    end else if ((tl_s1n_16_us_h2d.a_address & ~(ADDR_MASK_EFLASH)) == ADDR_SPACE_EFLASH) begin
-      dev_sel_s1n_16 = 3'd3;
+    dev_sel_s1n_18 = 3'd4;
+    if ((tl_s1n_18_us_h2d.a_address & ~(ADDR_MASK_ROM)) == ADDR_SPACE_ROM) begin
+      dev_sel_s1n_18 = 3'd0;
+    end else if ((tl_s1n_18_us_h2d.a_address & ~(ADDR_MASK_DEBUG_MEM)) == ADDR_SPACE_DEBUG_MEM) begin
+      dev_sel_s1n_18 = 3'd1;
+    end else if ((tl_s1n_18_us_h2d.a_address & ~(ADDR_MASK_RAM_MAIN)) == ADDR_SPACE_RAM_MAIN) begin
+      dev_sel_s1n_18 = 3'd2;
+    end else if ((tl_s1n_18_us_h2d.a_address & ~(ADDR_MASK_EFLASH)) == ADDR_SPACE_EFLASH) begin
+      dev_sel_s1n_18 = 3'd3;
     end
   end
 
   always_comb begin
     // default steering to generate error response if address is not within the range
-    dev_sel_s1n_21 = 4'd13;
-    if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_ROM)) == ADDR_SPACE_ROM) begin
-      dev_sel_s1n_21 = 4'd0;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_DEBUG_MEM)) == ADDR_SPACE_DEBUG_MEM) begin
-      dev_sel_s1n_21 = 4'd1;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_RAM_MAIN)) == ADDR_SPACE_RAM_MAIN) begin
-      dev_sel_s1n_21 = 4'd2;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_EFLASH)) == ADDR_SPACE_EFLASH) begin
-      dev_sel_s1n_21 = 4'd3;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_UART)) == ADDR_SPACE_UART) begin
-      dev_sel_s1n_21 = 4'd4;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_GPIO)) == ADDR_SPACE_GPIO) begin
-      dev_sel_s1n_21 = 4'd5;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_SPI_DEVICE)) == ADDR_SPACE_SPI_DEVICE) begin
-      dev_sel_s1n_21 = 4'd6;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_FLASH_CTRL)) == ADDR_SPACE_FLASH_CTRL) begin
-      dev_sel_s1n_21 = 4'd7;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_RV_TIMER)) == ADDR_SPACE_RV_TIMER) begin
-      dev_sel_s1n_21 = 4'd8;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_AES)) == ADDR_SPACE_AES) begin
-      dev_sel_s1n_21 = 4'd9;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_HMAC)) == ADDR_SPACE_HMAC) begin
-      dev_sel_s1n_21 = 4'd10;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_RV_PLIC)) == ADDR_SPACE_RV_PLIC) begin
-      dev_sel_s1n_21 = 4'd11;
-    end else if ((tl_s1n_21_us_h2d.a_address & ~(ADDR_MASK_PINMUX)) == ADDR_SPACE_PINMUX) begin
-      dev_sel_s1n_21 = 4'd12;
+    dev_sel_s1n_23 = 4'd15;
+    if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_ROM)) == ADDR_SPACE_ROM) begin
+      dev_sel_s1n_23 = 4'd0;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_DEBUG_MEM)) == ADDR_SPACE_DEBUG_MEM) begin
+      dev_sel_s1n_23 = 4'd1;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_RAM_MAIN)) == ADDR_SPACE_RAM_MAIN) begin
+      dev_sel_s1n_23 = 4'd2;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_EFLASH)) == ADDR_SPACE_EFLASH) begin
+      dev_sel_s1n_23 = 4'd3;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_UART)) == ADDR_SPACE_UART) begin
+      dev_sel_s1n_23 = 4'd4;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_GPIO)) == ADDR_SPACE_GPIO) begin
+      dev_sel_s1n_23 = 4'd5;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_SPI_DEVICE)) == ADDR_SPACE_SPI_DEVICE) begin
+      dev_sel_s1n_23 = 4'd6;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_FLASH_CTRL)) == ADDR_SPACE_FLASH_CTRL) begin
+      dev_sel_s1n_23 = 4'd7;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_RV_TIMER)) == ADDR_SPACE_RV_TIMER) begin
+      dev_sel_s1n_23 = 4'd8;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_AES)) == ADDR_SPACE_AES) begin
+      dev_sel_s1n_23 = 4'd9;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_HMAC)) == ADDR_SPACE_HMAC) begin
+      dev_sel_s1n_23 = 4'd10;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_RV_PLIC)) == ADDR_SPACE_RV_PLIC) begin
+      dev_sel_s1n_23 = 4'd11;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_PINMUX)) == ADDR_SPACE_PINMUX) begin
+      dev_sel_s1n_23 = 4'd12;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_ALERT_HANDLER)) == ADDR_SPACE_ALERT_HANDLER) begin
+      dev_sel_s1n_23 = 4'd13;
+    end else if ((tl_s1n_23_us_h2d.a_address & ~(ADDR_MASK_NMI_GEN)) == ADDR_SPACE_NMI_GEN) begin
+      dev_sel_s1n_23 = 4'd14;
     end
   end
 
   always_comb begin
     // default steering to generate error response if address is not within the range
-    dev_sel_s1n_31 = 4'd12;
-    if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_ROM)) == ADDR_SPACE_ROM) begin
-      dev_sel_s1n_31 = 4'd0;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_RAM_MAIN)) == ADDR_SPACE_RAM_MAIN) begin
-      dev_sel_s1n_31 = 4'd1;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_EFLASH)) == ADDR_SPACE_EFLASH) begin
-      dev_sel_s1n_31 = 4'd2;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_UART)) == ADDR_SPACE_UART) begin
-      dev_sel_s1n_31 = 4'd3;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_GPIO)) == ADDR_SPACE_GPIO) begin
-      dev_sel_s1n_31 = 4'd4;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_SPI_DEVICE)) == ADDR_SPACE_SPI_DEVICE) begin
-      dev_sel_s1n_31 = 4'd5;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_FLASH_CTRL)) == ADDR_SPACE_FLASH_CTRL) begin
-      dev_sel_s1n_31 = 4'd6;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_RV_TIMER)) == ADDR_SPACE_RV_TIMER) begin
-      dev_sel_s1n_31 = 4'd7;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_AES)) == ADDR_SPACE_AES) begin
-      dev_sel_s1n_31 = 4'd8;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_HMAC)) == ADDR_SPACE_HMAC) begin
-      dev_sel_s1n_31 = 4'd9;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_RV_PLIC)) == ADDR_SPACE_RV_PLIC) begin
-      dev_sel_s1n_31 = 4'd10;
-    end else if ((tl_s1n_31_us_h2d.a_address & ~(ADDR_MASK_PINMUX)) == ADDR_SPACE_PINMUX) begin
-      dev_sel_s1n_31 = 4'd11;
+    dev_sel_s1n_35 = 4'd14;
+    if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_ROM)) == ADDR_SPACE_ROM) begin
+      dev_sel_s1n_35 = 4'd0;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_RAM_MAIN)) == ADDR_SPACE_RAM_MAIN) begin
+      dev_sel_s1n_35 = 4'd1;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_EFLASH)) == ADDR_SPACE_EFLASH) begin
+      dev_sel_s1n_35 = 4'd2;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_UART)) == ADDR_SPACE_UART) begin
+      dev_sel_s1n_35 = 4'd3;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_GPIO)) == ADDR_SPACE_GPIO) begin
+      dev_sel_s1n_35 = 4'd4;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_SPI_DEVICE)) == ADDR_SPACE_SPI_DEVICE) begin
+      dev_sel_s1n_35 = 4'd5;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_FLASH_CTRL)) == ADDR_SPACE_FLASH_CTRL) begin
+      dev_sel_s1n_35 = 4'd6;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_RV_TIMER)) == ADDR_SPACE_RV_TIMER) begin
+      dev_sel_s1n_35 = 4'd7;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_AES)) == ADDR_SPACE_AES) begin
+      dev_sel_s1n_35 = 4'd8;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_HMAC)) == ADDR_SPACE_HMAC) begin
+      dev_sel_s1n_35 = 4'd9;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_RV_PLIC)) == ADDR_SPACE_RV_PLIC) begin
+      dev_sel_s1n_35 = 4'd10;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_PINMUX)) == ADDR_SPACE_PINMUX) begin
+      dev_sel_s1n_35 = 4'd11;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_ALERT_HANDLER)) == ADDR_SPACE_ALERT_HANDLER) begin
+      dev_sel_s1n_35 = 4'd12;
+    end else if ((tl_s1n_35_us_h2d.a_address & ~(ADDR_MASK_NMI_GEN)) == ADDR_SPACE_NMI_GEN) begin
+      dev_sel_s1n_35 = 4'd13;
     end
   end
 
@@ -464,42 +516,14 @@
     .DReqDepth ({4{4'h0}}),
     .DRspDepth ({4{4'h0}}),
     .N         (4)
-  ) u_s1n_16 (
+  ) u_s1n_18 (
     .clk_i        (clk_main_i),
     .rst_ni       (rst_main_ni),
-    .tl_h_i       (tl_s1n_16_us_h2d),
-    .tl_h_o       (tl_s1n_16_us_d2h),
-    .tl_d_o       (tl_s1n_16_ds_h2d),
-    .tl_d_i       (tl_s1n_16_ds_d2h),
-    .dev_select   (dev_sel_s1n_16)
-  );
-  tlul_socket_m1 #(
-    .HReqDepth ({3{4'h0}}),
-    .HRspDepth ({3{4'h0}}),
-    .DReqDepth (4'h0),
-    .DRspDepth (4'h0),
-    .M         (3)
-  ) u_sm1_17 (
-    .clk_i        (clk_main_i),
-    .rst_ni       (rst_main_ni),
-    .tl_h_i       (tl_sm1_17_us_h2d),
-    .tl_h_o       (tl_sm1_17_us_d2h),
-    .tl_d_o       (tl_sm1_17_ds_h2d),
-    .tl_d_i       (tl_sm1_17_ds_d2h)
-  );
-  tlul_socket_m1 #(
-    .HReqPass  (2'h0),
-    .HRspPass  (2'h0),
-    .DReqPass  (1'b0),
-    .DRspPass  (1'b0),
-    .M         (2)
-  ) u_sm1_18 (
-    .clk_i        (clk_main_i),
-    .rst_ni       (rst_main_ni),
-    .tl_h_i       (tl_sm1_18_us_h2d),
-    .tl_h_o       (tl_sm1_18_us_d2h),
-    .tl_d_o       (tl_sm1_18_ds_h2d),
-    .tl_d_i       (tl_sm1_18_ds_d2h)
+    .tl_h_i       (tl_s1n_18_us_h2d),
+    .tl_h_o       (tl_s1n_18_us_d2h),
+    .tl_d_o       (tl_s1n_18_ds_h2d),
+    .tl_d_i       (tl_s1n_18_ds_d2h),
+    .dev_select   (dev_sel_s1n_18)
   );
   tlul_socket_m1 #(
     .HReqDepth ({3{4'h0}}),
@@ -516,11 +540,11 @@
     .tl_d_i       (tl_sm1_19_ds_d2h)
   );
   tlul_socket_m1 #(
-    .HReqDepth ({3{4'h0}}),
-    .HRspDepth ({3{4'h0}}),
-    .DReqDepth (4'h0),
-    .DRspDepth (4'h0),
-    .M         (3)
+    .HReqPass  (2'h0),
+    .HRspPass  (2'h0),
+    .DReqPass  (1'b0),
+    .DRspPass  (1'b0),
+    .M         (2)
   ) u_sm1_20 (
     .clk_i        (clk_main_i),
     .rst_ni       (rst_main_ni),
@@ -529,27 +553,26 @@
     .tl_d_o       (tl_sm1_20_ds_h2d),
     .tl_d_i       (tl_sm1_20_ds_d2h)
   );
-  tlul_socket_1n #(
-    .HReqDepth (4'h0),
-    .HRspDepth (4'h0),
-    .DReqDepth ({13{4'h0}}),
-    .DRspDepth ({13{4'h0}}),
-    .N         (13)
-  ) u_s1n_21 (
+  tlul_socket_m1 #(
+    .HReqDepth ({3{4'h0}}),
+    .HRspDepth ({3{4'h0}}),
+    .DReqDepth (4'h0),
+    .DRspDepth (4'h0),
+    .M         (3)
+  ) u_sm1_21 (
     .clk_i        (clk_main_i),
     .rst_ni       (rst_main_ni),
-    .tl_h_i       (tl_s1n_21_us_h2d),
-    .tl_h_o       (tl_s1n_21_us_d2h),
-    .tl_d_o       (tl_s1n_21_ds_h2d),
-    .tl_d_i       (tl_s1n_21_ds_d2h),
-    .dev_select   (dev_sel_s1n_21)
+    .tl_h_i       (tl_sm1_21_us_h2d),
+    .tl_h_o       (tl_sm1_21_us_d2h),
+    .tl_d_o       (tl_sm1_21_ds_h2d),
+    .tl_d_i       (tl_sm1_21_ds_d2h)
   );
   tlul_socket_m1 #(
-    .HReqPass  (2'h0),
-    .HRspPass  (2'h0),
-    .DReqPass  (1'b0),
-    .DRspPass  (1'b0),
-    .M         (2)
+    .HReqDepth ({3{4'h0}}),
+    .HRspDepth ({3{4'h0}}),
+    .DReqDepth (4'h0),
+    .DRspDepth (4'h0),
+    .M         (3)
   ) u_sm1_22 (
     .clk_i        (clk_main_i),
     .rst_ni       (rst_main_ni),
@@ -558,19 +581,20 @@
     .tl_d_o       (tl_sm1_22_ds_h2d),
     .tl_d_i       (tl_sm1_22_ds_d2h)
   );
-  tlul_socket_m1 #(
-    .HReqPass  (2'h0),
-    .HRspPass  (2'h0),
-    .DReqPass  (1'b0),
-    .DRspPass  (1'b0),
-    .M         (2)
-  ) u_sm1_23 (
+  tlul_socket_1n #(
+    .HReqDepth (4'h0),
+    .HRspDepth (4'h0),
+    .DReqDepth ({15{4'h0}}),
+    .DRspDepth ({15{4'h0}}),
+    .N         (15)
+  ) u_s1n_23 (
     .clk_i        (clk_main_i),
     .rst_ni       (rst_main_ni),
-    .tl_h_i       (tl_sm1_23_us_h2d),
-    .tl_h_o       (tl_sm1_23_us_d2h),
-    .tl_d_o       (tl_sm1_23_ds_h2d),
-    .tl_d_i       (tl_sm1_23_ds_d2h)
+    .tl_h_i       (tl_s1n_23_us_h2d),
+    .tl_h_o       (tl_s1n_23_us_d2h),
+    .tl_d_o       (tl_s1n_23_ds_h2d),
+    .tl_d_i       (tl_s1n_23_ds_d2h),
+    .dev_select   (dev_sel_s1n_23)
   );
   tlul_socket_m1 #(
     .HReqPass  (2'h0),
@@ -670,20 +694,76 @@
     .tl_d_o       (tl_sm1_30_ds_h2d),
     .tl_d_i       (tl_sm1_30_ds_d2h)
   );
+  tlul_socket_m1 #(
+    .HReqPass  (2'h0),
+    .HRspPass  (2'h0),
+    .DReqPass  (1'b0),
+    .DRspPass  (1'b0),
+    .M         (2)
+  ) u_sm1_31 (
+    .clk_i        (clk_main_i),
+    .rst_ni       (rst_main_ni),
+    .tl_h_i       (tl_sm1_31_us_h2d),
+    .tl_h_o       (tl_sm1_31_us_d2h),
+    .tl_d_o       (tl_sm1_31_ds_h2d),
+    .tl_d_i       (tl_sm1_31_ds_d2h)
+  );
+  tlul_socket_m1 #(
+    .HReqPass  (2'h0),
+    .HRspPass  (2'h0),
+    .DReqPass  (1'b0),
+    .DRspPass  (1'b0),
+    .M         (2)
+  ) u_sm1_32 (
+    .clk_i        (clk_main_i),
+    .rst_ni       (rst_main_ni),
+    .tl_h_i       (tl_sm1_32_us_h2d),
+    .tl_h_o       (tl_sm1_32_us_d2h),
+    .tl_d_o       (tl_sm1_32_ds_h2d),
+    .tl_d_i       (tl_sm1_32_ds_d2h)
+  );
+  tlul_socket_m1 #(
+    .HReqPass  (2'h0),
+    .HRspPass  (2'h0),
+    .DReqPass  (1'b0),
+    .DRspPass  (1'b0),
+    .M         (2)
+  ) u_sm1_33 (
+    .clk_i        (clk_main_i),
+    .rst_ni       (rst_main_ni),
+    .tl_h_i       (tl_sm1_33_us_h2d),
+    .tl_h_o       (tl_sm1_33_us_d2h),
+    .tl_d_o       (tl_sm1_33_ds_h2d),
+    .tl_d_i       (tl_sm1_33_ds_d2h)
+  );
+  tlul_socket_m1 #(
+    .HReqPass  (2'h0),
+    .HRspPass  (2'h0),
+    .DReqPass  (1'b0),
+    .DRspPass  (1'b0),
+    .M         (2)
+  ) u_sm1_34 (
+    .clk_i        (clk_main_i),
+    .rst_ni       (rst_main_ni),
+    .tl_h_i       (tl_sm1_34_us_h2d),
+    .tl_h_o       (tl_sm1_34_us_d2h),
+    .tl_d_o       (tl_sm1_34_ds_h2d),
+    .tl_d_i       (tl_sm1_34_ds_d2h)
+  );
   tlul_socket_1n #(
     .HReqPass  (1'b0),
     .HRspPass  (1'b0),
-    .DReqPass  (12'h0),
-    .DRspPass  (12'h0),
-    .N         (12)
-  ) u_s1n_31 (
+    .DReqPass  (14'h0),
+    .DRspPass  (14'h0),
+    .N         (14)
+  ) u_s1n_35 (
     .clk_i        (clk_main_i),
     .rst_ni       (rst_main_ni),
-    .tl_h_i       (tl_s1n_31_us_h2d),
-    .tl_h_o       (tl_s1n_31_us_d2h),
-    .tl_d_o       (tl_s1n_31_ds_h2d),
-    .tl_d_i       (tl_s1n_31_ds_d2h),
-    .dev_select   (dev_sel_s1n_31)
+    .tl_h_i       (tl_s1n_35_us_h2d),
+    .tl_h_o       (tl_s1n_35_us_d2h),
+    .tl_d_o       (tl_s1n_35_ds_h2d),
+    .tl_d_i       (tl_s1n_35_ds_d2h),
+    .dev_select   (dev_sel_s1n_35)
   );
 
 endmodule
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
index dd3b616..0720b72 100644
--- a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
+++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
@@ -81,6 +81,10 @@
   tl_d2h_t  tl_rv_plic_d_d2h;
   tl_h2d_t  tl_pinmux_d_h2d;
   tl_d2h_t  tl_pinmux_d_d2h;
+  tl_h2d_t  tl_alert_handler_d_h2d;
+  tl_d2h_t  tl_alert_handler_d_d2h;
+  tl_h2d_t  tl_nmi_gen_d_h2d;
+  tl_d2h_t  tl_nmi_gen_d_d2h;
 
   tl_h2d_t tl_rom_d_h2d;
   tl_d2h_t tl_rom_d_d2h;
@@ -121,9 +125,11 @@
   // hmac
   // rv_plic
   // pinmux
+  // alert_handler
+  // nmi_gen
 
 
-  logic [54:0]  intr_vector;
+  logic [62:0]  intr_vector;
   // Interrupt source list
   logic intr_uart_tx_watermark;
   logic intr_uart_rx_watermark;
@@ -150,6 +156,15 @@
   logic intr_hmac_hmac_done;
   logic intr_hmac_fifo_full;
   logic intr_hmac_hmac_err;
+  logic intr_alert_handler_classa;
+  logic intr_alert_handler_classb;
+  logic intr_alert_handler_classc;
+  logic intr_alert_handler_classd;
+  logic intr_nmi_gen_esc0;
+  logic intr_nmi_gen_esc1;
+  logic intr_nmi_gen_esc2;
+  logic intr_nmi_gen_esc3;
+
 
   
   logic [0:0] irq_plic;
@@ -160,6 +175,14 @@
   // this avoids lint errors
   assign unused_irq_id = irq_id;
 
+  // Alert list
+  prim_pkg::alert_tx_t [alert_pkg::NAlerts-1:0]  alert_tx;
+  prim_pkg::alert_rx_t [alert_pkg::NAlerts-1:0]  alert_rx;
+  // Escalation outputs
+  prim_pkg::esc_tx_t [alert_pkg::N_ESC_SEV-1:0]  esc_tx;
+  prim_pkg::esc_rx_t [alert_pkg::N_ESC_SEV-1:0]  esc_rx;
+
+
   // clock assignments
   assign main_clk = clk_i;
 
@@ -389,6 +412,7 @@
   );
 
 
+
   uart uart (
       .tl_i (tl_uart_d_h2d),
       .tl_o (tl_uart_d_d2h),
@@ -452,7 +476,6 @@
       .intr_rxerr_o       (intr_spi_device_rxerr),
       .intr_rxoverflow_o  (intr_spi_device_rxoverflow),
       .intr_txunderflow_o (intr_spi_device_txunderflow),
-
       .scanmode_i   (scanmode_i),
 
       .clk_i (main_clk),
@@ -505,6 +528,10 @@
       .intr_hmac_done_o (intr_hmac_hmac_done),
       .intr_fifo_full_o (intr_hmac_fifo_full),
       .intr_hmac_err_o  (intr_hmac_hmac_err),
+      
+      // [0]: msg_push_sha_disabled 
+      .alert_tx_o  ( alert_tx[0:0] ),
+      .alert_rx_i  ( alert_rx[0:0] ),
 
       .clk_i (main_clk),
       .rst_ni (sys_rst_n)
@@ -539,8 +566,57 @@
       .rst_ni (sys_rst_n)
   );
 
+  alert_handler alert_handler (
+      .tl_i (tl_alert_handler_d_h2d),
+      .tl_o (tl_alert_handler_d_d2h),
+
+      // Interrupt
+      .intr_classa_o (intr_alert_handler_classa),
+      .intr_classb_o (intr_alert_handler_classb),
+      .intr_classc_o (intr_alert_handler_classc),
+      .intr_classd_o (intr_alert_handler_classd),
+      // TODO: wire this to hardware debug circuit
+      .crashdump_o (          ),
+      // TODO: wire this to TRNG
+      .entropy_i   ( 1'b0     ),
+      // alert signals
+      .alert_rx_o  ( alert_rx ),
+      .alert_tx_i  ( alert_tx ),
+      // escalation outputs
+      .esc_rx_i    ( esc_rx   ),
+      .esc_tx_o    ( esc_tx   ),
+
+      .clk_i (main_clk),
+      .rst_ni (sys_rst_n)
+  );
+
+  nmi_gen nmi_gen (
+      .tl_i (tl_nmi_gen_d_h2d),
+      .tl_o (tl_nmi_gen_d_d2h),
+
+      // Interrupt
+      .intr_esc0_o (intr_nmi_gen_esc0),
+      .intr_esc1_o (intr_nmi_gen_esc1),
+      .intr_esc2_o (intr_nmi_gen_esc2),
+      .intr_esc3_o (intr_nmi_gen_esc3),
+      // escalation signal inputs
+      .esc_rx_o    ( esc_rx   ),
+      .esc_tx_i    ( esc_tx   ),
+
+      .clk_i (main_clk),
+      .rst_ni (sys_rst_n)
+  );
+
   // interrupt assignments
   assign intr_vector = {
+      intr_nmi_gen_esc3,
+      intr_nmi_gen_esc2,
+      intr_nmi_gen_esc1,
+      intr_nmi_gen_esc0,
+      intr_alert_handler_classd,
+      intr_alert_handler_classc,
+      intr_alert_handler_classb,
+      intr_alert_handler_classa,
       intr_hmac_hmac_err,
       intr_hmac_fifo_full,
       intr_hmac_hmac_done,
@@ -571,38 +647,42 @@
   xbar_main u_xbar_main (
     .clk_main_i (main_clk),
     .rst_main_ni (sys_rst_n),
-    .tl_corei_i      (tl_corei_h_h2d),
-    .tl_corei_o      (tl_corei_h_d2h),
-    .tl_cored_i      (tl_cored_h_h2d),
-    .tl_cored_o      (tl_cored_h_d2h),
-    .tl_dm_sba_i     (tl_dm_sba_h_h2d),
-    .tl_dm_sba_o     (tl_dm_sba_h_d2h),
-    .tl_rom_o        (tl_rom_d_h2d),
-    .tl_rom_i        (tl_rom_d_d2h),
-    .tl_debug_mem_o  (tl_debug_mem_d_h2d),
-    .tl_debug_mem_i  (tl_debug_mem_d_d2h),
-    .tl_ram_main_o   (tl_ram_main_d_h2d),
-    .tl_ram_main_i   (tl_ram_main_d_d2h),
-    .tl_eflash_o     (tl_eflash_d_h2d),
-    .tl_eflash_i     (tl_eflash_d_d2h),
-    .tl_uart_o       (tl_uart_d_h2d),
-    .tl_uart_i       (tl_uart_d_d2h),
-    .tl_gpio_o       (tl_gpio_d_h2d),
-    .tl_gpio_i       (tl_gpio_d_d2h),
-    .tl_spi_device_o (tl_spi_device_d_h2d),
-    .tl_spi_device_i (tl_spi_device_d_d2h),
-    .tl_flash_ctrl_o (tl_flash_ctrl_d_h2d),
-    .tl_flash_ctrl_i (tl_flash_ctrl_d_d2h),
-    .tl_rv_timer_o   (tl_rv_timer_d_h2d),
-    .tl_rv_timer_i   (tl_rv_timer_d_d2h),
-    .tl_hmac_o       (tl_hmac_d_h2d),
-    .tl_hmac_i       (tl_hmac_d_d2h),
-    .tl_aes_o        (tl_aes_d_h2d),
-    .tl_aes_i        (tl_aes_d_d2h),
-    .tl_rv_plic_o    (tl_rv_plic_d_h2d),
-    .tl_rv_plic_i    (tl_rv_plic_d_d2h),
-    .tl_pinmux_o     (tl_pinmux_d_h2d),
-    .tl_pinmux_i     (tl_pinmux_d_d2h),
+    .tl_corei_i         (tl_corei_h_h2d),
+    .tl_corei_o         (tl_corei_h_d2h),
+    .tl_cored_i         (tl_cored_h_h2d),
+    .tl_cored_o         (tl_cored_h_d2h),
+    .tl_dm_sba_i        (tl_dm_sba_h_h2d),
+    .tl_dm_sba_o        (tl_dm_sba_h_d2h),
+    .tl_rom_o           (tl_rom_d_h2d),
+    .tl_rom_i           (tl_rom_d_d2h),
+    .tl_debug_mem_o     (tl_debug_mem_d_h2d),
+    .tl_debug_mem_i     (tl_debug_mem_d_d2h),
+    .tl_ram_main_o      (tl_ram_main_d_h2d),
+    .tl_ram_main_i      (tl_ram_main_d_d2h),
+    .tl_eflash_o        (tl_eflash_d_h2d),
+    .tl_eflash_i        (tl_eflash_d_d2h),
+    .tl_uart_o          (tl_uart_d_h2d),
+    .tl_uart_i          (tl_uart_d_d2h),
+    .tl_gpio_o          (tl_gpio_d_h2d),
+    .tl_gpio_i          (tl_gpio_d_d2h),
+    .tl_spi_device_o    (tl_spi_device_d_h2d),
+    .tl_spi_device_i    (tl_spi_device_d_d2h),
+    .tl_flash_ctrl_o    (tl_flash_ctrl_d_h2d),
+    .tl_flash_ctrl_i    (tl_flash_ctrl_d_d2h),
+    .tl_rv_timer_o      (tl_rv_timer_d_h2d),
+    .tl_rv_timer_i      (tl_rv_timer_d_d2h),
+    .tl_hmac_o          (tl_hmac_d_h2d),
+    .tl_hmac_i          (tl_hmac_d_d2h),
+    .tl_aes_o           (tl_aes_d_h2d),
+    .tl_aes_i           (tl_aes_d_d2h),
+    .tl_rv_plic_o       (tl_rv_plic_d_h2d),
+    .tl_rv_plic_i       (tl_rv_plic_d_d2h),
+    .tl_pinmux_o        (tl_pinmux_d_h2d),
+    .tl_pinmux_i        (tl_pinmux_d_d2h),
+    .tl_alert_handler_o (tl_alert_handler_d_h2d),
+    .tl_alert_handler_i (tl_alert_handler_d_d2h),
+    .tl_nmi_gen_o       (tl_nmi_gen_d_h2d),
+    .tl_nmi_gen_i       (tl_nmi_gen_d_d2h),
 
     .scanmode_i
   );
diff --git a/hw/top_earlgrey/top_earlgrey.core b/hw/top_earlgrey/top_earlgrey.core
index 40d5374..ff5b396 100644
--- a/hw/top_earlgrey/top_earlgrey.core
+++ b/hw/top_earlgrey/top_earlgrey.core
@@ -22,6 +22,7 @@
       - lowrisc:prim:flash
       - lowrisc:ip:flash_ctrl:0.1
       - lowrisc:constants:top_pkg
+      - lowrisc:ip:nmi_gen
     files:
       - ip/xbar/rtl/autogen/tl_main_pkg.sv
       - ip/xbar/rtl/autogen/xbar_main.sv
@@ -31,6 +32,15 @@
       - ip/pinmux/rtl/autogen/pinmux_reg_pkg.sv
       - ip/pinmux/rtl/autogen/pinmux_reg_top.sv
       - ../ip/pinmux/rtl/pinmux.sv
+      - ip/alert_handler/rtl/autogen/alert_handler_reg_pkg.sv
+      - ip/alert_handler/rtl/autogen/alert_handler_reg_top.sv
+      - ../ip/alert_handler/rtl/alert_pkg.sv
+      - ../ip/alert_handler/rtl/alert_handler_reg_wrap.sv
+      - ../ip/alert_handler/rtl/alert_handler_class.sv
+      - ../ip/alert_handler/rtl/alert_handler_ping_timer.sv
+      - ../ip/alert_handler/rtl/alert_handler_esc_timer.sv
+      - ../ip/alert_handler/rtl/alert_handler_accu.sv
+      - ../ip/alert_handler/rtl/alert_handler.sv
       - rtl/padctl.sv
       - rtl/autogen/top_earlgrey.sv
     file_type: systemVerilogSource
diff --git a/util/reggen/validate.py b/util/reggen/validate.py
index 4ffbaf4..8986d15 100644
--- a/util/reggen/validate.py
+++ b/util/reggen/validate.py
@@ -303,7 +303,7 @@
     'no_auto_intr_regs': ['s', "Set to true to suppress automatic "\
                           "generation of interrupt registers. " \
                           "Defaults to false if not present."],
-    'alert_list': ['ln', "list of peripheral alerts"],
+    'alert_list': ['lnw', "list of peripheral alerts"],
     'regwidth': ['d', "width of registers in bits (default 32)"],
     'param_list': ['lp', "list of parameters of the IP"],
     'scan': ['pb', 'Indicates the module have `scanmode_i`'],
diff --git a/util/topgen.py b/util/topgen.py
index a60f983..5ce2270 100755
--- a/util/topgen.py
+++ b/util/topgen.py
@@ -19,7 +19,7 @@
 from topgen import get_hjsonobj_xbars, merge_top, search_ips, validate_top
 
 # Filter from IP list but adding generated hjson
-filter_list = ['rv_plic', 'alert_h', 'pinmux']
+filter_list = ['rv_plic', 'pinmux']
 
 # Common header for generated files
 genhdr = '''// Copyright lowRISC contributors.
@@ -85,6 +85,103 @@
         with bind_filepath.open(mode='w', encoding='UTF-8') as fout:
             fout.write(out_bind)
 
+def generate_alert_handler(top, out_path):
+    # default values
+    esc_cnt_dw=32
+    accu_cnt_dw=16
+    lfsr_seed=2**31-1
+    async_on="'0"
+    # leave this constant
+    n_classes=4
+
+    # check if there are any params to be passed through reggen and placed into
+    # the generated package
+    ip_list_in_top = [x["name"].lower() for x in top["module"]]
+    ah_idx = ip_list_in_top.index("alert_handler")
+    if 'localparam' in top['module'][ah_idx]:
+        if 'EscCntDw' in top['module'][ah_idx]['localparam']:
+            esc_cnt_dw = int(top['module'][ah_idx]['localparam']['EscCntDw'])
+        if 'AccuCntDw' in top['module'][ah_idx]['localparam']:
+            accu_cnt_dw = int(top['module'][ah_idx]['localparam']['AccuCntDw'])
+        if 'LfsrSeed' in top['module'][ah_idx]['localparam']:
+            lfsr_seed = int(top['module'][ah_idx]['localparam']['LfsrSeed'], 0)
+
+    if esc_cnt_dw < 1:
+        log.error("EscCntDw must be larger than 0")
+    if accu_cnt_dw < 1:
+        log.error("AccuCntDw must be larger than 0")
+    if (lfsr_seed & 0xFFFFFFFF) == 0 or lfsr_seed > 2**32:
+        log.error("LFSR seed out of range or zero")
+
+    # Count number of interrupts
+    n_alerts = sum([x["width"] if "width" in x else 1 for x in top["alert"]])
+
+    if n_alerts < 1:
+        # set number of alerts to 1 such that the config is still valid
+        # that input will be tied off
+        n_alerts = 1
+        log.warning("no alerts are defined in the system");
+    else:
+        async_on = ""
+        for alert in top['alert']:
+            async_on = str(alert['async']) + async_on
+        async_on = ("%d'b" % n_alerts) + async_on
+
+    log.info("alert handler parameterization:")
+    log.info("NAlerts   = %d" % n_alerts)
+    log.info("EscCntDw  = %d" % esc_cnt_dw)
+    log.info("AccuCntDw = %d" % accu_cnt_dw)
+    log.info("LfsrSeed  = %d" % lfsr_seed)
+    log.info("AsyncOn   = %s" % async_on)
+
+
+    # Define target path
+    rtl_path = out_path / 'ip/alert_handler/rtl/autogen'
+    rtl_path.mkdir(parents=True, exist_ok=True)
+    doc_path = out_path / 'ip/alert_handler/data/autogen'
+    doc_path.mkdir(parents=True, exist_ok=True)
+
+    # Generating IP top module script is not generalized yet.
+    # So, topgen reads template files from alert_handler directory directly.
+    tpl_path = out_path / '../ip/alert_handler/data'
+    hjson_tpl_path = tpl_path / 'alert_handler.hjson.tpl'
+
+    # Generate Register Package and RTLs
+    out = StringIO()
+    with hjson_tpl_path.open(mode='r', encoding='UTF-8') as fin:
+        hjson_tpl = Template(fin.read())
+        try:
+            out = hjson_tpl.render(n_alerts=n_alerts,
+                                   esc_cnt_dw=esc_cnt_dw,
+                                   accu_cnt_dw=accu_cnt_dw,
+                                   lfsr_seed=lfsr_seed,
+                                   async_on=async_on,
+                                   n_classes=n_classes)
+        except:
+            log.error(exceptions.text_error_template().render())
+        log.info("alert_handler hjson: %s" % out)
+
+    if out == "":
+        log.error("Cannot generate alert_handler config file")
+        return
+
+    hjson_gen_path = doc_path / "alert_handler.hjson"
+    gencmd = (
+        "// util/topgen.py -t hw/top_earlgrey/doc/top_earlgrey.hjson --alert-handler-only "
+        "-o hw/top_earlgrey/\n\n")
+    with hjson_gen_path.open(mode='w', encoding='UTF-8') as fout:
+        fout.write(genhdr + gencmd + out)
+
+    # Generate register RTLs (currently using shell execute)
+    # TODO: More secure way to gneerate RTL
+    hjson_obj = hjson.loads(out,
+                            use_decimal=True,
+                            object_pairs_hook=validate.checking_dict)
+    validate.validate(hjson_obj)
+    gen_rtl.gen_rtl(hjson_obj, str(rtl_path))
+
+
+
 
 def generate_plic(top, out_path):
     # Count number of interrupts
@@ -99,7 +196,7 @@
     #   data: rv_plic.hjson
     rtl_path = out_path / 'ip/rv_plic/rtl/autogen'
     rtl_path.mkdir(parents=True, exist_ok=True)
-    doc_path = out_path / 'ip/rv_plic/doc/autogen'
+    doc_path = out_path / 'ip/rv_plic/data/autogen'
     doc_path.mkdir(parents=True, exist_ok=True)
     hjson_path = out_path / 'ip/rv_plic/data/autogen'
     hjson_path.mkdir(parents=True, exist_ok=True)
@@ -312,6 +409,10 @@
         action='store_true',
         help="If defined, the tool generates RV_PLIC RTL and Hjson only")
     parser.add_argument(
+        '--alert-handler-only',
+        action='store_true',
+        help="If defined, the tool generates alert handler hjson only")
+    parser.add_argument(
         '--hjson-only',
         action='store_true',
         help="If defined, the tool generates complete Hjson only")
@@ -335,12 +436,12 @@
 
     if (args.no_top or args.no_xbar or
             args.no_plic) and (args.top_only or args.xbar_only or
-                               args.plic_only):
+                               args.plic_only or args.alert_handler_only):
         log.error(
             "'no' series options cannot be used with 'only' series options")
         raise SystemExit(sys.exc_info()[1])
 
-    if not args.hjson_only and not args.tpl:
+    if not (args.hjson_only or args.plic_only or args.alert_handler_only or args.tpl):
         log.error(
             "Template file can be omitted only if '--hjson-only' is true")
         raise SystemExit(sys.exc_info()[1])
@@ -446,8 +547,18 @@
             raise SystemExit(sys.exc_info()[1])
 
     # Generate PLIC
-    if not args.no_plic or args.plic_only:
+    if not args.no_plic            and \
+       not args.alert_handler_only and \
+       not args.xbar_only:
         generate_plic(completecfg, out_path)
+        if args.plic_only:
+            sys.exit()
+
+    # Generate Alert Handler
+    if not args.xbar_only:
+        generate_alert_handler(completecfg, out_path)
+        if args.alert_handler_only:
+            sys.exit()
 
     generate_pinmux(completecfg, out_path)
 
diff --git a/util/topgen/merge.py b/util/topgen/merge.py
index 86c91b5..64cda8f 100644
--- a/util/topgen/merge.py
+++ b/util/topgen/merge.py
@@ -24,7 +24,7 @@
         - available_output_list: empty list if doesn't exist
         - available_inout_list: empty list if doesn't exist
         - interrupt_list: empty list if doesn't exist
-        - (TBD) alert_list: empty list if doesn't exist
+        - alert_list: empty list if doesn't exist
     """
     ip_list_in_top = [x["name"].lower() for x in top["module"]]
     ipname = ip["name"].lower()
@@ -34,6 +34,8 @@
 
     # Find index of the IP
     ip_idx = ip_list_in_top.index(ipname)
+    # Needed to detect async alert transitions below
+    ah_idx = ip_list_in_top.index("alert_handler")
 
     ip_module = top["module"][ip_idx]
 
@@ -90,7 +92,21 @@
     else:
         ip_module["interrupt_list"] = []
 
-    # (TBD) alert_list
+    # alert_list
+    if "alert_list" in ip:
+        ip_module["alert_list"] = ip["alert_list"]
+        for i in ip_module["alert_list"]:
+            i.pop('desc', None)
+            i["type"] = "alert"
+            i["width"] = int(i["width"])
+            # automatically insert asynchronous transition if necessary
+            if ip_module["clock_connections"]["clk_i"] == \
+               top["module"][ah_idx]["clock_connections"]["clk_i"]:
+                i["async"] = 0
+            else:
+                i["async"] = 1
+    else:
+        ip_module["alert_list"] = []
 
     # scan
     if "scan" in ip:
@@ -291,6 +307,26 @@
             map(partial(add_prefix_to_signal, prefix=m.lower()),
                 ip[0]["interrupt_list"]))
 
+def amend_alert(top):
+    """Check interrupt_module if exists, or just use all modules
+    """
+    if not "alert_module" in top:
+        top["alert_module"] = [x["name"] for x in top["module"]]
+
+    if not "alert" in top or top["alert"] == "":
+        top["alert"] = []
+
+    for m in top["alert_module"]:
+        ip = list(filter(lambda module: module["name"] == m, top["module"]))
+        if len(ip) == 0:
+            log.warning(
+                "Cannot find IP %s which is used in the alert_module" % m)
+            continue
+
+        log.info("Adding alert from module %s" % ip[0]["name"])
+        top["alert"] += list(
+            map(partial(add_prefix_to_signal, prefix=m.lower()),
+                ip[0]["alert_list"]))
 
 def amend_pinmux_io(top):
     """ Check dio_modules/ mio_modules. If not exists, add all modules to mio
@@ -422,6 +458,9 @@
     # Combine the interrupt (should be processed prior to xbar)
     amend_interrupt(gencfg)
 
+    # Combine the alert (should be processed prior to xbar)
+    amend_alert(gencfg)
+
     # Creates input/output list in the pinmux
     log.info("Processing PINMUX")
     amend_pinmux_io(gencfg)
diff --git a/util/topgen/validate.py b/util/topgen/validate.py
index 6c13472..2e1f447 100644
--- a/util/topgen/validate.py
+++ b/util/topgen/validate.py
@@ -50,6 +50,9 @@
 top_optional = {
     'interrupt_modules': ['l', 'list of the modules that connects to rv_plic'],
     'interrupt': ['lnw', 'interrupts (generated)'],
+    'alert_modules': ['l', 'list of the modules that connects to alert_handler'],
+    'alert': ['lnw', 'alerts (generated)'],
+    'alert_async': ['l', 'async alerts (generated)'],
     'pinmux': ['g', 'pinmux definition if doesn\'t exist, tool uses defaults'],
     'padctrl':
     ['g', 'PADS instantiation, if doesn\'t exist, tool creates direct output'],
