blob: f54bd502e55b46581afb98be4a6b5f3143fbe4e3 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
// combine all pwrmgr seqs (except below seqs) in one seq to run sequentially
// 1. csr seq, which requires scb to be disabled
class pwrmgr_stress_all_vseq extends pwrmgr_base_vseq;
`uvm_object_utils(pwrmgr_stress_all_vseq)
`uvm_object_new
task body();
string seq_names[] = {
"pwrmgr_aborted_low_power_vseq",
"pwrmgr_lowpower_wakeup_race_vseq",
"pwrmgr_reset_vseq",
"pwrmgr_smoke_vseq",
"pwrmgr_wakeup_reset_vseq",
"pwrmgr_wakeup_vseq"
};
for (int i = 1; i <= num_trans; i++) begin
uvm_sequence seq;
pwrmgr_base_vseq pwrmgr_vseq;
uint seq_idx = $urandom_range(0, seq_names.size - 1);
seq = create_seq_by_name(seq_names[seq_idx]);
`downcast(pwrmgr_vseq, seq)
pwrmgr_vseq.do_apply_reset = 1;
pwrmgr_vseq.set_sequencer(p_sequencer);
`DV_CHECK_RANDOMIZE_FATAL(pwrmgr_vseq)
`uvm_info(`gfn, $sformatf("seq_idx = %0d, sequence is %0s", seq_idx, pwrmgr_vseq.get_name()),
UVM_MEDIUM)
pwrmgr_vseq.start(p_sequencer);
`uvm_info(`gfn, $sformatf(
"End of sequence %0s with seq_idx = %0d", pwrmgr_vseq.get_name(), seq_idx),
UVM_MEDIUM)
end
endtask : body
endclass