Skip to Checking + debug questions

Part 3 · Checking and debug

Keep observation independent from prediction, choose the correct TLM path, and debug hangs, report severity, and register-model synchronization with evidence.

Question directory

Questions for Checking + debug

Open an authored answer here, then follow its diagram and implementation example in context.

  1. TLM and checking pathsHow does an analysis port differ from put or get TLM interfaces?UVM interview answer
  2. TLM and checking pathsTrace one transaction from a sequence to a scoreboard.UVM interview answer
  3. Reports, debug, and RALWhat is the difference between UVM_ERROR and UVM_FATAL?UVM interview answer
  4. Reports, debug, and RALA UVM test hangs. What do you check first?UVM interview answer
  5. Reports, debug, and RALWhat does the UVM Register Abstraction Layer provide?UVM interview answer

UVM TLM and checking paths Separate actual from expected.

Treat the monitor as the source of observed behavior, use analysis connections for fan-out, and keep prediction independent from the actual-data path.

Concept model

Observation is a broadcast; checking is a comparison

pin behaviorDUT
reconstructmonitor
broadcastanalysis port
sample actualcoverage
create expectedpredictor
diagnosticstrace sink
from predictorexpected stream
from monitoractual stream
comparescoreboard

The monitor publishes a fresh observed transaction. Coverage samples it, the predictor creates expected behavior, and the scoreboard compares expected with actual.

Strong answer

An analysis port broadcasts a transaction through a zero-time write() function to every connected subscriber. Put and get interfaces model directed transfer and may be blocking or nonblocking.

Reason it through

  • A monitor commonly broadcasts observations to coverage, a predictor, and one or more scoreboards.
  • Subscribers must not consume time inside write() or modify the shared transaction. Clone it or use a uvm_tlm_analysis_fifo when deferred processing is required.
  • The sequencer-driver path uses the specialized seq_item_port and seq_item_export pull interface, not an ordinary uvm_tlm_put_port or uvm_tlm_get_port.
TLM interface comparison
InterfaceCommunicationTypical use
analysisBroadcast write(), no timeMonitor fan-out
put/getDirected, blocking or nonblockingProducer-consumer transport
seq_itemArbitrated request/completionSequencer-driver

UVM Reports, debug, and RAL Close the loop with evidence.

Choose report severity by recoverability, debug hangs from phase control outward, and use RAL as a synchronized model rather than a magical mirror.

Concept model

RAL frontdoor and prediction path

Register evidence pathKeep the mirror synchronized
named intentreg model
bus itemadapter
frontdoorDUT register
update mirrorpredictor

Register intent travels through the map and adapter to the DUT. Prediction keeps the model mirror aligned with observed bus activity.