How all UVM phases are working parallel?

Hi All,

I know that UVM Phases are useful because it provides a synchronization and all phases are working parallel. that means all build phase is executed parallel on zero simulation time.
so my question is who call all phases at zero simulation time and how all phase (for ex. all build phase called at a time but in build phase we not called super.build_phase()so how all are called)working together and provide a synchronization

Hi zalak,

To start a testbench, run_test() method has to be called from the static part of the testbench. It is usually called within an initial block in the top level module of the testbench. run_test() will create an object for the test. Then run_test() in top module will call all phases in order. none of the phases are missed, synchronization is done internally. run_test() will call all phases one-by-one in sequential manner in their respective order of execution.