UVM Coding Practice · Senior

Find TLM Null Port

Scoreboard never compares — connect missing.

Triage worksheet (say aloud before opening code)

  1. Symptom: Scoreboard never compares — no SB UVM_INFO, act queue grows

  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

Scoreboard silent — TLM connect debug before 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
// env connect_phase forgot:
// agent.mon.ap.connect(sb.act_imp);

Answer

Connect analysis port in connect_phase; uvm_top.print_topology() to verify ap → imp.

Mechanism to narrate

  • Unconnected analysis_port — write() never called

  • topology print shows dangling ports

  • connect in connect_phase not run_phase

Smoke test (5 minutes)

  • After connect — one beat produces SB log.

  • topology shows mon.ap → sb.act_imp.

Code lab drill

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