[dv/cip_base_seq] allow recoverable alert in dut test

This PR modifies the post_start alert check. It adds a 200 cycle delays
before checking for fatal alert, because we allows recoverable alert to
fire once.

Signed-off-by: Cindy Chen <chencindy@opentitan.org>
diff --git a/hw/dv/sv/cip_lib/seq_lib/cip_base_vseq.sv b/hw/dv/sv/cip_lib/seq_lib/cip_base_vseq.sv
index e50a543..49fe26c 100644
--- a/hw/dv/sv/cip_lib/seq_lib/cip_base_vseq.sv
+++ b/hw/dv/sv/cip_lib/seq_lib/cip_base_vseq.sv
@@ -472,10 +472,19 @@
   endtask
 
   virtual task check_no_fatal_alerts();
+    // Max alert_handshake shake cycls:
+    // - 20 cycles includes ack response and ack stable time.
+    // - 10 is the max difference between alert clock and dut clock.
+    int max_alert_handshake_cycles = 20 * 10;
     if (cfg.list_of_alerts.size() > 0) begin
-      // Alert hanshake should be within 200 cycles considering async domains.
-      int num_cycles = $urandom_range(200, 500);
-      repeat(num_cycles) begin
+      int check_cycles = $urandom_range(max_alert_handshake_cycles,
+                                        max_alert_handshake_cycles * 3);
+
+      // This task allows recoverable alerts to fire, or fatal alert being triggered once by
+      // `alert_test` register.
+      cfg.clk_rst_vif.wait_clks(max_alert_handshake_cycles);
+
+      repeat(check_cycles) begin
         cfg.clk_rst_vif.wait_clks(1);
         foreach (cfg.m_alert_agent_cfg[alert_name]) begin
           `DV_CHECK_EQ(0, cfg.m_alert_agent_cfg[alert_name].vif.get_alert(),