Skip to content
STIMSMITH

Coverage-Driven Verification

Technique WIKI v1 · 5/25/2026

Coverage-Driven Verification is an iterative verification technique in which functional and stimulus coverage results guide test generation, debug, and targeted closure. In the provided RISC-V verification evidence, the flow combines constrained-random stimulus, directed test suites, generated SystemVerilog coverage models, reference-model comparison, and deterministic replay to expose coverage gaps and close them.

Overview

Coverage-Driven Verification is an iterative technique that uses measured coverage results to decide what to test next. In the RISC-V verification flow described in the evidence, coverage closure is defined as achieving sufficient functional and code coverage to provide confidence that relevant design behaviours have been tested. Functional Coverage and Stimulus Coverage measure how thoroughly stimulus has exercised ISA features and system behaviours, and automatically generated coverage models can provide detailed insight into coverage gaps.

Core idea

The technique is based on a feedback loop:

  1. Generate broad tests, such as constrained-random stimulus.
  2. Measure coverage using functional and stimulus coverage models.
  3. Identify gaps in ISA features, system behaviours, or specific architectural areas.
  4. Add directed tests or targeted suites to exercise the missing behaviours.
  5. Merge results, debug failures, and replay failing cases deterministically.

The evidence describes a hybrid flow for RISC-V in which constrained-random sweeps are followed by functional coverage analysis. Coverage gaps are then highlighted and closed, with results merged in Verdi and failing cases replayed deterministically in VCS.

Coverage inputs

Functional Coverage

Functional Coverage is used to measure how thoroughly the stimulus has exercised ISA features and system behaviours. The evidence states that ImperasFC can generate SystemVerilog coverage models directly from the ISA specification. Because the generated functional coverage is conventional SystemVerilog, results can be viewed in a standard coverage reporting tool such as Verdi, and users can extend the models for custom features and cross-coverage points.

Stimulus Coverage

Stimulus Coverage is also used to assess how thoroughly generated tests exercise ISA features and system behaviours. The evidence states that coverage analysis can begin before RTL using ImperasSC, enabling a shift-left approach in which validation starts earlier in the flow.

Hybrid closure flow

The provided evidence emphasizes that the most effective strategy combines constrained-random and directed tests. A typical flow begins with constrained-random sweeps using STING, then applies functional coverage analysis using ImperasFC. Where coverage gaps remain, directed suites such as TS-ISA, TS-VECT, TS-MMU, PMP, and ePMP can be used to target architectural features and protection mechanisms.

Directed suites are described as efficient for areas where random stimulus often leaves gaps. One example in the evidence notes that coverage analysis revealed weak points in Sv39 and Sv48 page-table walks, and adding TS-MMU tests exposed a subtle ordering issue in TLB flush logic.

Debug and integration

Coverage-driven closure is integrated with simulation, reference models, debug tools, and hardware-assisted platforms in the described RISC-V flow. Constrained-random programs can run in simulators such as VCS, while Verdi provides centralized debug. ImperasDV enables lock-step comparison against a reference model at instruction retirement, helping catch errors early. The same stimulus can be reused in ZeBu emulation or HAPS prototyping, extending validation to system-level workloads.

Benefits described in the evidence

The evidence identifies several benefits of a hybrid coverage-driven flow for RISC-V verification teams:

  • Faster coverage closure by combining random stimulus with directed suites.
  • Improved debug efficiency through self-checking tests and lock-step compare.
  • Scalability and reproducibility using logged seeds and directed reruns.
  • Portability across simulation, emulation, FPGA prototyping, and silicon.
  • Earlier validation through pre-RTL stimulus coverage analysis.

See also

CITATIONS

9 sources
9 citations
[1] Coverage closure is the process of achieving sufficient functional and code coverage to provide confidence that relevant design behaviours have been tested. source
[2] Functional Coverage and Stimulus Coverage measure how thoroughly stimulus has exercised ISA features and system behaviours. source
[3] A hybrid RISC-V verification flow combines constrained-random sweeps with functional coverage analysis using ImperasFC. source
[4] ImperasFC generates SystemVerilog coverage models directly from the ISA specification, and the resulting functional coverage can be viewed in standard coverage reporting tools such as Verdi. source
[5] Coverage analysis can begin before RTL using ImperasSC, supporting a shift-left verification approach. source
[6] Directed suites such as TS-ISA, TS-VECT, TS-MMU, PMP, and ePMP target architectural validation, vector extensions, virtual memory, and protection features. source
[7] Directed suites can close gaps left by random stimulus; the evidence describes TS-MMU tests exposing a TLB flush ordering issue after weak Sv39 and Sv48 page-table-walk coverage was identified. source
[8] The described flow integrates simulation, reference-model lock-step comparison, debug, emulation, prototyping, and deterministic replay. source
[9] The evidence lists faster coverage closure, improved debug efficiency, scalability and reproducibility, portability, and future-ready compliance as benefits of the hybrid approach. source