UVM Coding Practice · Senior

Phase Jump & Domain Sync

Risks of jump; multi-domain sync.

Interview prompt

When would you phase.jump and what breaks?

diagram
WHITEBOARD CHAIN

1. DECLARE    interfaces / types / ports you need
2. SKELETON   class extends + utils macro + key methods
3. MECHANISM  fill one critical method while narrating
4. PITFALL    name one bug juniors make on this pattern
5. TEST       how you would smoke-test the component

Reference sketch (≤40 lines)

systemverilog
// fatal error path — rare
phase.jump(uvm_end_of_elaboration_phase.get());
// multi-clock: sync domains before shared connect
  • skip to end on fatal — skips shutdown cleanup

  • risk: monitors still running, resources active

  • domain sync for multiple clocks before connect

Mechanism to narrate

  • phase.jump aborts remaining phases in schedule

  • Use only for fatal early exit — document skipped cleanup

  • uvm_domain aligns phase schedules across clock domains

Key takeaways

  • Default answer: avoid jump in normal tests; prefer drain + drop.

Common pitfalls

  • Jump to skip slow phases in regression.

  • Async clocks without domain sync — connect race.