[ast/sensor_ctrl] Turn ast_init_done_o to Mubi and remove flash/otp alerts from AST

Signed-off-by: Jacob Levy <jacob.levy@nuvoton.com>
diff --git a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
index 6ae0f9a..1d8158d 100644
--- a/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
+++ b/hw/top_earlgrey/data/autogen/top_earlgrey.gen.hjson
@@ -4210,7 +4210,6 @@
       [
         {
           name: ast_alert
-          desc: alert requests/acknowledgements from/to `analog sensor top`
           struct: ast_alert
           package: ast_pkg
           type: req_rsp
@@ -4225,7 +4224,6 @@
         }
         {
           name: ast_status
-          desc: " Incoming `analog sensor top` status."
           struct: ast_status
           package: ast_pkg
           type: uni
@@ -4240,7 +4238,6 @@
         }
         {
           name: ast_init_done
-          desc: Initialization done indication coming from `analog sensor top`
           struct: logic
           type: uni
           act: rcv
@@ -4255,7 +4252,6 @@
         }
         {
           name: ast2pinmux
-          desc: Outgoing `analog sensor top` DFT signals that are being forwarded to the pinmux via ast_debug_out.
           struct: logic
           type: uni
           act: rcv
@@ -4270,7 +4266,6 @@
         }
         {
           name: wkup_req
-          desc: Raised if an alert event is seen during low power
           struct: logic
           type: uni
           act: req
@@ -16774,7 +16769,6 @@
       }
       {
         name: ast_alert
-        desc: alert requests/acknowledgements from/to `analog sensor top`
         struct: ast_alert
         package: ast_pkg
         type: req_rsp
@@ -16789,7 +16783,6 @@
       }
       {
         name: ast_status
-        desc: " Incoming `analog sensor top` status."
         struct: ast_status
         package: ast_pkg
         type: uni
@@ -16804,7 +16797,6 @@
       }
       {
         name: ast_init_done
-        desc: Initialization done indication coming from `analog sensor top`
         struct: logic
         type: uni
         act: rcv
@@ -16819,7 +16811,6 @@
       }
       {
         name: ast2pinmux
-        desc: Outgoing `analog sensor top` DFT signals that are being forwarded to the pinmux via ast_debug_out.
         struct: logic
         type: uni
         act: rcv
@@ -16834,7 +16825,6 @@
       }
       {
         name: wkup_req
-        desc: Raised if an alert event is seen during low power
         struct: logic
         type: uni
         act: req
diff --git a/hw/top_earlgrey/ip/ast/rtl/ast.sv b/hw/top_earlgrey/ip/ast/rtl/ast.sv
index c4b3f65..ffcee67 100644
--- a/hw/top_earlgrey/ip/ast/rtl/ast.sv
+++ b/hw/top_earlgrey/ip/ast/rtl/ast.sv
@@ -19,7 +19,7 @@
   // tlul if
   input tlul_pkg::tl_h2d_t tl_i,              // TLUL H2D
   output tlul_pkg::tl_d2h_t tl_o,             // TLUL D2H
-  output logic ast_init_done_o,               // AST (registers) Init Done
+  output prim_mubi_pkg::mubi4_t ast_init_done_o,  // AST (registers) Init Done
 
   // clocks / resets
   input clk_ast_adc_i,                        // Buffered AST ADC Clock
@@ -112,8 +112,6 @@
   output edn_pkg::edn_req_t entropy_req_o,    // Entropy Request
 
   // alerts
-  input ast_pkg::ast_dif_t fla_alert_src_i,    // Flash Alert Input
-  input ast_pkg::ast_dif_t otp_alert_src_i,    // OTP Alert Input
   input ast_pkg::ast_alert_rsp_t alert_rsp_i,  // Alerts Trigger & Acknowledge Inputs
   output ast_pkg::ast_alert_req_t alert_req_o, // Alerts Output
 
@@ -736,28 +734,6 @@
   .alert_req_o ( alert_req_o.alerts[ast_pkg::TsLoSel] )
 );  // of u_alert_ts_lo
 
-// Flash Alert (FLA)
-///////////////////////////////////////
-ast_alert u_alert_fla (
-  .clk_i ( clk_ast_alert_i ),
-  .rst_ni ( rst_ast_alert_ni ),
-  .alert_src_i ( fla_alert_src_i ),  //TODO: Add enable
-  .alert_trig_i ( alert_rsp_i.alerts_trig[ast_pkg::FlaSel] ),
-  .alert_ack_i ( alert_rsp_i.alerts_ack[ast_pkg::FlaSel] ),
-  .alert_req_o ( alert_req_o.alerts[ast_pkg::FlaSel] )
-);  // of u_alert_fla
-
-// OTP Alert (OTP)
-///////////////////////////////////////
-ast_alert u_alert_otp (
-  .clk_i ( clk_ast_alert_i ),
-  .rst_ni ( rst_ast_alert_ni ),
-  .alert_src_i ( otp_alert_src_i ),  //TODO: Add enable
-  .alert_trig_i ( alert_rsp_i.alerts_trig[ast_pkg::OtpSel] ),
-  .alert_ack_i ( alert_rsp_i.alerts_ack[ast_pkg::OtpSel] ),
-  .alert_req_o ( alert_req_o.alerts[ast_pkg::OtpSel] )
-);  // of u_alert_otp
-
 // Other-0 Alert (OT0)
 ///////////////////////////////////////
 ast_alert u_alert_ot0 (
@@ -874,10 +850,10 @@
 always_ff @( posedge clk_ast_tlul_i, negedge regal_rst_n ) begin
   if ( !regal_rst_n ) begin
     regal           <= ast_reg_pkg::AST_REGAL_RESVAL;
-    ast_init_done_o <= 1'b0;
+    ast_init_done_o <= prim_mubi_pkg::MuBi4False;
   end else if ( regal_we ) begin
     regal           <= regal_di;
-    ast_init_done_o <= 1'b1;
+    ast_init_done_o <= prim_mubi_pkg::MuBi4True;
   end
 end
 
diff --git a/hw/top_earlgrey/ip/ast/rtl/ast_pkg.sv b/hw/top_earlgrey/ip/ast/rtl/ast_pkg.sv
index 0d91538..be97a5e 100644
--- a/hw/top_earlgrey/ip/ast/rtl/ast_pkg.sv
+++ b/hw/top_earlgrey/ip/ast/rtl/ast_pkg.sv
@@ -11,22 +11,20 @@
 
 package ast_pkg;
 
-// Alerts
-parameter int unsigned NumAlerts  = 13;
 parameter int unsigned NumIoRails = 2;
+// Alerts
+parameter int unsigned NumAlerts  = 11;
 parameter int unsigned AsSel      = 0;
 parameter int unsigned CgSel      = 1;
 parameter int unsigned GdSel      = 2;
 parameter int unsigned TsHiSel    = 3;
 parameter int unsigned TsLoSel    = 4;
-parameter int unsigned FlaSel     = 5;
-parameter int unsigned OtpSel     = 6;
-parameter int unsigned Ot0Sel     = 7;
-parameter int unsigned Ot1Sel     = 8;
-parameter int unsigned Ot2Sel     = 9;
-parameter int unsigned Ot3Sel     = 10;
-parameter int unsigned Ot4Sel     = 11;
-parameter int unsigned Ot5Sel     = 12;
+parameter int unsigned Ot0Sel     = 5;
+parameter int unsigned Ot1Sel     = 6;
+parameter int unsigned Ot2Sel     = 7;
+parameter int unsigned Ot3Sel     = 8;
+parameter int unsigned Ot4Sel     = 9;
+parameter int unsigned Ot5Sel     = 10;
 //
 parameter int unsigned Lc2HcTrCyc = 102;  // ((99+1)+(3+1))x5 = 520 us
 parameter int unsigned Hc2LcTrCyc = 38;   // ((35+1)+(3+1))x5 = 200 us
diff --git a/hw/top_earlgrey/ip/sensor_ctrl/data/sensor_ctrl.hjson b/hw/top_earlgrey/ip/sensor_ctrl/data/sensor_ctrl.hjson
index aa08d1e..968d781 100644
--- a/hw/top_earlgrey/ip/sensor_ctrl/data/sensor_ctrl.hjson
+++ b/hw/top_earlgrey/ip/sensor_ctrl/data/sensor_ctrl.hjson
@@ -16,7 +16,7 @@
   ],
   available_output_list: [
     { name: "ast_debug_out",
-      desc: "Outgoing `analog sensor top` debug output signals to `pinmux`.",
+      desc: "ast debug outputs to pinmux",
       width: "9"
     }
   ],
@@ -32,7 +32,7 @@
   param_list: [
     { name:    "NumAlertEvents",
       type:    "int",
-      default: "13",
+      default: "11",
       desc:    "Number of alert events from ast",
       local:   "true"
     },
@@ -79,7 +79,6 @@
       name:    "ast_alert",
       act:     "rsp",
       package: "ast_pkg",
-      desc:    "alert requests/acknowledgements from/to `analog sensor top`"
     },
 
     { struct:  "ast_status",
@@ -87,7 +86,6 @@
       name:    "ast_status",
       act:     "rcv",
       package: "ast_pkg",
-      desc:    " Incoming `analog sensor top` status."
     },
 
     { struct:  "logic",
@@ -95,7 +93,6 @@
       name:    "ast_init_done",
       act:     "rcv",
       package: "",
-      desc:    "Initialization done indication coming from `analog sensor top`"
     },
 
     { struct:  "logic",
@@ -103,16 +100,14 @@
       name:    "ast2pinmux",
       act:     "rcv",
       width:   9,
-      package: "",
-      desc:    "Outgoing `analog sensor top` DFT signals that are being forwarded to the pinmux via ast_debug_out."
+      package: ""
     },
 
     { struct:  "logic",
       type:    "uni",
       name:    "wkup_req",
       act:     "req",
-      package: "",
-      desc:    "Raised if an alert event is seen during low power"
+      package: ""
     },
   ],
 
