[kmac] added multiple copies for lc_escalate_en

Signed-off-by: Michael Tempelmeier <michael.tempelmeier@gi-de.com>
diff --git a/hw/ip/kmac/rtl/kmac.sv b/hw/ip/kmac/rtl/kmac.sv
index 35d7f22..0cf5270 100644
--- a/hw/ip/kmac/rtl/kmac.sv
+++ b/hw/ip/kmac/rtl/kmac.sv
@@ -310,7 +310,9 @@
   logic alert_intg_err;
 
   // Life cycle
-  lc_ctrl_pkg::lc_tx_t  lc_escalate_en_sync, lc_escalate_en;
+  localparam int unsigned NumLcSyncCopies = 6;
+  lc_ctrl_pkg::lc_tx_t [NumLcSyncCopies-1:0] lc_escalate_en_sync;
+  lc_ctrl_pkg::lc_tx_t [NumLcSyncCopies-1:0] lc_escalate_en;
 
   //////////////////////////////////////
   // Connecting Register IF to logics //
@@ -759,7 +761,7 @@
 
     // Unconditionally jump into the terminal error state
     // if the life cycle controller triggers an escalation.
-    if (lc_escalate_en != lc_ctrl_pkg::Off) begin
+    if (lc_escalate_en[0] != lc_ctrl_pkg::Off) begin
       kmac_st_d = KmacTerminalError;
     end
   end
@@ -804,7 +806,7 @@
     .process_o (kmac2sha3_process   ),
 
     // LC escalation
-    .lc_escalate_en_i (lc_escalate_en),
+    .lc_escalate_en_i (lc_escalate_en[1]),
 
     // Error detection
     .sparse_fsm_error_o (kmac_core_state_error),
@@ -868,7 +870,7 @@
     .done_i     (sha3_done        ),
 
     // LC escalation
-    .lc_escalate_en_i (lc_escalate_en),
+    .lc_escalate_en_i (lc_escalate_en[2]),
 
     .absorbed_o  (sha3_absorbed),
     .squeezing_o (unused_sha3_squeeze),
@@ -1013,7 +1015,7 @@
     .cmd_o    (kmac_cmd),
 
     // LC escalation
-    .lc_escalate_en_i (lc_escalate_en),
+    .lc_escalate_en_i (lc_escalate_en[3]),
 
     // Error report
     .error_o            (app_err),
@@ -1096,7 +1098,7 @@
     .keccak_done_i  (sha3_block_processed),
 
     // LC escalation
-    .lc_escalate_en_i (lc_escalate_en),
+    .lc_escalate_en_i (lc_escalate_en[4]),
 
     .error_o            (errchecker_err),
     .sparse_fsm_error_o (kmac_errchk_state_error)
@@ -1175,7 +1177,7 @@
       .hash_threshold_i (entropy_hash_threshold),
 
       // LC escalation
-      .lc_escalate_en_i (lc_escalate_en),
+      .lc_escalate_en_i (lc_escalate_en[5]),
 
       // Error
       .err_o              (entropy_err),
@@ -1357,11 +1359,13 @@
   // SEC_CM: LC_ESCALATE_EN.INTERSIG.MUBI
   lc_ctrl_pkg::lc_tx_t alert_to_lc_tx;
   assign alert_to_lc_tx = lc_ctrl_pkg::lc_tx_bool_to_lc_tx(alerts_q[1]);
-  assign lc_escalate_en = lc_ctrl_pkg::lc_tx_or_hi(alert_to_lc_tx, lc_escalate_en_sync);
+  for (genvar i = 0; i < NumLcSyncCopies; i++) begin : gen_or_alert_lc_sync
+      assign lc_escalate_en[i] = lc_ctrl_pkg::lc_tx_or_hi(alert_to_lc_tx, lc_escalate_en_sync[i]);
+  end
 
   // Synchronize life cycle input
   prim_lc_sync #(
-    .NumCopies (1)
+    .NumCopies (NumLcSyncCopies)
   ) u_prim_lc_sync (
     .clk_i,
     .rst_ni,