UVM Coding Practice · Senior
TLM Tricky Q&A
20 TLM/analysis interview questions.
Q&A bank
TLM interview bank.
analysis_port vs analysis_export?
diagram
[INT][SENIOR][UVM-CODE]
Q: analysis_port vs analysis_export?
A:
port initiates write(); export forwards to imp.
FOLLOW-UP TRAP: Connecting port to port without export.Fanout multiple subscribers?
diagram
[INT][SENIOR][UVM-CODE]
Q: Fanout multiple subscribers?
A:
One analysis port can connect to multiple exports — broadcast.
FOLLOW-UP TRAP: Expecting unconnected imp silent fail.uvm_tlm_fifo depth?
diagram
[INT][SENIOR][UVM-CODE]
Q: uvm_tlm_fifo depth?
A:
Blocking put/get — depth 0 vs bounded affects backpressure.
FOLLOW-UP TRAP: Unbounded fifo memory.write() reentrancy?
diagram
[INT][SENIOR][UVM-CODE]
Q: write() reentrancy?
A:
Same thread usually; avoid heavy work in write — offload if needed.
FOLLOW-UP TRAP: Blocking write chain deadlock.Subscriber vs scoreboard?
diagram
[INT][SENIOR][UVM-CODE]
Q: Subscriber vs scoreboard?
A:
Subscriber: light reaction. Scoreboard: compare state.
FOLLOW-UP TRAP: Full compare in subscriber.blocking vs nonblocking TLM?
diagram
[INT][SENIOR][UVM-CODE]
Q: blocking vs nonblocking TLM?
A:
blocking put/get handshake vs try_put.
FOLLOW-UP TRAP: Wrong pairing port/export types.TLM fifo vs analysis?
diagram
[INT][SENIOR][UVM-CODE]
Q: TLM fifo vs analysis?
A:
Fifo decouples producer/consumer rates; analysis is push.
FOLLOW-UP TRAP: Fifo for broadcast — wrong pattern.analysis_imp macro?
diagram
[INT][SENIOR][UVM-CODE]
Q: analysis_imp macro?
A:
uvm_analysis_imp_decl + write function per type.
FOLLOW-UP TRAP: Wrong txn type parameter.Subscriber compare hook?
diagram
[INT][SENIOR][UVM-CODE]
Q: Subscriber compare hook?
A:
write() samples covergroup or checks one field.
FOLLOW-UP TRAP: Entire protocol in subscriber.TLM in connect_phase?
diagram
[INT][SENIOR][UVM-CODE]
Q: TLM in connect_phase?
A:
analysis_port.connect(subscriber.analysis_export);
FOLLOW-UP TRAP: Connect in run_phase.Null analysis export?
diagram
[INT][SENIOR][UVM-CODE]
Q: Null analysis export?
A:
write not called — check connect and port name.
FOLLOW-UP TRAP: Multiple connects to same imp wrongly.TLM across hierarchy?
diagram
[INT][SENIOR][UVM-CODE]
Q: TLM across hierarchy?
A:
Connect at env level agent.monitor.ap to env.sb.act_imp.
FOLLOW-UP TRAP: Cross-hierarchy illegal connect.uvm_subscriber pattern?
diagram
[INT][SENIOR][UVM-CODE]
Q: uvm_subscriber pattern?
A:
extends uvm_subscriber#(txn) with write(txn).
FOLLOW-UP TRAP: Forget analysis_export in base.Backpressure with fifo?
diagram
[INT][SENIOR][UVM-CODE]
Q: Backpressure with fifo?
A:
blocking put waits when fifo full.
FOLLOW-UP TRAP: Nonblocking only and lose data.TLM recording?
diagram
[INT][SENIOR][UVM-CODE]
Q: TLM recording?
A:
Optional record txn in write for debug.
FOLLOW-UP TRAP: Record every field always — log flood.Analysis vs port in driver?
diagram
[INT][SENIOR][UVM-CODE]
Q: Analysis vs port in driver?
A:
Driver uses seq_item_port; monitor uses analysis_port — different.
FOLLOW-UP TRAP: analysis for stimulus.Multi-txn type fanout?
diagram
[INT][SENIOR][UVM-CODE]
Q: Multi-txn type fanout?
A:
Separate analysis ports per type or generic subscriber.
FOLLOW-UP TRAP: Type mismatch compile error.TLM performance?
diagram
[INT][SENIOR][UVM-CODE]
Q: TLM performance?
A:
Avoid deep write chains; filter early.
FOLLOW-UP TRAP: Scoreboard on every cycle tick.Whiteboard analysis fanout?
diagram
[INT][SENIOR][UVM-CODE]
Q: Whiteboard analysis fanout?
A:
monitor.ap → sb + cov + logger diagram in 5 min.
FOLLOW-UP TRAP: No labels on arrows.TLM vs mailbox?
diagram
[INT][SENIOR][UVM-CODE]
Q: TLM vs mailbox?
A:
UVM TLM standardized; mailbox SV primitive — prefer TLM in UVM TB.
FOLLOW-UP TRAP: Mixing styles without reason.