diff --git a/hw/top_earlgrey/ip/sensor_ctrl/rtl/sensor_ctrl_reg_pkg.sv b/hw/top_earlgrey/ip/sensor_ctrl/rtl/sensor_ctrl_reg_pkg.sv
index 8a74010..90d9f97 100644
--- a/hw/top_earlgrey/ip/sensor_ctrl/rtl/sensor_ctrl_reg_pkg.sv
+++ b/hw/top_earlgrey/ip/sensor_ctrl/rtl/sensor_ctrl_reg_pkg.sv
@@ -7,7 +7,7 @@
 package sensor_ctrl_reg_pkg;
 
   // Param list
-  parameter int NumAlertEvents = 13;
+  parameter int NumAlertEvents = 11;
   parameter int NumLocalEvents = 1;
   parameter int NumAlerts = 2;
   parameter int NumIoRails = 2;
@@ -109,21 +109,21 @@
 
   // Register -> HW type
   typedef struct packed {
-    sensor_ctrl_reg2hw_intr_state_reg_t intr_state; // [64:63]
-    sensor_ctrl_reg2hw_intr_enable_reg_t intr_enable; // [62:61]
-    sensor_ctrl_reg2hw_intr_test_reg_t intr_test; // [60:57]
-    sensor_ctrl_reg2hw_alert_test_reg_t alert_test; // [56:53]
-    sensor_ctrl_reg2hw_alert_trig_mreg_t [12:0] alert_trig; // [52:40]
-    sensor_ctrl_reg2hw_fatal_alert_en_mreg_t [12:0] fatal_alert_en; // [39:27]
-    sensor_ctrl_reg2hw_recov_alert_mreg_t [12:0] recov_alert; // [26:14]
-    sensor_ctrl_reg2hw_fatal_alert_mreg_t [13:0] fatal_alert; // [13:0]
+    sensor_ctrl_reg2hw_intr_state_reg_t intr_state; // [56:55]
+    sensor_ctrl_reg2hw_intr_enable_reg_t intr_enable; // [54:53]
+    sensor_ctrl_reg2hw_intr_test_reg_t intr_test; // [52:49]
+    sensor_ctrl_reg2hw_alert_test_reg_t alert_test; // [48:45]
+    sensor_ctrl_reg2hw_alert_trig_mreg_t [10:0] alert_trig; // [44:34]
+    sensor_ctrl_reg2hw_fatal_alert_en_mreg_t [10:0] fatal_alert_en; // [33:23]
+    sensor_ctrl_reg2hw_recov_alert_mreg_t [10:0] recov_alert; // [22:12]
+    sensor_ctrl_reg2hw_fatal_alert_mreg_t [11:0] fatal_alert; // [11:0]
   } sensor_ctrl_reg2hw_t;
 
   // HW -> register type
   typedef struct packed {
-    sensor_ctrl_hw2reg_intr_state_reg_t intr_state; // [62:59]
-    sensor_ctrl_hw2reg_recov_alert_mreg_t [12:0] recov_alert; // [58:33]
-    sensor_ctrl_hw2reg_fatal_alert_mreg_t [13:0] fatal_alert; // [32:5]
+    sensor_ctrl_hw2reg_intr_state_reg_t intr_state; // [54:51]
+    sensor_ctrl_hw2reg_recov_alert_mreg_t [10:0] recov_alert; // [50:29]
+    sensor_ctrl_hw2reg_fatal_alert_mreg_t [11:0] fatal_alert; // [28:5]
     sensor_ctrl_hw2reg_status_reg_t status; // [4:0]
   } sensor_ctrl_hw2reg_t;
 
