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 names of the UVM phases (which will be returned by get_name() for a phase instance) match the class names specified below with the “uvm_” and “_phase” removed. For example, the main phase corresponds to the uvm_main_phase class below and has the name “main”, which means that the following can be used to call foo() at the start of main phase:
function void phase_started(uvm_phase phase) ; if (phase.get_name()=="main") foo() ; endfunction
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 | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
Reset is asserted.
uvm_task_phase that calls the uvm_component::reset_phase method.
uvm_reset_phase | ||||||
Reset is asserted. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
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 | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
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 | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
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 | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
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 | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
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 | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
Primary test stimulus.
uvm_task_phase that calls the uvm_component::main_phase method.
uvm_main_phase | ||||||
Primary test stimulus. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
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 | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
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 | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
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 | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
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 | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
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_void class is the base class for all UVM classes.
virtual class uvm_void
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
Returns the singleton phase handle
static function uvm_pre_reset_phase get()
The uvm_pre_reset_phase phase implementation method.
virtual task pre_reset_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_reset_phase get()
The uvm_reset_phase phase implementation method.
virtual task reset_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_post_reset_phase get()
The uvm_post_reset_phase phase implementation method.
virtual task post_reset_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_pre_configure_phase get()
The uvm_pre_configure_phase phase implementation method.
virtual task pre_configure_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_configure_phase get()
The uvm_configure_phase phase implementation method.
virtual task configure_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_post_configure_phase get()
The uvm_post_configure_phase phase implementation method.
virtual task post_configure_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_pre_main_phase get()
The uvm_pre_main_phase phase implementation method.
virtual task pre_main_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_main_phase get()
The uvm_main_phase phase implementation method.
virtual task main_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_post_main_phase get()
The uvm_post_main_phase phase implementation method.
virtual task post_main_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_pre_shutdown_phase get()
The uvm_pre_shutdown_phase phase implementation method.
virtual task pre_shutdown_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_shutdown_phase get()
The uvm_shutdown_phase phase implementation method.
virtual task shutdown_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_post_shutdown_phase get()
The uvm_post_shutdown_phase phase implementation method.
virtual task post_shutdown_phase( uvm_phase phase )