A UVM scoreboard that detects a mismatch
Execute the UVM classes and check every transaction against a reference model.
Public demonstration
This is not a client result. The recorded command and check status appear below.
Recorded outcome
Each correct seed reports 200 matches with zero mismatches, UVM errors, or fatals. The fault-enabled run reaches all 200 transactions and reports the required mismatch evidence. This replaces the earlier lint-only status for this environment.
What was checked
- Problem
- A UVM source tree that passes lint does not establish that its classes elaborate or that transactions reach the scoreboard. A working checker also needs to reject a deliberately wrong answer.
- Scope
- A small pipelined ALU with an executed UVM sequence, sequencer, driver, monitor, analysis connections, scoreboard, and test. Seeds 1, 17, and 2026 each check 200 transactions; seed 17 is repeated with fault injection enabled.
- Approach
- The runner fetches immutable ALU and Accellera UVM revisions and builds the class environment using Verilator. A recorded test-only branch in the fetched DUT can substitute an incorrect result. The normal cases disable that branch; the negative control enables it and must produce scoreboard mismatches.
- Evidence
- The repository retains original and instrumented source hashes, the exact patch, build and simulation logs, seeds, tool versions, and timings. Result validation requires one scoreboard summary, one complete severity summary, and the exact case matrix.
Scope and limits
What these checks do not establish.
- These are finite simulation results for a small ALU, not complete UVM feature support or a formal proof.
- The normal cases use an instrumented DUT with fault injection disabled. The original source hashes and exact change are recorded.
- Verilator ignores the class-member opcode covergroup in this run. No collected functional coverage is claimed.
- UVM_NO_DPI disables DPI-backed component name validation. Other simulator versions and commercial flows require separate validation.
Reproduce and inspect
Recorded verification status
Public runner revision be4bb5b uses ALU source 6f885404 and Accellera UVM 2020.3.1 at 78c06547. Independent execution on 15 September 2026 with Verilator 5.050 passed three correct seeds and the expected injected mismatch. All nine final runner tests pass.
git clone https://github.com/Rivoryxa-Technologies/uvm-execution-verification
cd uvm-execution-verification
# Requires Python 3, Git, a C++ compiler, make, and supported Verilator.
# The recorded version is Verilator 5.050.
make testtools/run.pypinned fetch, UVM build, and result checkstools/test_runner.pyfailure classification regressionsrecorded/2026-09-15/instrumentation.patchexact fault injectionrecorded/2026-09-15/scoreboard and build evidenceWant this method on your design?
Share the problem in a few lines. We will discuss the scope before any confidential project material changes hands.
Discuss a verification problem