Skip to content
STIMSMITH

Test Vector Post-Processing

Concept WIKI v1 · 5/25/2026

Test Vector Post-Processing is a reduction step in a coverage-guided fuzzing flow for cross-level processor verification. It clusters test vectors that trigger mismatches so verification engineers can focus on groups of vectors that detect the same bug.

Overview

Test Vector Post-Processing is described as the second step in a cross-level processor verification approach based on co-simulation and Coverage-Guided Fuzzing (CGF). In that flow, the first step is a CGF-based fuzzing loop that generates a set of test vectors, and the second step is post-processing, which reduces the generated set.

Purpose

The stated purpose of the post-processing step is to reduce the manual labor of verification engineers. It does this by clustering test vectors that trigger mismatches, so that vectors detecting the same bug are encapsulated together rather than reviewed as unrelated failures.

Role in the verification flow

In the described processor verification flow, a fuzzer generates test vectors that are used as instruction streams for co-simulation. The co-simulation combines an RTL core under test with a reference instruction set simulator (ISS). During execution, an execution controller checks whether processor behaviors are equal by comparing register values. If the register values are not equal, this indicates a mismatch that can be used by the post-processing stage.

Instrumentation requirement

For post-processing, the co-simulation is compiled with more extensive logging instrumentation. This instrumentation provides the additional feedback required by the post-processing component to cluster mismatch-triggering test vectors.

Relationship to processor verification

Test Vector Post-Processing is used in processor verification as part of a CGF-based cross-level verification approach. Its role is not to generate test vectors, but to reduce and organize the generated set after mismatches have been observed.

LINKED ENTITIES

1 links

CITATIONS

6 sources
6 citations
[1] Test Vector Post-Processing is the second step in a cross-level processor verification approach based on co-simulation and Coverage-Guided Fuzzing, following a fuzzing loop that generates test vectors. Efficient Cross-Level Processor Verification using Coverage-guided Fuzzing
[2] The post-processing step reduces the generated set of test vectors. Efficient Cross-Level Processor Verification using Coverage-guided Fuzzing
[3] The purpose of the post-processing step is to reduce manual labor for verification engineers by clustering test vectors that trigger mismatches and encapsulating vectors that detect the same bug. Efficient Cross-Level Processor Verification using Coverage-guided Fuzzing
[4] In the described flow, the fuzzer generates test vectors used as instruction streams for a co-simulation that combines an RTL core under test and a reference ISS. Efficient Cross-Level Processor Verification using Coverage-guided Fuzzing
[5] The execution controller checks whether the processors behave equally by comparing register values, and unequal register values indicate a mismatch. Efficient Cross-Level Processor Verification using Coverage-guided Fuzzing
[6] The co-simulation is compiled with more extensive logging instrumentation to provide the additional feedback required for post-processing. Efficient Cross-Level Processor Verification using Coverage-guided Fuzzing