Class dv_lib_pkg::dv_base_vseq
Collaboration Diagram of dv_base_vseq
Name |
Default value |
Description |
|---|---|---|
RAL_T |
dv_base_reg_block |
|
CFG_T |
dv_base_env_cfg |
|
COV_T |
dv_base_env_cov |
|
VIRTUAL_SEQUENCER_T |
dv_base_virtual_sequencer |
Name |
Type |
Description |
|---|---|---|
num_trans |
||
cfg |
handles for ease of op |
|
ral |
||
cov |
||
do_dut_init |
bit |
knobs to enable pre_start routines |
do_apply_reset |
bit |
|
do_wait_for_reset |
bit |
|
do_dut_shutdown |
bit |
knobs to enable post_start routines |
enable_asserts_in_hw_reset_rand_wr |
bit |
various knobs to enable certain routines this knob allows user to disable assertions in csr_hw_reset before random write sequence, the assertions will turn back on after the hw reset deasserted |
Name |
Description |
|---|---|
num_trans_c |
Constructors
- new(string name = "")
- Parameters:
name (string)
Functions
- set_handles()
- configure_vseq()
This function is invoked in pre_randomize(). Override it in the extended classes to configure / control the randomization of this sequence.
- set_csr_assert_en(bit enable, string path = "*")
enable/disable csr_assert
- Parameters:
enable (bit)
path (string)
Tasks
- pre_start()
- body()
- post_start()
- dut_init(string reset_kind = "HARD")
startup, reset and shutdown related tasks
- Parameters:
reset_kind (string)
- apply_reset(string kind = "HARD")
- Parameters:
kind (string)
- apply_resets_concurrently(int reset_duration_ps = 0)
Apply all resets in the DUT concurrently to generate a random in-test reset scenario.
- Assert resets concurrently to make sure all resets are issued.
- Deassert resets concurrently is a specific requirement of the
stress_all_with_rand_resetsequence, which will randomly issue resets and terminate the parallel sequence once all DUT resets are deasserted. If DUT resets are deasserted at different time, the parallel sequence might send a transaction request to driver between different resets are deasserting. Then whenstress_all_with_rand_resetsequence tries to terminate the parallel sequence, an UVM_ERROR will be thrown by the sequencer sayingtask responsible for requesting a wait_for_grant has been killed. In order to ensure all resets at least being asserted for one clock cycle, this task takes an optional inputreset_duration_psif the DUT has additional resets. The task uses this input to compute the minimal time required to keep all resets asserted.
- Parameters:
reset_duration_ps (int)
- post_apply_reset(string reset_kind = "HARD")
This is called after apply_reset in this class and after apply_resets_concurrently in cip_base_vseq::run_seq_with_rand_reset_vseq.
- Parameters:
reset_kind (string)
- wait_for_reset(string reset_kind = "HARD", bit wait_for_assert = 1, bit wait_for_deassert = 1)
- Parameters:
reset_kind (string)
wait_for_assert (bit)
wait_for_deassert (bit)
- dut_shutdown()
-
DUT shutdown
-
this is called in post_start if do_dut_shutdown bit is set
-
- run_csr_vseq_wrapper(int num_times = 1, dv_base_reg_block models = {})
-
wrapper task around run_csr_vseq
-
the purpose is to be able to call this directly for actual csr tests (as opposed to higher level stress test that could also run csr seq as a fork by calling run_csr_vseq(..) task)
- Parameters:
num_times (int)
models (dv_base_reg_block)
-
- run_csr_vseq(string csr_test_type, int num_test_csrs = 0, bit do_rand_wr_and_reset = 1, dv_base_reg_block models = {}, string ral_name = "")
capture the entire csr seq as a task that can be overridden if desired arg csr_test_type: what csr test to run {hw_reset, rw, bit_bash, aliasing} arg num_test_csrs:instead of testing the entire ral model or passing test chunk info via plusarg, provide ability to set a random number of csrs to test from higher level sequence
modelsis the list of RAL models to run the common sequences on.ral_nameis the string name of the RAL to run the common sequences on. Both of these inputs are 'null' by default. If externally set,modelstakes precedence overral_name.- Parameters:
csr_test_type (string)
num_test_csrs (int)
do_rand_wr_and_reset (bit)
models (dv_base_reg_block)
ral_name (string)
number of iterations to run the test seq
please override constraint in extended vseq randomization for this is disabled in pre_start since we don't want to re-randomize it again