diff --git a/hw/top_earlgrey/ip/sensor_ctrl/rtl/sensor_ctrl_reg_top.sv b/hw/top_earlgrey/ip/sensor_ctrl/rtl/sensor_ctrl_reg_top.sv
index c33b35c..03b8f02 100644
--- a/hw/top_earlgrey/ip/sensor_ctrl/rtl/sensor_ctrl_reg_top.sv
+++ b/hw/top_earlgrey/ip/sensor_ctrl/rtl/sensor_ctrl_reg_top.sv
@@ -163,10 +163,6 @@
   logic alert_trig_val_9_wd;
   logic alert_trig_val_10_qs;
   logic alert_trig_val_10_wd;
-  logic alert_trig_val_11_qs;
-  logic alert_trig_val_11_wd;
-  logic alert_trig_val_12_qs;
-  logic alert_trig_val_12_wd;
   logic fatal_alert_en_we;
   logic fatal_alert_en_val_0_qs;
   logic fatal_alert_en_val_0_wd;
@@ -190,10 +186,6 @@
   logic fatal_alert_en_val_9_wd;
   logic fatal_alert_en_val_10_qs;
   logic fatal_alert_en_val_10_wd;
-  logic fatal_alert_en_val_11_qs;
-  logic fatal_alert_en_val_11_wd;
-  logic fatal_alert_en_val_12_qs;
-  logic fatal_alert_en_val_12_wd;
   logic recov_alert_we;
   logic recov_alert_val_0_qs;
   logic recov_alert_val_0_wd;
