Overview
The Imperas Instruction Stream Test Generator is a tool developed by Imperas Software Ltd. that produces directed-tests used in the architectural validation of RISC-V processor implementations. It forms part of the broader Imperas RISC-V Verification IP (VIP) offering and is used to generate the test suites shipped alongside the Imperas RISC-V golden reference model and the free riscvOVPsimPlus reference simulator.
Role in the Imperas Verification Flow
Processor verification is a critical activity for any hardware development team; design bugs caught early in a project are far less costly than those discovered late, with the Intel Floating Point bug of 1994 — reported at the time as a $475M pre-tax charge — frequently cited as an example of the economic impact of late-stage bugs.
The Imperas verification flow uses a 'step-and-compare' methodology in which an RTL processor implementation is checked against the Imperas golden reference model, encapsulated within a SystemVerilog UVM environment. The methodology supports asynchronous events and provides a seamless transition into debug analysis when a mismatch is found. The test suites generated by the Instruction Stream Test Generator are intended for ISA architectural compliance validation and are explicitly not comprehensive, complete, full hardware design verification suites that prove a design is bug-free.
Generated Test Suites
The Instruction Stream Test Generator produces suites totaling over 3.5 million instructions, available as open-source, covering both ratified and near-ratified RISC-V specifications:
- RV32F — 32-bit Single-Precision Floating-Point (IEEE 754-2008)
- RV64F — 64-bit Single-Precision Floating-Point (IEEE 754-2008)
- RV64D — 64-bit Double-Precision Floating-Point (IEEE 754-2008)
- RV32/64IMC — ratified integer, multiply/divide, and compressed extensions
- RISC-V Vector ("V") — example configuration
spec:0.8, xlen:32, elen:32, vlen:256, slen:256, FP:IEEE754; other configurations (spec 0.9, 1.0 draft, and variedxlen,elen,vlen,slen) are available by contacting Imperas. - RV32/64K Crypto (scalar) — draft specification version 0.8.0
- RV32/64B Bit Manipulation — draft specification version 0.93
Coverage Support
The Imperas golden reference model used in conjunction with these tests includes built-in monitors that provide instruction and architectural functional coverage metrics directly during simulation, without requiring post-simulation processing or log-file analysis. This makes coverage a first-class signal in the verification plan and supports progress tracking toward design completion and tape-out milestones.
Reference Model and Simulator
The Instruction Stream Test Generator is paired with the free riscvOVPsimPlus RISC-V reference model and simulator, which has been widely adopted across the RISC-V verification ecosystem. riscvOVPsimPlus supports the ratified RV32/64 IMAFDC specifications as well as the near-ratified extensions Vector ("V"), Hypervisor ("H"), Bit Manipulation ("B"), and Crypto (Scalar).
Further Reading
Additional details on test benches built around the Imperas RISC-V verification reference models are available at the Imperas RISC-V page.