Part 2 · Phases & Lifecycle · Intermediate

Reset & Jump Debug: Hangs, Corrupted State, Checklists

Triage guide for post-jump hangs, scoreboard corruption, non-idempotent configure, and jump-specific phase trace markers.

Symptom catalog

Hang after jump

  1. Outstanding objection from pre-jump phase never dropped.

  2. Sequence blocked on sequencer lock after jump.

  3. Agent reset_phase waits forever for rst_n that soft reset does not assert.

Corrupted state after jump

  1. In-flight transaction completed after jump — scoreboard double-count.

  2. configure_phase skipped programming because idempotent guard stuck.

  3. VIP internal state not reset — vendor reset API not called.

bash
simv +UVM_PHASE_TRACE +UVM_OBJECTION_TRACE +UVM_VERBOSITY=UVM_MEDIUM

Jump-safe checklist

diagram
[PHASE][UVM] pre-jump checklist

□ all agent objections from current phase dropped or jump-safe
□ drain_all_agents() completed (log idle confirmation)
□ sequencer not locked (stop_sequences if needed)
□ scoreboard flush policy applied
□ cfg flags reset for configure re-entry
□ log "JUMP" marker immediately before phase.jump()
systemverilog
task pre_jump_cleanup();
  env.drain_all_agents();
  env.vseqr.stop_sequences();
  env.scb.flush_queues();
  cfg.reconfigure_needed = 1;
  `uvm_info("JUMP", "pre-jump cleanup complete", UVM_MEDIUM)
endtask

Key takeaways

  • Post-jump hangs → objection trace first, waveforms second.

  • Pre-jump drain and sequence stop are mandatory.

  • Log JUMP markers to correlate phase trace with test intent.

Common pitfalls

  • Debugging jump without +UVM_PHASE_TRACE — cannot see rewind.

  • Calling jump without stop_sequences — sequencer deadlock.

  • Assuming VIP auto-recovers — call vendor reset API in reset_phase.


Post-jump validation

  1. Confirm reset_phase runs again in phase trace after JUMP marker.

  2. Verify configure_phase re-executes (log CSR writes).

  3. Compare pre-reset and post-recovery txn counters in check_phase.

  4. Run without jump as control — isolate jump-specific bugs.