A hand-built class testbench already contains most of UVM under different names. UVM standardizes these patterns and adds automation for phasing, the factory, configuration, reporting, and TLM plumbing.
THE BRIDGE AT A GLANCE
HAND-BUILT TB UVM
───────────── ───
test (plusarg select) ────► uvm_test (+UVM_TESTNAME + factory)
env class ────► uvm_env
generator ────► uvm_sequence (+ sequencer)
mailbox handoff ────► sequencer/driver handshake
driver ────► uvm_driver
monitor + mailbox fanout ────► uvm_monitor + analysis ports
scoreboard ────► uvm_scoreboard
done-counter / events ────► uvm_objection
$display + verbosity ────► uvm_report / `uvm_info
same architecture — standardized names + automationLesson | What it covers |
|---|---|
Each hand-built piece next to its UVM twin, plus the two mappings that change shape. | |
The five automations side by side with hand-built code, and the price tag. | |
A staged ladder that keeps tests green, with plain models kept working inside UVM. |
The generator becomes a sequence plus a sequencer, mailboxes become the sequencer/driver handshake and analysis ports, and the done counter becomes objections. The new capability is per-item completion feedback, which makes reactive stimulus natural.