UVM Coding Practice · Senior

Find Objection Leak

Test hangs — missing drop_objection.

Triage worksheet (say aloud before opening code)

  1. Symptom: Simulation hangs after UVM_TEST_DONE — no timeout, no UVM_ERROR

  2. Hypothesis list — config_db, objections, TLM connect, factory, seq not started

  3. Minimal experiment — dump, topology print, one UVM_INFO probe

  4. Root cause statement in one sentence

  5. Fix + regression hook

Interview prompt

Test hangs at end — walk objection debug before showing fix.

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

Buggy snippet — critique verbally

systemverilog
task run_phase(uvm_phase phase);
  phase.raise_objection(this);
  seq.start(sqr);
  // missing drop_objection
endtask

Answer

  • Add drop_objection after seq.

  • Or seq raises — test should not double raise.

  • Check objection trace for stuck count.

Smoke test (5 minutes)

  • Repro hang.

  • Add drop — sim ends.

  • Try drain_time if DUT pipelined.

Code lab drill

After reading, try Code lab exercise uvm-l9-bug-objection — topic reference: /topics/uvm/coding-practice/debug-broken-tb/find-objection-leak