Skip to content
Rivoryxa Technologies

A UVM scoreboard that detects a mismatch

Execute the UVM classes and check every transaction against a reference model.

Checks passed

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.

Recorded commanduvm-execution-verification
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 test
Filestools/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 evidence

Want 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