@@ -217,10 +209,6 @@
   logic recov_alert_val_9_wd;
   logic recov_alert_val_10_qs;
   logic recov_alert_val_10_wd;
-  logic recov_alert_val_11_qs;
-  logic recov_alert_val_11_wd;
-  logic recov_alert_val_12_qs;
-  logic recov_alert_val_12_wd;
   logic fatal_alert_val_0_qs;
   logic fatal_alert_val_1_qs;
   logic fatal_alert_val_2_qs;
@@ -233,8 +221,6 @@
   logic fatal_alert_val_9_qs;
   logic fatal_alert_val_10_qs;
   logic fatal_alert_val_11_qs;
-  logic fatal_alert_val_12_qs;
-  logic fatal_alert_val_13_qs;
   logic status_ast_init_done_qs;
   logic [1:0] status_io_pok_qs;
 
@@ -736,58 +722,6 @@
     .qs     (alert_trig_val_10_qs)
   );
 
-  //   F[val_11]: 11:11
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_alert_trig_val_11 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (alert_trig_we),
-    .wd     (alert_trig_val_11_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.alert_trig[11].q),
-    .ds     (),
-
-    // to register interface (read)
-    .qs     (alert_trig_val_11_qs)
-  );
-
-  //   F[val_12]: 12:12
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_alert_trig_val_12 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (alert_trig_we),
-    .wd     (alert_trig_val_12_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.alert_trig[12].q),
-    .ds     (),
-
-    // to register interface (read)
-    .qs     (alert_trig_val_12_qs)
-  );
-
 
   // Subregister 0 of Multireg fatal_alert_en
   // R[fatal_alert_en]: V(False)
@@ -1080,58 +1014,6 @@
     .qs     (fatal_alert_en_val_10_qs)
   );
 
