Merge "Add tests chip_sw_example_rom and chip_sw_rv_dm_access_after_wakeup to edacloud"
diff --git a/hw/top_matcha/dv/env/seq_lib/chip_sw_random_sleep_all_reset_vseq.sv b/hw/top_matcha/dv/env/seq_lib/chip_sw_random_sleep_all_reset_vseq.sv
index c655277..ffeda99 100644
--- a/hw/top_matcha/dv/env/seq_lib/chip_sw_random_sleep_all_reset_vseq.sv
+++ b/hw/top_matcha/dv/env/seq_lib/chip_sw_random_sleep_all_reset_vseq.sv
@@ -1,3 +1,4 @@
+// Copyright 2023 Google LLC.
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@@ -29,19 +30,25 @@
constraint cycles_tll_reset_c {cycles_till_reset inside {[0 : 200]};}
constraint reset_delay_c {reset_delay inside {[0 : 10]};}
- rand bit[7:0] assa[NumRound-1];
- constraint assa_c {
- foreach (assa[i]) assa[i] inside {[0:NumRound-2]};
- }
+ class assa;
+ randc bit[7:0] val;
+
+ constraint assa_c {
+ val inside {[0:NumRound-2]};
+ }
+ endclass
virtual task cpu_init();
bit[7:0] rst_idx[NumRound];
+ assa ias = new ();
+
for (int i=0; i< NumRound; i = i+1) begin
if (i == (NumRound-1)) begin
rst_idx[i] = i;
end
else begin
- rst_idx[i] = assa[i];
+ ias.randomize();
+ rst_idx[i] = ias.val;
end
end
super.cpu_init();
diff --git a/sw/device/tests/sim_dv/pwrmgr_random_sleep_all_reset_reqs_test.c b/sw/device/tests/sim_dv/pwrmgr_random_sleep_all_reset_reqs_test.c
index 440a84b..fb71c0c 100644
--- a/sw/device/tests/sim_dv/pwrmgr_random_sleep_all_reset_reqs_test.c
+++ b/sw/device/tests/sim_dv/pwrmgr_random_sleep_all_reset_reqs_test.c
@@ -462,11 +462,13 @@
kTopMatchaPlicIrqIdAlertHandlerClassa,
kTopMatchaPlicIrqIdAlertHandlerClassd);
- alert_handler_config();
-
// First check the flash stored value
uint32_t event_idx = flash_ctrl_testutils_counter_get(0);
+ // Don't configure alerts after the last boot up to avoid unnecessary
+ // reset in drain time
+ if (RST_IDX[event_idx] < 11) alert_handler_config();
+
// Enable flash access
flash_ctrl_testutils_default_region_access(&flash_ctrl,
/*rd_en*/ true,