task based phases - do the components must be sync'ed? meaning, can componentA be in reset_phase and componentB be in main_phase?
When using objections, that cannot be, right? The objections must be dropped before moving to the next phase. But when not raising objection, if I recall, if componentA complete its reset_phase and there is no objection protection, flow will move to the next phase and kill ALL other reset_phases in all components.
If that is so - how does the jump() in uvm_domain works - if componentA and componentB were in main_phase and componentA jumped to reset_phase - what will happen to each of the components (with and without objection protection)?
ADDITION: Here are several case - what will happen in each of them: Case 1)
- ComponentA has a counter to 100 (with 1cycle delay between each count) in main_phase
- ComponentB has a counter to 50 (with 1cycle delay between each count) in main_phase
- Both uvm_components above do not have raise_objection Once ComponentB reaches 50 -- what will happen?
Case 2)
- ComponentA has a counter to 100 (with 1cycle delay between each count) in main_phase
- ComponentB has a counter to 50 (with 1cycle delay between each count) in main_phase
- ComponentA has raise_objection - ComponentB do not Once ComponentB reaches 50 -- what will happen?