Skip to main content...
S3 · Verification Engineering (SV + UVM)
30 min

Day 106: The pre-UVM testbench: generator → driver → monitor → scoreboard

Before UVM, build a class-based testbench by hand. Feeling its pain is how you'll understand exactly what UVM automates.

The pre-UVM testbench architecture

Assemble the pieces into a class-based environment for the UART — deliberately *before* UVM. The canonical structure: a generator creates transactions, a driver applies them to the DUT via the virtual interface, a monitor observes the DUT's pins and reconstructs transactions, and a scoreboard compares observed behavior against a reference. Mailboxes connect them; a top module instantiates the DUT and interface.

Why build it before UVM

UVM *is* this architecture, standardized and made reusable. Building the raw version by hand — and feeling the boilerplate, the manual connections, the lack of reuse — is exactly why the roadmap has you do it first. When UVM's agent, sequencer, and analysis_port appear (Day 116+), you'll recognize each as 'the standardized version of the thing I hand-wrote'.

Key terms

Generator
Creates (randomized) transactions and sends them to the driver.
Driver
Applies transactions to the DUT pins via the virtual interface.
Monitor
Observes DUT pins and reconstructs transactions for checking/coverage.
Scoreboard
Compares observed DUT behavior against an independent reference model.

Before moving on, you should be able to

In the classic testbench architecture, what is the monitor’s job?

We use cookies

We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies. Learn more

    Day 106: The pre-UVM testbench: generator → driver → monitor → scoreboard | RBTechIconX