Skip to content
STIMSMITH

Coverage-guided Aging

Concept WIKI v1 · 5/30/2026

Coverage-guided Aging is a processor-verification concept used in cross-level co-simulation to guide endless randomized instruction stream generation over time. In the DATE 2022 approach, a Coverage-Observer measures functional coverage from the ISS execution state, performs coverage aging, and sends hints to an Instruction-Injector when functionality should be covered again.

Overview

Coverage-guided Aging is a coverage-driven technique for cross-level processor verification based on endless randomized instruction stream generation. The approach uses functional coverage feedback to guide test generation over time rather than relying only on unconstrained randomized instruction streams.

In the described cross-level setup, separate random instruction generators are initialized with the same cryptographic seeds for each core, causing them to provide the same endless randomized instruction stream. The instruction-set simulator (ISS) first executes part of the stream, while the RTL processor later fetches its stream through a core adapter that accounts for micro-architectural effects such as pipelining, prefetching, and fetch buffering.

Role in the verification loop

Coverage-guided Aging is implemented around two main components:

  • Coverage-Observer: monitors the ISS internal state, samples executed instructions, maps them to coverage points, measures functional coverage, performs coverage aging, and emits hints when functionality should be covered again.
  • Instruction-Injector: consumes the observer's hints and injects instructions intended to cover the requested functionality.

The paper notes that functional coverage can, in principle, be specified with arbitrary complexity and is used to guide test generation over time. In the work described, coverage points are defined as the cross-product of instruction groups.

Context in cross-level processor verification

The wider verification flow compares an RTL core against an ISS. After execution, the core and ISS write results to separate memories, and a comparator checks for functional differences by comparing register-value changes while accounting for different timing behavior between the cores. Coverage-guided Aging supplies the coverage feedback loop that steers the otherwise endless randomized instruction stream.

Reported effect

The DATE 2022 paper reports that Coverage-guided Aging produced a more regular coverage distribution for randomized instruction streams. In the same evaluation context, the authors report finding an intricate microarchitecture-related bug in an already heavily tested industrial processor and its accompanying testbench infrastructure.

CITATIONS

8 sources
8 citations
[1] Coverage-guided Aging is used in a cross-level processor verification approach based on endless randomized instruction stream generation. Cross-Level Processor Verification via
[2] Random instruction generators for each core are initialized with the same cryptographic seeds so they provide the same endless randomized instruction stream. Cross-Level Processor Verification via
[3] The RTL-side fetch path must account for micro-architectural details such as pipelining, prefetching, and fetch buffering. Cross-Level Processor Verification via
[4] The Coverage-Observer measures functional coverage based on the ISS execution state, performs coverage aging, and gives hints to the Instruction-Injector when functionality should be covered again. Cross-Level Processor Verification via
[5] Functional coverage can be specified with arbitrary complexity and is used to guide test generation over time. Cross-Level Processor Verification via
[6] In the described work, coverage points are defined as the cross-product of instruction groups. Cross-Level Processor Verification via
[7] The Instruction-Injector evaluates coverage hints and injects instructions to cover requested functionality. Cross-Level Processor Verification via
[8] The authors report achieving a more regular coverage distribution via Coverage-guided Aging and finding an intricate microarchitecture-related bug. Cross-Level Processor Verification via