The run-time schedule is the pre-defined phase schedule which runs concurrently to the uvm_run_phase global run phase. By default, all uvm_components using the run-time schedule are synchronized with respect to the pre-defined phases in the schedule. It is possible for components to belong to different domains in which case their schedules can be unsynchronized.
The run-time phases are executed in the sequence they are specified below.
UVM Run-Time Phases | The run-time schedule is the pre-defined phase schedule which runs concurrently to the uvm_run_phase global run phase. |
uvm_pre_reset_phase | Before reset is asserted. |
uvm_reset_phase | Reset is asserted. |
uvm_post_reset_phase | After reset is de-asserted. |
uvm_pre_configure_phase | Before the DUT is configured by the SW. |
uvm_configure_phase | The SW configures the DUT. |
uvm_post_configure_phase | After the SW has configured the DUT. |
uvm_pre_main_phase | Before the primary test stimulus starts. |
uvm_main_phase | Primary test stimulus. |
uvm_post_main_phase | After enough of the primary test stimulus. |
uvm_pre_shutdown_phase | Before things settle down. |
uvm_shutdown_phase | Letting things settle down. |
uvm_post_shutdown_phase | After things have settled down. |
Before reset is asserted.
uvm_task_phase that calls the uvm_component::pre_reset_phase method. This phase starts at the same time as the uvm_run_phase unless a user defined phase is inserted in front of this phase.
uvm_pre_reset_phase | ||||||
Before reset is asserted. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
Reset is asserted.
uvm_task_phase that calls the uvm_component::reset_phase method.
uvm_reset_phase | ||||||
Reset is asserted. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
After reset is de-asserted.
uvm_task_phase that calls the uvm_component::post_reset_phase method.
uvm_post_reset_phase | ||||||
After reset is de-asserted. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
Before the DUT is configured by the SW.
uvm_task_phase that calls the uvm_component::pre_configure_phase method.
uvm_pre_configure_phase | ||||||
Before the DUT is configured by the SW. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
The SW configures the DUT.
uvm_task_phase that calls the uvm_component::configure_phase method.
uvm_configure_phase | ||||||
The SW configures the DUT. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
After the SW has configured the DUT.
uvm_task_phase that calls the uvm_component::post_configure_phase method.
uvm_post_configure_phase | ||||||
After the SW has configured the DUT. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
Before the primary test stimulus starts.
uvm_task_phase that calls the uvm_component::pre_main_phase method.
uvm_pre_main_phase | ||||||
Before the primary test stimulus starts. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
Primary test stimulus.
uvm_task_phase that calls the uvm_component::main_phase method.
uvm_main_phase | ||||||
Primary test stimulus. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
After enough of the primary test stimulus.
uvm_task_phase that calls the uvm_component::post_main_phase method.
uvm_post_main_phase | ||||||
After enough of the primary test stimulus. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
Before things settle down.
uvm_task_phase that calls the uvm_component::pre_shutdown_phase method.
uvm_pre_shutdown_phase | ||||||
Before things settle down. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
Letting things settle down.
uvm_task_phase that calls the uvm_component::shutdown_phase method.
uvm_shutdown_phase | ||||||
Letting things settle down. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
After things have settled down.
uvm_task_phase that calls the uvm_component::post_shutdown_phase method. The end of this phase is synchronized to the end of the uvm_run_phase phase unless a user defined phase is added after this phase.
uvm_post_shutdown_phase | ||||||
After things have settled down. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
|
Stimulate the DUT.
class uvm_run_phase extends uvm_task_phase
Before reset is asserted.
class uvm_pre_reset_phase extends uvm_task_phase
Reset is asserted.
class uvm_reset_phase extends uvm_task_phase
After reset is de-asserted.
class uvm_post_reset_phase extends uvm_task_phase
Before the DUT is configured by the SW.
class uvm_pre_configure_phase extends uvm_task_phase
The SW configures the DUT.
class uvm_configure_phase extends uvm_task_phase
After the SW has configured the DUT.
class uvm_post_configure_phase extends uvm_task_phase
Before the primary test stimulus starts.
class uvm_pre_main_phase extends uvm_task_phase
Primary test stimulus.
class uvm_main_phase extends uvm_task_phase
After enough of the primary test stimulus.
class uvm_post_main_phase extends uvm_task_phase
Before things settle down.
class uvm_pre_shutdown_phase extends uvm_task_phase
Letting things settle down.
class uvm_shutdown_phase extends uvm_task_phase
After things have settled down.
class uvm_post_shutdown_phase extends uvm_task_phase
The uvm_component class is the root base class for UVM components.
virtual class uvm_component extends uvm_report_object
The uvm_object class is the base class for all UVM data and hierarchical classes.
virtual class uvm_object extends uvm_void
This base class defines everything about a phase: behavior, state, and context.
class uvm_phase extends uvm_object
Base class for all task phases.
virtual class uvm_task_phase extends uvm_phase
The uvm_pre_reset_phase phase implementation method.
virtual task pre_reset_phase( uvm_phase phase )
The uvm_reset_phase phase implementation method.
virtual task reset_phase( uvm_phase phase )
The uvm_post_reset_phase phase implementation method.
virtual task post_reset_phase( uvm_phase phase )
The uvm_pre_configure_phase phase implementation method.
virtual task pre_configure_phase( uvm_phase phase )
The uvm_configure_phase phase implementation method.
virtual task configure_phase( uvm_phase phase )
The uvm_post_configure_phase phase implementation method.
virtual task post_configure_phase( uvm_phase phase )
The uvm_pre_main_phase phase implementation method.
virtual task pre_main_phase( uvm_phase phase )
The uvm_main_phase phase implementation method.
virtual task main_phase( uvm_phase phase )
The uvm_post_main_phase phase implementation method.
virtual task post_main_phase( uvm_phase phase )
The uvm_pre_shutdown_phase phase implementation method.
virtual task pre_shutdown_phase( uvm_phase phase )
The uvm_shutdown_phase phase implementation method.
virtual task shutdown_phase( uvm_phase phase )
The uvm_post_shutdown_phase phase implementation method.
virtual task post_shutdown_phase( uvm_phase phase )