[Cleanup] Remove lc_tx_e type and replace it with lc_tx_t

Same reason as #9264
Signed-off-by: Weicai Yang <weicai@google.com>
diff --git a/hw/dv/sv/cip_lib/cip_base_pkg.sv b/hw/dv/sv/cip_lib/cip_base_pkg.sv
index a54d803..d628853 100644
--- a/hw/dv/sv/cip_lib/cip_base_pkg.sv
+++ b/hw/dv/sv/cip_lib/cip_base_pkg.sv
@@ -99,12 +99,12 @@
 
   `undef _DV_MUBI_RAND_VAL
 
-  // Currently lc_tx_e is exactly the same as mubi4_t. create a separate function in case these
-  // 2 types are changed differently in the future
-  function automatic lc_ctrl_pkg::lc_tx_e get_rand_lc_tx_val(int t_weight = 2,
+  // Currently lc_tx_t is exactly the same as mubi4_t. Create a separate function in case these
+  // 2 types are changed differently in the future.
+  function automatic lc_ctrl_pkg::lc_tx_t get_rand_lc_tx_val(int t_weight = 2,
                                                              int f_weight = 2,
                                                              int other_weight = 1);
-    return lc_ctrl_pkg::lc_tx_e'(get_rand_mubi4_val(t_weight, f_weight, other_weight));
+    return lc_ctrl_pkg::lc_tx_t'(get_rand_mubi4_val(t_weight, f_weight, other_weight));
   endfunction
 
   // package sources
diff --git a/hw/dv/tools/vcs/cover.cfg b/hw/dv/tools/vcs/cover.cfg
index ddee4d3..a7950ac 100644
--- a/hw/dv/tools/vcs/cover.cfg
+++ b/hw/dv/tools/vcs/cover.cfg
@@ -28,7 +28,7 @@
 end
 
 begin assert
-  // These three assertions in prim_lc_sync check when `lc_ctrl_pkg::lc_tx_e` input is neither `On`
+  // These three assertions in prim_lc_sync check when `lc_ctrl_pkg::lc_tx_t` input is neither `On`
   // or `Off`, it is interrupted to the correct `On` or `Off` after one clock cycle. This behavior
   // is implemented outside of IP level design thus these assertions are not covered in IP level
   // testbenchs.
diff --git a/hw/ip/aon_timer/dv/tb.sv b/hw/ip/aon_timer/dv/tb.sv
index a22245a..8a9a2bb 100644
--- a/hw/ip/aon_timer/dv/tb.sv
+++ b/hw/ip/aon_timer/dv/tb.sv
@@ -17,7 +17,7 @@
   wire [NUM_MAX_INTERRUPTS-1:0] interrupts;
   wire                          clk_aon, rst_aon_n;
   wire                          lc_escalate_en_bit;
-  lc_ctrl_pkg::lc_tx_e          lc_escalate_en;
+  lc_ctrl_pkg::lc_tx_t          lc_escalate_en;
   wire                          wkup_expired, wdog_bark;
   wire                          wkup_req, rst_req;
   wire                          sleep;
@@ -28,7 +28,7 @@
   tl_if tl_if(.clk(clk), .rst_n(rst_n));
 
   // An input to the DUT that shows whether the CPU is enabled. Rather than wire up an interface
-  // with an lc_tx_e member, we expose lc_escalate_en as a single bit and translate it to the right
+  // with an lc_tx_t member, we expose lc_escalate_en as a single bit and translate it to the right
   // type here.
   pins_if #(1) lc_escalate_en_if (lc_escalate_en_bit);
   assign lc_escalate_en = lc_escalate_en_bit ? lc_ctrl_pkg::On : lc_ctrl_pkg::Off;
diff --git a/hw/ip/clkmgr/dv/env/clkmgr_if.sv b/hw/ip/clkmgr/dv/env/clkmgr_if.sv
index 79e47c0..abc6214 100644
--- a/hw/ip/clkmgr/dv/env/clkmgr_if.sv
+++ b/hw/ip/clkmgr/dv/env/clkmgr_if.sv
@@ -25,8 +25,8 @@
   // to 0 when all are disabled.
   pwrmgr_pkg::pwr_clk_rsp_t pwr_o;
 
-  // scanmode_i == lc_ctrl_pkg::On defeats all clock gating.
-  lc_ctrl_pkg::lc_tx_t scanmode_i;
+  // scanmode_i == MuBi4True defeats all clock gating.
+  prim_mubi_pkg::mubi4_t scanmode_i;
 
   // Life cycle enables clock bypass functionality.
   lc_ctrl_pkg::lc_tx_t lc_dft_en_i;
@@ -98,7 +98,7 @@
     pwr_i.usb_ip_clk_en = value;
   endfunction
 
-  function automatic void update_scanmode(lc_ctrl_pkg::lc_tx_t value);
+  function automatic void update_scanmode(prim_mubi_pkg::mubi4_t value);
     scanmode_i = value;
   endfunction
 
@@ -131,7 +131,7 @@
     actual_clk_io_div4 = actual_div4_value;
   endfunction
 
-  task automatic init(logic [NUM_TRANS-1:0] idle, lc_ctrl_pkg::lc_tx_t scanmode,
+  task automatic init(logic [NUM_TRANS-1:0] idle, prim_mubi_pkg::mubi4_t scanmode,
                       lc_ctrl_pkg::lc_tx_t lc_dft_en = lc_ctrl_pkg::Off,
                       lc_ctrl_pkg::lc_tx_t lc_clk_byp_req = lc_ctrl_pkg::Off,
                       prim_mubi_pkg::mubi4_t io_clk_byp_ack = prim_mubi_pkg::MuBi4False);
diff --git a/hw/ip/clkmgr/dv/env/clkmgr_scoreboard.sv b/hw/ip/clkmgr/dv/env/clkmgr_scoreboard.sv
index 7159bcb..0c9e36b 100644
--- a/hw/ip/clkmgr/dv/env/clkmgr_scoreboard.sv
+++ b/hw/ip/clkmgr/dv/env/clkmgr_scoreboard.sv
@@ -99,7 +99,8 @@
           if (cfg.io_clk_rst_vif.rst_n && cfg.en_cov) begin
             cov.peri_cg_wrap[PeriIo].sample(cfg.clkmgr_vif.peri_io_cb.clk_enable,
                                             cfg.clkmgr_vif.peri_io_cb.ip_clk_en,
-                                            cfg.clkmgr_vif.scanmode_i == lc_ctrl_pkg::On);
+                                            cfg.clkmgr_vif.scanmode_i == prim_mubi_pkg::MuBi4True
+                                            );
           end
         end
       forever
@@ -107,7 +108,8 @@
           if (cfg.io_clk_rst_vif.rst_n && cfg.en_cov) begin
             cov.peri_cg_wrap[PeriDiv2].sample(cfg.clkmgr_vif.peri_div2_cb.clk_enable,
                                               cfg.clkmgr_vif.peri_div2_cb.ip_clk_en,
-                                              cfg.clkmgr_vif.scanmode_i == lc_ctrl_pkg::On);
+                                              cfg.clkmgr_vif.scanmode_i == prim_mubi_pkg::MuBi4True
+                                              );
           end
         end
       forever
@@ -115,7 +117,8 @@
           if (cfg.io_clk_rst_vif.rst_n && cfg.en_cov) begin
             cov.peri_cg_wrap[PeriDiv4].sample(cfg.clkmgr_vif.peri_div4_cb.clk_enable,
                                               cfg.clkmgr_vif.peri_div4_cb.ip_clk_en,
-                                              cfg.clkmgr_vif.scanmode_i == lc_ctrl_pkg::On);
+                                              cfg.clkmgr_vif.scanmode_i == prim_mubi_pkg::MuBi4True
+                                              );
           end
         end
       forever
@@ -123,7 +126,8 @@
           if (cfg.io_clk_rst_vif.rst_n && cfg.en_cov) begin
             cov.peri_cg_wrap[PeriUsb].sample(cfg.clkmgr_vif.peri_usb_cb.clk_enable,
                                              cfg.clkmgr_vif.peri_usb_cb.ip_clk_en,
-                                             cfg.clkmgr_vif.scanmode_i == lc_ctrl_pkg::On);
+                                             cfg.clkmgr_vif.scanmode_i == prim_mubi_pkg::MuBi4True
+                                             );
           end
         end
     join
@@ -147,7 +151,7 @@
         src_rst_en = cfg.main_clk_rst_vif.rst_n;
       end
       if (src_rst_en && cfg.en_cov) begin
-        logic scan_en = cfg.clkmgr_vif.scanmode_i == lc_ctrl_pkg::On;
+        logic scan_en = cfg.clkmgr_vif.scanmode_i == prim_mubi_pkg::MuBi4True;
         cov.trans_cg_wrap[trans].sample(hint, clk_en, scan_en, idle);
       end
     end
diff --git a/hw/ip/clkmgr/dv/env/seq_lib/clkmgr_base_vseq.sv b/hw/ip/clkmgr/dv/env/seq_lib/clkmgr_base_vseq.sv
index 376bd31..924bf1b 100644
--- a/hw/ip/clkmgr/dv/env/seq_lib/clkmgr_base_vseq.sv
+++ b/hw/ip/clkmgr/dv/env/seq_lib/clkmgr_base_vseq.sv
@@ -25,7 +25,9 @@
   } lc_tx_t_sel_e;
 
   // This simplifies the constraint blocks.
-  function lc_tx_t get_lc_tx_t_from_sel(lc_tx_t_sel_e sel, lc_tx_t other);
+  // This function is used for 2 enum mubi4_t and lc_tx_t. Use bit[3:0], so that we can skip type
+  // casting when using this function
+  function bit[3:0] get_lc_tx_t_from_sel(lc_tx_t_sel_e sel, bit[3:0] other);
     case (sel)
       LcTxTSelOn: return On;
       LcTxTSelOff: return Off;
@@ -40,8 +42,8 @@
   rand bit [NUM_TRANS-1:0] idle;
 
   // scanmode is set according to sel_scanmode, which is randomized with weights.
-  lc_tx_t                  scanmode;
-  rand lc_tx_t             scanmode_other;
+  prim_mubi_pkg::mubi4_t   scanmode;
+  rand bit [3:0]           scanmode_other;
   rand lc_tx_t_sel_e       sel_scanmode;
   int                      scanmode_on_weight = 8;
 
@@ -51,14 +53,15 @@
       LcTxTSelOff   := 4,
       LcTxTSelOther := 4
     };
-    !(scanmode_other inside {On, Off});
+    !(scanmode_other inside {prim_mubi_pkg::MuBi4True, prim_mubi_pkg::MuBi4False});
   }
 
   // extclk_ctrl_sel is set according to sel_extclk_ctrl_sel, which is randomized with weights.
   lc_tx_t            extclk_ctrl_sel;
-  rand lc_tx_t       extclk_ctrl_sel_other;
+  rand bit [3:0]     extclk_ctrl_sel_other;
   rand lc_tx_t_sel_e sel_extclk_ctrl_sel;
 
+  // TODO, consider to use macro DV_MUBI4_DIST
   constraint extclk_ctrl_sel_c {
     sel_extclk_ctrl_sel dist {
       LcTxTSelOn    := 4,
@@ -82,7 +85,7 @@
 
   task initialize_on_start();
     idle = '1;
-    scanmode = Off;
+    scanmode = prim_mubi_pkg::MuBi4False;
     cfg.clkmgr_vif.init(.idle(idle), .scanmode(scanmode), .lc_dft_en(Off));
     io_ip_clk_en   = 1'b1;
     main_ip_clk_en = 1'b1;
diff --git a/hw/ip/lc_ctrl/dv/env/lc_ctrl_env_pkg.sv b/hw/ip/lc_ctrl/dv/env/lc_ctrl_env_pkg.sv
index 8de3b3a..1ffce65 100644
--- a/hw/ip/lc_ctrl/dv/env/lc_ctrl_env_pkg.sv
+++ b/hw/ip/lc_ctrl/dv/env/lc_ctrl_env_pkg.sv
@@ -39,17 +39,17 @@
   parameter uint OTP_PROG_DDATA_WIDTH = 1;
 
   typedef struct packed {
-    lc_ctrl_pkg::lc_tx_e lc_dft_en_o;
-    lc_ctrl_pkg::lc_tx_e lc_nvm_debug_en_o;
-    lc_ctrl_pkg::lc_tx_e lc_hw_debug_en_o;
-    lc_ctrl_pkg::lc_tx_e lc_cpu_en_o;
-    lc_ctrl_pkg::lc_tx_e lc_creator_seed_sw_rw_en_o;
-    lc_ctrl_pkg::lc_tx_e lc_owner_seed_sw_rw_en_o;
-    lc_ctrl_pkg::lc_tx_e lc_seed_hw_rd_en_o;
-    lc_ctrl_pkg::lc_tx_e lc_iso_part_sw_rd_en_o;
-    lc_ctrl_pkg::lc_tx_e lc_iso_part_sw_wr_en_o;
-    lc_ctrl_pkg::lc_tx_e lc_keymgr_en_o;
-    lc_ctrl_pkg::lc_tx_e lc_escalate_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_dft_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_nvm_debug_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_hw_debug_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_cpu_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_creator_seed_sw_rw_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_owner_seed_sw_rw_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_seed_hw_rd_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_iso_part_sw_rd_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_iso_part_sw_wr_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_keymgr_en_o;
+    lc_ctrl_pkg::lc_tx_t lc_escalate_en_o;
   } lc_outputs_t;
 
   const lc_outputs_t EXP_LC_OUTPUTS[NUM_STATES] = {
diff --git a/hw/ip/lc_ctrl/rtl/lc_ctrl.sv b/hw/ip/lc_ctrl/rtl/lc_ctrl.sv
index 35c37cf..a6d4162 100644
--- a/hw/ip/lc_ctrl/rtl/lc_ctrl.sv
+++ b/hw/ip/lc_ctrl/rtl/lc_ctrl.sv
@@ -35,7 +35,7 @@
   output jtag_pkg::jtag_rsp_t                        jtag_o,
   // This bypasses the clock inverter inside the JTAG TAP for scanmmode.
   input                                              scan_rst_ni,
-  input  lc_tx_t                                     scanmode_i,
+  input  prim_mubi_pkg::mubi4_t                      scanmode_i,
   // Alert outputs.
   input  prim_alert_pkg::alert_rx_t [NumAlerts-1:0]  alert_rx_i,
   output prim_alert_pkg::alert_tx_t [NumAlerts-1:0]  alert_tx_o,
diff --git a/hw/ip/lc_ctrl/rtl/lc_ctrl_pkg.sv b/hw/ip/lc_ctrl/rtl/lc_ctrl_pkg.sv
index adb6c90..98cd875 100644
--- a/hw/ip/lc_ctrl/rtl/lc_ctrl_pkg.sv
+++ b/hw/ip/lc_ctrl/rtl/lc_ctrl_pkg.sv
@@ -36,8 +36,7 @@
   typedef enum logic [TxWidth-1:0] {
     On  = 4'b1010,
     Off = 4'b0101
-  } lc_tx_e;
-  typedef logic [TxWidth-1:0] lc_tx_t;
+  } lc_tx_t;
   parameter lc_tx_t LC_TX_DEFAULT = lc_tx_t'(Off);
 
   parameter int RmaSeedWidth = 32;
diff --git a/hw/ip/otp_ctrl/dv/cov/otp_ctrl_cov_if.sv b/hw/ip/otp_ctrl/dv/cov/otp_ctrl_cov_if.sv
index f3d2bfc..7bc819a 100644
--- a/hw/ip/otp_ctrl/dv/cov/otp_ctrl_cov_if.sv
+++ b/hw/ip/otp_ctrl/dv/cov/otp_ctrl_cov_if.sv
@@ -9,7 +9,7 @@
   (
    input pwrmgr_pkg::pwr_otp_rsp_t                                 pwr_otp_o,
    input otp_ctrl_pkg::lc_otp_program_req_t                        lc_otp_program_i,
-   input lc_ctrl_pkg::lc_tx_t                                      lc_escalate_en_i,
+   input bit [3:0]                                                 lc_escalate_en_i,
    input otp_ctrl_pkg::flash_otp_key_req_t                         flash_otp_key_i,
    input otp_ctrl_pkg::sram_otp_key_req_t [NumSramKeyReqSlots-1:0] sram_otp_key_i,
    input otp_ctrl_pkg::otbn_otp_key_req_t                          otbn_otp_key_i
diff --git a/hw/ip/otp_ctrl/dv/env/otp_ctrl_ast_inputs_cfg.sv b/hw/ip/otp_ctrl/dv/env/otp_ctrl_ast_inputs_cfg.sv
index d908437..7154484 100644
--- a/hw/ip/otp_ctrl/dv/env/otp_ctrl_ast_inputs_cfg.sv
+++ b/hw/ip/otp_ctrl/dv/env/otp_ctrl_ast_inputs_cfg.sv
@@ -24,7 +24,7 @@
   //  Group: Variables
   rand otp_ast_rsp_t        otp_ast_pwr_seq_h;
   rand logic [otp_ctrl_pkg::OtpTestCtrlWidth-1:0] otp_vendor_test_ctrl;
-  rand lc_ctrl_pkg::lc_tx_t scanmode;
+  rand prim_mubi_pkg::mubi4_t scanmode;
   rand logic                scan_en, scan_rst_n;
 
   //  Group: Constraints
diff --git a/hw/ip/rstmgr/dv/env/rstmgr_if.sv b/hw/ip/rstmgr/dv/env/rstmgr_if.sv
index a929a37..58dfe64 100644
--- a/hw/ip/rstmgr/dv/env/rstmgr_if.sv
+++ b/hw/ip/rstmgr/dv/env/rstmgr_if.sv
@@ -30,7 +30,7 @@
   // dft bypass
   logic                                           scan_rst_ni;
 
-  lc_ctrl_pkg::lc_tx_t                            scanmode_i;
+  prim_mubi_pkg::mubi4_t                          scanmode_i;
 
   // reset outputs
   rstmgr_pkg::rstmgr_out_t                        resets_o;
diff --git a/hw/ip/rstmgr/dv/env/seq_lib/rstmgr_base_vseq.sv b/hw/ip/rstmgr/dv/env/seq_lib/rstmgr_base_vseq.sv
index b1d7dff..aeb6a82 100644
--- a/hw/ip/rstmgr/dv/env/seq_lib/rstmgr_base_vseq.sv
+++ b/hw/ip/rstmgr/dv/env/seq_lib/rstmgr_base_vseq.sv
@@ -44,17 +44,18 @@
     endcase
   endfunction
 
-  rand lc_ctrl_pkg::lc_tx_t scanmode_other;
+  rand bit [3:0]            scanmode_other;
   rand lc_tx_t_sel_e        sel_scanmode;
   int                       scanmode_on_weight = 8;
 
+  // TODO, consider to use macro DV_MUBI4_DIST
   constraint scanmode_c {
     sel_scanmode dist {
       LcTxTSelOn    := scanmode_on_weight,
       LcTxTSelOff   := 4,
       LcTxTSelOther := 4
     };
-    !(scanmode_other inside {lc_ctrl_pkg::On, lc_ctrl_pkg::Off});
+    !(scanmode_other inside {prim_mubi_pkg::MuBi4True, prim_mubi_pkg::MuBi4False});
   }
 
   rand logic [NumSwResets-1:0] sw_rst_regwen;
@@ -307,7 +308,7 @@
     cfg.main_clk_rst_vif.set_freq_mhz(MAIN_FREQ_MHZ);
     cfg.usb_clk_rst_vif.set_freq_mhz(USB_FREQ_MHZ);
     // Initial values for some input pins.
-    cfg.rstmgr_vif.scanmode_i  = lc_ctrl_pkg::Off;
+    cfg.rstmgr_vif.scanmode_i  = prim_mubi_pkg::MuBi4False;
     cfg.rstmgr_vif.scan_rst_ni = scan_rst_ni;
     set_pwrmgr_rst_reqs(1'b0, 1'b0);
     set_rstreqs('0);
diff --git a/hw/ip/rstmgr/dv/sva/rstmgr_cascading_sva_if.sv b/hw/ip/rstmgr/dv/sva/rstmgr_cascading_sva_if.sv
index 5fe2dc1..8910d0f 100644
--- a/hw/ip/rstmgr/dv/sva/rstmgr_cascading_sva_if.sv
+++ b/hw/ip/rstmgr/dv/sva/rstmgr_cascading_sva_if.sv
@@ -27,7 +27,7 @@
   input [rstmgr_pkg::PowerDomains-1:0] rst_lc_src_n,
   input [rstmgr_pkg::PowerDomains-1:0] rst_sys_src_n,
   input logic scan_rst_ni,
-  input lc_ctrl_pkg::lc_tx_t scanmode_i
+  input prim_mubi_pkg::mubi4_t scanmode_i
 );
 
   // The min and max bounds on the number of cycles for an edge to occur.
diff --git a/hw/ip/sram_ctrl/dv/env/seq_lib/sram_ctrl_executable_vseq.sv b/hw/ip/sram_ctrl/dv/env/seq_lib/sram_ctrl_executable_vseq.sv
index da73db3..e8e49ef 100644
--- a/hw/ip/sram_ctrl/dv/env/seq_lib/sram_ctrl_executable_vseq.sv
+++ b/hw/ip/sram_ctrl/dv/env/seq_lib/sram_ctrl_executable_vseq.sv
@@ -26,7 +26,7 @@
   task randomize_and_drive_ifetch_en();
     mubi8_t en_sram_ifetch = get_rand_mubi8_val();
     mubi4_t en_exec_csr = get_rand_mubi4_val();
-    lc_ctrl_pkg::lc_tx_e hw_debug_en = get_rand_lc_tx_val();
+    lc_ctrl_pkg::lc_tx_t hw_debug_en = get_rand_lc_tx_val();
 
     `uvm_info(`gfn, $sformatf("en_exec_csr: 0b%0b", en_exec_csr), UVM_HIGH)
     `uvm_info(`gfn, $sformatf("en_sram_ifetch: 0b%0b", en_sram_ifetch), UVM_HIGH)
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
index 6024eb9..b62156a 100644
--- a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
+++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
@@ -806,8 +806,8 @@
   );
 
   // Wire up alert handler LPGs
-  lc_ctrl_pkg::lc_tx_t [alert_pkg::NLpg-1:0] lpg_cg_en;
-  lc_ctrl_pkg::lc_tx_t [alert_pkg::NLpg-1:0] lpg_rst_en;
+  prim_mubi_pkg::mubi4_t [alert_pkg::NLpg-1:0] lpg_cg_en;
+  prim_mubi_pkg::mubi4_t [alert_pkg::NLpg-1:0] lpg_rst_en;
 
 
   // peri_sys_io_div4_0
diff --git a/hw/top_earlgrey/rtl/padring.sv b/hw/top_earlgrey/rtl/padring.sv
index 9a32932..07e8c2d 100644
--- a/hw/top_earlgrey/rtl/padring.sv
+++ b/hw/top_earlgrey/rtl/padring.sv
@@ -26,7 +26,7 @@
 ) (
   // This is only used for scan
   input                           clk_scan_i,
-  lc_ctrl_pkg::lc_tx_t            scanmode_i,
+  prim_mubi_pkg::mubi4_t          scanmode_i,
   // RAW outputs used for DFT and infrastructure
   // purposes (e.g. external muxed clock)
   output logic     [NDioPads-1:0] dio_in_raw_o,
@@ -50,9 +50,9 @@
   pad_pok_t [NIoBanks-1:0] pad_pok;
 
   logic scanmode;
-  prim_lc_dec u_prim_lc_dec (
-    .lc_en_i     ( scanmode_i ),
-    .lc_en_dec_o ( scanmode   )
+  prim_mubi4_dec u_prim_mubi4_dec (
+    .mubi_i     ( scanmode_i ),
+    .mubi_dec_o ( scanmode   )
   );
 
   for (genvar k = 0; k < NDioPads; k++) begin : gen_dio_pads
diff --git a/util/topgen/templates/toplevel.sv.tpl b/util/topgen/templates/toplevel.sv.tpl
index 220168e..1fadd5c 100644
--- a/util/topgen/templates/toplevel.sv.tpl
+++ b/util/topgen/templates/toplevel.sv.tpl
@@ -299,8 +299,8 @@
   );
 
   // Wire up alert handler LPGs
-  lc_ctrl_pkg::lc_tx_t [alert_pkg::NLpg-1:0] lpg_cg_en;
-  lc_ctrl_pkg::lc_tx_t [alert_pkg::NLpg-1:0] lpg_rst_en;
+  prim_mubi_pkg::mubi4_t [alert_pkg::NLpg-1:0] lpg_cg_en;
+  prim_mubi_pkg::mubi4_t [alert_pkg::NLpg-1:0] lpg_rst_en;
 
 <%
 # get all known typed clocks and add them to a dict