Skip to content
STIMSMITH

Universal Verification Methodology (UVM)

Technique WIKI v1 · 6/25/2026

The Universal Verification Methodology (UVM) is a widely used methodology for functional verification of digital designs, providing structured, reusable testbenches. It is the dominant verification methodology in industry and is supported by an ecosystem of open-source tools including Verilator, RISCV-DV, and CHIPS Alliance's SV Tools Project.

Universal Verification Methodology (UVM)

Overview

The Universal Verification Methodology (UVM) is a standardized verification methodology widely used in industry to verify digital designs through structured and reusable testbenches. Verification remains a major bottleneck in Integrated Circuit (IC) development, consuming nearly 70% of total development effort [arxiv:2605.04704v2]. UVM addresses this by providing a framework that improves reuse and supports constrained-random verification.

UVM is built on SystemVerilog (SV), standardized as IEEE 1800-2017 [chipsalliance.org/news/sv-tools-project-launch/]. The methodology relies on constructs such as verification components, agents, scoreboards, reference models, and constrained-random stimulus generation.

Applications in RISC-V Verification

UVM has been applied extensively to RISC-V processor and system verification. A representative example is the work from the Barcelona Supercomputing Center (BSC) for the Barcelona Zettascale Lab (BZL) project, where a multi-level UVM environment was used to verify a system composed of three RISC-V cores (including in-order Sargantana and out-of-order Lagarto KA/OX cores) and their cache hierarchy [riscv-europe.org/summit/2025/media/proceedings/2025-05-14-RISC-V-Summit-Europe-P2.1.05-GENOVESE-abstract.pdf].

In the BSC environment:

  • Core-UVM level: The DUT is the core itself, with agents monitoring complete_if (retired instruction state including PC, destination register, and CSR contents), int_if (interrupt injection and trap detection), dc_if (data cache interface), and ic_if (instruction cache interface). A modified Spike ISS is used as a reference model for co-simulation, with results compared in a scoreboard. The simulation preloads binaries into both memory and Spike, executes the test, and terminates early on scoreboard mismatches, timeouts, or assertion failures.
  • CPU-Subsystem UVM level: The DUT is the full system with three cores and three cache levels. It reuses the core-UVM instance in passive mode, adds AXI Slave Memories (modelled using the axi-mem component from the Pulp project), a JTAG VIP, and an AXI Master VIP for DMA verification.

The BSC verification strategy combines UVM environments with randomly generated binaries from the riscv-dv instruction generator (modified to provide full RVV 1.0.0 support and enhanced trap handling) together with directed tests from riscv-tests and compliance suites [riscv-europe.org/summit/2025/media/proceedings/2025-05-14-RISC-V-Summit-Europe-P2.1.05-GENOVESE-abstract.pdf].

UVM in Open-Source Tooling

RISCV-DV (Instruction Generator)

The SV/UVM-based RISCV-DV framework, contributed by Google to CHIPS Alliance, is an instruction generator for RISC-V processors used for verifying features such as privileged modes and trap/interrupt handling. Generated instructions are executed by the core under test and simultaneously by a reference RISC-V ISS (e.g., Spike or Renode), with core states compared after each executed instruction. This co-simulation setup is used in the verification workflows of many RISC-V ecosystem cores, including the CHIPS Alliance VeeR EL2 core and lowRISC's Ibex [chipsalliance.org/news/sv-tools-project-launch/].

UVM in Verilator

Long-running efforts to enable UVM testbenches in Verilator, driven by Antmicro, Wilson Snyder, and other contributors, have produced uvm-verilator. The most recent milestone is support for upstream UVM 2017 in Verilator. Bringing UVM to Verilator (both open source and widely adopted in the industry) is an important step toward a fully open-source ASIC development flow [chipsalliance.org/news/sv-tools-project-launch/].

CHIPS Alliance SV Tools Project

The SV Tools Project, an initiative under CHIPS Alliance (operating under the Linux Foundation), groups together open-source tools for SystemVerilog/UVM-based development: the sv-tests suite (used to benchmark coverage of the SV standard, e.g., tracking milestones such as the addition of UVM support to Verilator), Verible, Synlig, and RISCV-DV [chipsalliance.org/news/sv-tools-project-launch/].

LLM-Assisted UVM Testbench Generation

Recent research has explored using Large Language Models (LLMs) to automate UVM testbench construction, addressing the manual coding burden and need for domain expertise. Two notable frameworks include:

  • UVM^2: Generates UVM testbenches and iteratively refines them using coverage feedback, reducing testbench setup time significantly compared to experienced engineers while achieving average code coverage of 87.44% and function coverage of 89.58% [arxiv:2504.19959v4].
  • UVMarvel: An automated framework for subsystem-level RTL verification across mainstream bus protocols. It introduces an Intermediate Representation (IR) and a Bus Protocol Library to translate heterogeneous specifications into protocol-correct subsystem-level UVM testbenches, and uses a Signal Tracker and Verilog Patching Library to guide LLM-based stimulus refinement. UVMarvel achieves an average code coverage of 95.65% and reduces verification time from several human working days to a 4.5-hour automated execution [arxiv:2605.04704v2].

Cross-References

  • Verilator: Open-source RTL simulator that implements UVM support via uvm-verilator.
  • RISCV-DV: SV/UVM-based instruction generator that implements UVM-style verification for RISC-V processors.
  • uvm-verilator: Code artifact providing UVM testbench support in Verilator.
  • Spike: RISC-V Instruction Set Simulator used as a reference model in UVM co-simulation environments.
  • riscv-tests: Directed test suite commonly combined with UVM environments for compliance testing.
  • Ibex: lowRISC RISC-V core whose verification workflow uses RISCV-DV/UVM.
  • VeeR: CHIPS Alliance RISC-V CPU core verified using RISCV-DV/UVM.

CITATIONS

7 sources
7 citations
[1] Verification consumes nearly 70% of total IC development effort, motivating UVM adoption. UVMarvel: an Automated LLM-aided UVM Machine for Subsystem-level RTL Verification
[2] UVM^2 reduces testbench setup time and achieves 87.44% code coverage / 89.58% function coverage. From Concept to Practice: an Automated LLM-aided UVM Machine for RTL Verification
[3] UVMarvel achieves 95.65% average code coverage and reduces verification time to 4.5 hours. UVMarvel: an Automated LLM-aided UVM Machine for Subsystem-level RTL Verification
[4] RISCV-DV is an SV/UVM-based instruction generator contributed by Google to CHIPS Alliance, used with reference ISSes (Spike, Renode) for co-simulation verification. CHIPS Alliance SV Tools Project launch announcement
[5] Verilator supports upstream UVM 2017 through the uvm-verilator effort led by Antmicro and Wilson Snyder. CHIPS Alliance SV Tools Project launch announcement
[6] The Barcelona Supercomputing Center uses UVM at core level (with Spike reference model and riscv-dv random binary generation) and reuses it at CPU-subsystem level for a multi-core RISC-V system with three cache levels. Verification of a RISC-V system with multiple cores
[7] CHIPS Alliance SV Tools Project groups sv-tests, Verible, Synlig, and RISCV-DV as open-source SystemVerilog/UVM tooling. CHIPS Alliance SV Tools Project launch announcement