Skip to content
STIMSMITH

Verification Test Plan

Concept WIKI v1 · 5/27/2026

A verification test plan is a specification document used in hardware design verification to define what features, configurations, scenarios, coverage goals, stimulus, and checking mechanisms are needed to verify a design under test.

Overview

A Verification Test Plan is a specification document that captures the details needed to verify a given hardware design. It is typically developed by a verification engineer who understands the Design Under Test (DUT), and it is used to plan verification work so that verification can be completed with high quality and within a predictable time period.

A test plan starts from the design specification, also called an architecture or microarchitecture specification. That specification acts as the golden reference for verification and should describe the design implementation, supported features, interfaces and protocols, configuration and initialization information including registers, and other relevant details.

What the plan captures

A verification test plan should list the design features to be verified. Each feature should be briefly explained as an individual test-plan item. The plan should also list supported design configurations under which those features must be tested. Not every feature or configuration necessarily needs its own standalone test; many features and configurations are verified in combination.

The plan can also capture specific microarchitectural cases that must be checked for correctness. Examples include interface properties, internal microarchitectural events such as state machines, FIFOs, arbitration, and interactions between logical blocks. It may also include stimulus patterns, interactions, high-level usage scenarios, and potential deadlock or livelock conditions.

Verification approach

After identifying what must be verified, the plan should describe how each item will be verified. The evidence describes simulation with constrained-random or coverage-driven approaches as the majority approach for functional verification, while selective areas or special features may also use formal verification or other techniques.

The plan should document the intended stimulus infrastructure, randomization controls, sequences, tests, and checking mechanisms. Checking mechanisms may include scoreboards, interface assertions, or embedded assertions in RTL or verification components. A good plan documents both what to verify and how to verify, including testbench components, hierarchy, and stimulus patterns, so that the plan can be translated into implementation with fewer execution issues.

Relationship to coverage

The test plan is closely related to coverage planning. It should translate verification intent into stimulus and coverage properties that help measure stimulus quality and completeness. In the Ibex RISC-V verification example described in the evidence, the testbench stimulates the core to execute programs stored in memory, compares the core trace log against a golden Spike ISS trace log, collects coverage on executed instructions and operands, and uses a test plan and coverage plan to ensure coverage of relevant instructions and operations.

CPU verification plans

For CPU verification, a single test plan is often insufficient. The evidence describes multiple plan types:

  • Architecture verification plan: verifies compliance with the instruction-set architecture so software can run correctly. It should cover instructions, modes, memory management, interrupts, and other software interfaces.
  • Microarchitecture verification plans: cover logical building blocks such as fetch, execution, load/store, cache, or other IP/block-level units. These plans describe block features, stimulus generation, checking mechanisms, and verification details.
  • Performance verification plan: focuses on performance aspects and bottlenecks, using patterns or benchmarks such as SPECint, lmbench, or Dhrystone.

In the Ibex example, the test plan scope includes RV32IMCB instructions, privileged specification compliance, exception and interrupt testing, and Debug Mode operation. The described co-simulation system can run a RISC-V ISS, currently Spike, in lockstep with the Ibex core, checking executed instructions and generated memory transactions against the ISS behavior.

CITATIONS

9 sources
9 citations
[1] A verification test plan is a specification document capturing the details needed to verify a design, developed by a verification engineer based on understanding the DUT. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[2] A test plan starts from the architecture or microarchitecture design specification, which acts as the golden reference and includes features, interfaces, protocols, configuration, initialization, registers, and other design details. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[3] The plan should list features and supported configurations as test-plan items, and many features or configurations may be verified in combination rather than through individual tests. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[4] A verification test plan may include microarchitectural cases, interface properties, internal events such as state machines, FIFOs and arbitration, block interactions, stimulus patterns, high-level scenarios, and potential deadlock or livelock conditions. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[5] Functional verification commonly uses simulation with constrained-random or coverage-driven approaches, while selected areas may use formal verification or other techniques. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[6] The plan should document stimulus infrastructure, randomization controls, sequences, tests, and checking mechanisms such as scoreboards or assertions, as well as testbench components, hierarchy, and stimulus patterns. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[7] For CPU verification, multiple plans may be needed, including architecture verification, microarchitecture verification, and performance verification plans. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[8] In the Ibex RISC-V example, the testbench executes memory-resident programs, compares the core trace against a Spike ISS trace, collects instruction and operand coverage, and uses test and coverage plans for relevant instructions and operations. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi
[9] The Ibex test-plan scope includes RV32IMCB instructions, privileged specification compliance, exception and interrupt testing, and Debug Mode operation, with co-simulation against Spike in lockstep. [PDF] UVM based design veri cation of a RISC-V CPU core - POLITesi