-  //   F[val_11]: 11:11
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_fatal_alert_en_val_11 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (fatal_alert_en_gated_we),
-    .wd     (fatal_alert_en_val_11_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.fatal_alert_en[11].q),
-    .ds     (),
-
-    // to register interface (read)
-    .qs     (fatal_alert_en_val_11_qs)
-  );
-
-  //   F[val_12]: 12:12
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRW),
-    .RESVAL  (1'h0)
-  ) u_fatal_alert_en_val_12 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (fatal_alert_en_gated_we),
-    .wd     (fatal_alert_en_val_12_wd),
-
-    // from internal hardware
-    .de     (1'b0),
-    .d      ('0),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.fatal_alert_en[12].q),
-    .ds     (),
-
-    // to register interface (read)
-    .qs     (fatal_alert_en_val_12_qs)
-  );
-
 
   // Subregister 0 of Multireg recov_alert
   // R[recov_alert]: V(False)
@@ -1421,58 +1303,6 @@
     .qs     (recov_alert_val_10_qs)
   );
 
-  //   F[val_11]: 11:11
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW1C),
-    .RESVAL  (1'h0)
-  ) u_recov_alert_val_11 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (recov_alert_we),
-    .wd     (recov_alert_val_11_wd),
-
-    // from internal hardware
-    .de     (hw2reg.recov_alert[11].de),
-    .d      (hw2reg.recov_alert[11].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.recov_alert[11].q),
-    .ds     (),
-
-    // to register interface (read)
-    .qs     (recov_alert_val_11_qs)
-  );
-
-  //   F[val_12]: 12:12
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessW1C),
-    .RESVAL  (1'h0)
-  ) u_recov_alert_val_12 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (recov_alert_we),
-    .wd     (recov_alert_val_12_wd),
-
-    // from internal hardware
-    .de     (hw2reg.recov_alert[12].de),
-    .d      (hw2reg.recov_alert[12].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.recov_alert[12].q),
-    .ds     (),
-
-    // to register interface (read)
-    .qs     (recov_alert_val_12_qs)
-  );
-
 
   // Subregister 0 of Multireg fatal_alert
   // R[fatal_alert]: V(False)
@@ -1788,58 +1618,6 @@
     .qs     (fatal_alert_val_11_qs)
   );
 
