Advanced UVM Phases

01

Can we jump backward in UVM Phases?

+

Yes, using `phase.jump(uvm_phase phase)`. This is strictly for the time-consuming (run) phases.

Use Case: Reset logic. If a reset occurs during the main_phase, you might jump back to reset_phase or configure_phase.

Warning: Jumping is complex; you must ensure components handle the jump cleanly (killing threads, clearing FIFOs).

02

What is `phase_ready_to_end`?

+

A callback method called when all objections for the current phase are dropped. It allows a component to "resurrect" the phase (raise objection again) if it still has pending work, or perform cleanup before the phase officially ends.