The common phases are the set of function and task phases that all uvm_components execute together. All uvm_components are always synchronized with respect to the common phases.
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 build phase corresponds to the uvm_build_phase class below and has the name “build”, which means that the following can be used to call foo() at the end of the build phase (after all lower levels have finished build):
function void phase_ended(uvm_phase phase) ; if (phase.get_name()=="build") foo() ; endfunction
The common phases are executed in the sequence they are specified below.
UVM Common Phases | The common phases are the set of function and task phases that all uvm_components execute together. |
uvm_build_phase | Create and configure of testbench structure |
uvm_connect_phase | Establish cross-component connections. |
uvm_end_of_elaboration_phase | Fine-tune the testbench. |
uvm_start_of_simulation_phase | Get ready for DUT to be simulated. |
uvm_final_phase | Tie up loose ends. |
Create and configure of testbench structure
uvm_topdown_phase that calls the uvm_component::build_phase method.
uvm_build_phase | ||||||
Create and configure of testbench structure | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
Establish cross-component connections.
uvm_bottomup_phase that calls the uvm_component::connect_phase method.
uvm_connect_phase | ||||||
Establish cross-component connections. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
Fine-tune the testbench.
uvm_bottomup_phase that calls the uvm_component::end_of_elaboration_phase method.
uvm_end_of_elaboration_phase | ||||||
Fine-tune the testbench. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
Get ready for DUT to be simulated.
uvm_bottomup_phase that calls the uvm_component::start_of_simulation_phase method.
uvm_start_of_simulation_phase | ||||||
Get ready for DUT to be simulated. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle | |||||
get | Returns the singleton phase handle | |||||
get | Returns the singleton phase handle | |||||
get | Returns the singleton phase handle | |||||
get | Returns the singleton phase handle |
Tie up loose ends.
uvm_topdown_phase that calls the uvm_component::final_phase method.
uvm_final_phase | ||||||
Tie up loose ends. | ||||||
Class Hierarchy | ||||||
| ||||||
Class Declaration | ||||||
| ||||||
Methods | ||||||
get | Returns the singleton phase handle |
The library implements the following public API beyond what is documented in 1800.2.
virtual class uvm_component extends uvm_report_object
Create and configure of testbench structure
class uvm_build_phase extends uvm_topdown_phase
Establish cross-component connections.
class uvm_connect_phase extends uvm_bottomup_phase
Fine-tune the testbench.
class uvm_end_of_elaboration_phase extends uvm_bottomup_phase
Get ready for DUT to be simulated.
class uvm_start_of_simulation_phase extends uvm_bottomup_phase
Tie up loose ends.
class uvm_final_phase extends uvm_topdown_phase
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
Virtual base class for function phases that operate top-down.
virtual class uvm_topdown_phase extends uvm_phase
Returns the singleton phase handle
static function uvm_build_phase get()
The uvm_build_phase phase implementation method.
virtual function void build_phase( uvm_phase phase )
Virtual base class for function phases that operate bottom-up.
virtual class uvm_bottomup_phase extends uvm_phase
Returns the singleton phase handle
static function uvm_connect_phase get()
The uvm_connect_phase phase implementation method.
virtual function void connect_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_end_of_elaboration_phase get()
The uvm_end_of_elaboration_phase phase implementation method.
virtual function void end_of_elaboration_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_start_of_simulation_phase get()
The uvm_start_of_simulation_phase phase implementation method.
virtual function void start_of_simulation_phase( uvm_phase phase )
Returns the singleton phase handle
static function uvm_final_phase get()
The uvm_final_phase phase implementation method.
virtual function void final_phase( uvm_phase phase )