Part 11 · Senior Prep · Intermediate
TLM & Analysis Interview Hub: Model Answers
Hub — senior interview Q&A on UVM TLM: port/export/imp, put/get/transport, analysis ports, FIFO patterns, debug, and TLM vs direct connections.
Overview
TLM questions test whether you understand dataflow semantics — broadcast vs point-to-point, blocking vs non-blocking, and hierarchy connection rules.
Sub-lessons in this topic
port-export-imp-qa — initiator, forwarder, implementer roles and connect rules.
put-get-transport-qa — blocking flow control, pull model, transport combined ops.
analysis-port-subscriber-qa — broadcast write(), fan-out, subscriber patterns.
fifo-patterns-qa — uvm_tlm_fifo, analysis_fifo, rate matching bridges.
tlm-unconnected-debug-qa — unconnected port errors, analysis write drops.
tlm-vs-direct-qa — when TLM vs direct handle reference or mailbox.
[INT][SENIOR][UVM] MODEL ANSWER CHAIN
1. MECHANISM — what it is / how it works (one sentence)
2. MOTIVATION — why UVM needs this
3. WHEN-TO-USE — when you choose it AND when you skip it
4. PITFALL — the mistake juniors make
5. EXAMPLE — one concrete testbench scenario[INT][SENIOR][UVM] monitor fan-out (whiteboard drill)
[UVM] monitor.ap (analysis_port)
├────────► scoreboard.act_imp
├────────► coverage_subscriber.analysis_export
└────────► predictor.req_imp (ref model input)Key takeaways
analysis = broadcast observe; put/get = point-to-point flow control.
port → export → imp chain follows UVM hierarchy rules.
Draw fan-out from monitor — interviewers expect this diagram.
Common pitfalls
Saying analysis_port has backpressure — it does not.
Connecting port-to-port without export — compile error or no call.
Expecting analysis write to block — zero or more subscribers, no grant.
Interview framing
For TLM questions, start with one-sentence semantics (broadcast vs P2P, blocking vs non-blocking) before naming port types.
Clarify active vs passive agent before explaining driver TLM.
Offer uvm_tlm_analysis_fifo when interviewer asks about clock domain crossing.
Name uvm_analysis_port#(T) parameterized type — must match subscriber imp type.