Do run phases across uvm component extended classes have any order of execution?
How do we control phases across uvcs?
In reply to nnarahari:
No, run_phase() does not have any particular order. run_phase() is used with forked approach, e.g.
fork
driver.run_phase();
monitor.run_phase();
test.run_phase();
//etc.
join_none
- Here, run_phase of all components starts at the same time.
- Control of run phase is done by objection mechanism, using phase.raise/drop_objection().
- Run phase of all components end only when all raised objections are dropped.
In reply to nnarahari:
If you want to take control over the run_phase tasks of all UVM components you will run into trouble. There is no reason to take influence on the execution order of these tasks.