-  //   F[val_12]: 12:12
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRO),
-    .RESVAL  (1'h0)
-  ) u_fatal_alert_val_12 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (1'b0),
-    .wd     ('0),
-
-    // from internal hardware
-    .de     (hw2reg.fatal_alert[12].de),
-    .d      (hw2reg.fatal_alert[12].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.fatal_alert[12].q),
-    .ds     (),
-
-    // to register interface (read)
-    .qs     (fatal_alert_val_12_qs)
-  );
-
-  //   F[val_13]: 13:13
-  prim_subreg #(
-    .DW      (1),
-    .SwAccess(prim_subreg_pkg::SwAccessRO),
-    .RESVAL  (1'h0)
-  ) u_fatal_alert_val_13 (
-    .clk_i   (clk_i),
-    .rst_ni  (rst_ni),
-
-    // from register interface
-    .we     (1'b0),
-    .wd     ('0),
-
-    // from internal hardware
-    .de     (hw2reg.fatal_alert[13].de),
-    .d      (hw2reg.fatal_alert[13].d),
-
-    // to internal hardware
-    .qe     (),
-    .q      (reg2hw.fatal_alert[13].q),
-    .ds     (),
-
-    // to register interface (read)
-    .qs     (fatal_alert_val_13_qs)
-  );
-
 
   // R[status]: V(False)
   //   F[ast_init_done]: 0:0
@@ -1975,10 +1753,6 @@
   assign alert_trig_val_9_wd = reg_wdata[9];
 
   assign alert_trig_val_10_wd = reg_wdata[10];
-
-  assign alert_trig_val_11_wd = reg_wdata[11];
-
-  assign alert_trig_val_12_wd = reg_wdata[12];
   assign fatal_alert_en_we = addr_hit[6] & reg_we & !reg_error;
 
   assign fatal_alert_en_val_0_wd = reg_wdata[0];
@@ -2002,10 +1776,6 @@
   assign fatal_alert_en_val_9_wd = reg_wdata[9];
 
   assign fatal_alert_en_val_10_wd = reg_wdata[10];
-
-  assign fatal_alert_en_val_11_wd = reg_wdata[11];
-
-  assign fatal_alert_en_val_12_wd = reg_wdata[12];
   assign recov_alert_we = addr_hit[7] & reg_we & !reg_error;
 
   assign recov_alert_val_0_wd = reg_wdata[0];
@@ -2030,10 +1800,6 @@
 
   assign recov_alert_val_10_wd = reg_wdata[10];
 
-  assign recov_alert_val_11_wd = reg_wdata[11];
-
-  assign recov_alert_val_12_wd = reg_wdata[12];
-
   // Assign write-enables to checker logic vector.
   always_comb begin
     reg_we_check = '0;
@@ -2089,8 +1855,6 @@
         reg_rdata_next[8] = alert_trig_val_8_qs;
         reg_rdata_next[9] = alert_trig_val_9_qs;
         reg_rdata_next[10] = alert_trig_val_10_qs;
-        reg_rdata_next[11] = alert_trig_val_11_qs;
-        reg_rdata_next[12] = alert_trig_val_12_qs;
       end
 
       addr_hit[6]: begin
@@ -2105,8 +1869,6 @@
         reg_rdata_next[8] = fatal_alert_en_val_8_qs;
         reg_rdata_next[9] = fatal_alert_en_val_9_qs;
         reg_rdata_next[10] = fatal_alert_en_val_10_qs;
-        reg_rdata_next[11] = fatal_alert_en_val_11_qs;
-        reg_rdata_next[12] = fatal_alert_en_val_12_qs;
       end
 
       addr_hit[7]: begin
@@ -2121,8 +1883,6 @@
         reg_rdata_next[8] = recov_alert_val_8_qs;
         reg_rdata_next[9] = recov_alert_val_9_qs;
         reg_rdata_next[10] = recov_alert_val_10_qs;
-        reg_rdata_next[11] = recov_alert_val_11_qs;
-        reg_rdata_next[12] = recov_alert_val_12_qs;
       end
 
       addr_hit[8]: begin
@@ -2138,8 +1898,6 @@
         reg_rdata_next[9] = fatal_alert_val_9_qs;
         reg_rdata_next[10] = fatal_alert_val_10_qs;
         reg_rdata_next[11] = fatal_alert_val_11_qs;
-        reg_rdata_next[12] = fatal_alert_val_12_qs;
-        reg_rdata_next[13] = fatal_alert_val_13_qs;
       end
 
       addr_hit[9]: begin
diff --git a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv
index 53226a2..31b868f 100644
--- a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv
+++ b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv
@@ -709,11 +709,6 @@
   otp_ctrl_pkg::otp_ast_req_t otp_ctrl_otp_ast_pwr_seq;
   otp_ctrl_pkg::otp_ast_rsp_t otp_ctrl_otp_ast_pwr_seq_h;
 
-  // otp alert
-  ast_pkg::ast_dif_t otp_alert;
-  assign otp_alert.p = 1'b0;
-  assign otp_alert.n = 1'b1;
-
   logic usb_ref_pulse;
   logic usb_ref_val;
 
@@ -739,9 +734,6 @@
   prim_mubi_pkg::mubi4_t flash_bist_enable;
   logic flash_power_down_h;
   logic flash_power_ready_h;
-  ast_pkg::ast_dif_t flash_alert;
-  assign flash_alert.p = 1'b0;
-  assign flash_alert.n = 1'b1;
 
   // clock bypass req/ack
   prim_mubi_pkg::mubi4_t io_clk_byp_req;
@@ -849,10 +841,14 @@
 
   logic unused_pwr_clamp;
   assign unused_pwr_clamp = base_ast_pwr.pwr_clamp;
-  logic ast_init_done;
+
   logic usb_diff_rx_obs;
 
 
+  prim_mubi_pkg::mubi4_t ast_init_done_o;  // TODO: Tim to rename to ast_init_done
+  logic ast_init_done;                     // TODO: Tim to remove 2 lines
+  assign ast_init_done = prim_mubi_pkg::mubi4_test_true_strict(ast_init_done_o);
+
   ast #(
     .EntropyStreams(ast_pkg::EntropyStreams),
     .AdcChannels(ast_pkg::AdcChannels),
@@ -882,7 +878,7 @@
     .tl_i                  ( base_ast_bus ),
     .tl_o                  ( ast_base_bus ),
     // init done indication
-    .ast_init_done_o       ( ast_init_done ),
+    .ast_init_done_o       ( ast_init_done_o ),   // TODO: Tim to rename to ast_init_done
     // buffered clocks & resets
     .clk_ast_tlul_i (clkmgr_aon_clocks.clk_io_div4_secure),
     .clk_ast_adc_i (clkmgr_aon_clocks.clk_aon_secure),
@@ -949,8 +945,6 @@
     .entropy_rsp_i         ( ast_edn_edn_rsp ),
     .entropy_req_o         ( ast_edn_edn_req ),
     // alerts
-    .fla_alert_src_i       ( flash_alert    ),
-    .otp_alert_src_i       ( otp_alert      ),
     .alert_rsp_i           ( ast_alert_rsp  ),
     .alert_req_o           ( ast_alert_req  ),
     // dft
diff --git a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv
index a17d6e1..c5e9630 100644
--- a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv
+++ b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_cw310.sv
@@ -670,11 +670,6 @@
   otp_ctrl_pkg::otp_ast_req_t otp_ctrl_otp_ast_pwr_seq;
   otp_ctrl_pkg::otp_ast_rsp_t otp_ctrl_otp_ast_pwr_seq_h;
 
-  // otp alert
-  ast_pkg::ast_dif_t otp_alert;
-  assign otp_alert.p = 1'b0;
-  assign otp_alert.n = 1'b1;
-
   logic usb_ref_pulse;
   logic usb_ref_val;
 
@@ -700,9 +695,6 @@
   prim_mubi_pkg::mubi4_t flash_bist_enable;
   logic flash_power_down_h;
   logic flash_power_ready_h;
-  ast_pkg::ast_dif_t flash_alert;
-  assign flash_alert.p = 1'b0;
-  assign flash_alert.n = 1'b1;
 
   // clock bypass req/ack
   prim_mubi_pkg::mubi4_t io_clk_byp_req;
@@ -818,6 +810,10 @@
   };
 
 
+  prim_mubi_pkg::mubi4_t ast_init_done_o;  // TODO: Tim to rename to ast_init_done
+  logic ast_init_done;                     // TODO: Tim to remove 2 lines
+  assign ast_init_done = prim_mubi_pkg::mubi4_test_true_strict(ast_init_done_o);
+
   ast #(
     .EntropyStreams(ast_pkg::EntropyStreams),
     .AdcChannels(ast_pkg::AdcChannels),
@@ -851,7 +847,7 @@
     .tl_i                  ( base_ast_bus ),
     .tl_o                  ( ast_base_bus ),
     // init done indication
-    .ast_init_done_o       ( ast_init_done ),
+    .ast_init_done_o       ( ast_init_done_o ),   // TODO: Tim to rename to ast_init_done
     // buffered clocks & resets
     .clk_ast_tlul_i (clkmgr_aon_clocks.clk_io_div4_secure),
     .clk_ast_adc_i (clkmgr_aon_clocks.clk_aon_secure),
@@ -918,8 +914,6 @@
     .entropy_rsp_i         ( ast_edn_edn_rsp ),
     .entropy_req_o         ( ast_edn_edn_req ),
     // alerts
-    .fla_alert_src_i       ( flash_alert    ),
-    .otp_alert_src_i       ( otp_alert      ),
     .alert_rsp_i           ( ast_alert_rsp  ),
     .alert_req_o           ( ast_alert_req  ),
     // dft
diff --git a/hw/top_earlgrey/rtl/chip_earlgrey_verilator.sv b/hw/top_earlgrey/rtl/chip_earlgrey_verilator.sv
index 382a5bb..fcc2e5c 100644
--- a/hw/top_earlgrey/rtl/chip_earlgrey_verilator.sv
+++ b/hw/top_earlgrey/rtl/chip_earlgrey_verilator.sv
@@ -243,15 +243,9 @@
   logic unused_pwr_clamp;
   assign unused_pwr_clamp = base_ast_pwr.pwr_clamp;
 
-  ast_pkg::ast_dif_t flash_alert;
-  ast_pkg::ast_dif_t otp_alert;
-
-  assign otp_alert.p = 1'b0;
-  assign otp_alert.n = 1'b1;
-
-  logic ast_init_done;
-  assign flash_alert.p = 1'b0;
-  assign flash_alert.n = 1'b1;
+  prim_mubi_pkg::mubi4_t ast_init_done_o;  // TODO: Tim to rename to ast_init_done
+  logic ast_init_done;                     // TODO: Tim to remove 2 lines
+  assign ast_init_done = prim_mubi_pkg::mubi4_test_true_strict(ast_init_done_o);
 
   ast #(
     .EntropyStreams(ast_pkg::EntropyStreams),
@@ -290,7 +284,7 @@
     .tl_i                  ( base_ast_bus ),
     .tl_o                  ( ast_base_bus ),
     // init done indication
-    .ast_init_done_o       ( ast_init_done ),
+    .ast_init_done_o       ( ast_init_done_o ),   // TODO: Tim to rename to ast_init_done
     // buffered clocks & resets
     .clk_ast_tlul_i (clkmgr_aon_clocks.clk_io_div4_secure),
     .clk_ast_adc_i (clkmgr_aon_clocks.clk_aon_secure),
@@ -356,8 +350,6 @@
     .entropy_rsp_i         ( ast_edn_edn_rsp ),
     .entropy_req_o         ( ast_edn_edn_req ),
     // alerts
-    .fla_alert_src_i       ( flash_alert    ),
-    .otp_alert_src_i       ( otp_alert      ),
     .alert_rsp_i           ( ast_alert_rsp  ),
     .alert_req_o           ( ast_alert_req  ),
     // dft
diff --git a/util/topgen/templates/chiplevel.sv.tpl b/util/topgen/templates/chiplevel.sv.tpl
index 4c1a044..418b696 100644
--- a/util/topgen/templates/chiplevel.sv.tpl
+++ b/util/topgen/templates/chiplevel.sv.tpl
@@ -490,11 +490,6 @@
   otp_ctrl_pkg::otp_ast_req_t otp_ctrl_otp_ast_pwr_seq;
   otp_ctrl_pkg::otp_ast_rsp_t otp_ctrl_otp_ast_pwr_seq_h;
 
-  // otp alert
-  ast_pkg::ast_dif_t otp_alert;
-  assign otp_alert.p = 1'b0;
-  assign otp_alert.n = 1'b1;
-
   logic usb_ref_pulse;
   logic usb_ref_val;
 
@@ -520,9 +515,6 @@
   prim_mubi_pkg::mubi4_t flash_bist_enable;
   logic flash_power_down_h;
   logic flash_power_ready_h;
-  ast_pkg::ast_dif_t flash_alert;
-  assign flash_alert.p = 1'b0;
-  assign flash_alert.n = 1'b1;
 
   // clock bypass req/ack
   prim_mubi_pkg::mubi4_t io_clk_byp_req;
@@ -636,7 +628,7 @@
 
   logic unused_pwr_clamp;
   assign unused_pwr_clamp = base_ast_pwr.pwr_clamp;
-  logic ast_init_done;
+
   logic usb_diff_rx_obs;
 
 % else:
@@ -672,6 +664,10 @@
 
 % endif
 
+  prim_mubi_pkg::mubi4_t ast_init_done_o;  // TODO: Tim to rename to ast_init_done
+  logic ast_init_done;                     // TODO: Tim to remove 2 lines
+  assign ast_init_done = prim_mubi_pkg::mubi4_test_true_strict(ast_init_done_o);
+
   ast #(
     .EntropyStreams(ast_pkg::EntropyStreams),
     .AdcChannels(ast_pkg::AdcChannels),
@@ -721,7 +717,7 @@
     .tl_i                  ( base_ast_bus ),
     .tl_o                  ( ast_base_bus ),
     // init done indication
-    .ast_init_done_o       ( ast_init_done ),
+    .ast_init_done_o       ( ast_init_done_o ),   // TODO: Tim to rename to ast_init_done
     // buffered clocks & resets
     % for port, clk in ast["clock_connections"].items():
     .${port} (${clk}),
@@ -782,8 +778,6 @@
     .entropy_rsp_i         ( ast_edn_edn_rsp ),
     .entropy_req_o         ( ast_edn_edn_req ),
     // alerts
-    .fla_alert_src_i       ( flash_alert    ),
-    .otp_alert_src_i       ( otp_alert      ),
     .alert_rsp_i           ( ast_alert_rsp  ),
     .alert_req_o           ( ast_alert_req  ),
     // dft