Overview
Instruction Generation, in the provided evidence, refers to the generation of instruction streams for processor verification. The concrete implementation described is RISCV-DV, a SystemVerilog/UVM-based open-source instruction generator for RISC-V processor verification. [C1]
Supported RISC-V scope
RISCV-DV supports the following instruction-set profiles: RV32IMAFDC and RV64IMAFDC. It also supports RISC-V privileged execution in machine mode, supervisor mode, and user mode. [C2]
Generation capabilities
RISCV-DV includes a broad set of instruction-generation capabilities for verification stimulus. These include:
- Page-table randomization and exception generation. [C3]
- Privileged CSR setup randomization and a privileged CSR test suite. [C4]
- Trap and interrupt handling. [C5]
- MMU stress testing. [C6]
- Sub-program generation and random program calls. [C7]
- Illegal instruction and HINT instruction generation. [C8]
- Random forward and backward branch instructions. [C9]
- Mixing directed instructions with a random instruction stream. [C10]
- Debug-mode support using a fully randomized debug ROM. [C11]
Verification-flow integration
RISCV-DV provides an instruction-generation coverage model and handshake communication with a testbench. It also supports handcoded assembly tests. [C12]
For co-simulation, RISCV-DV supports multiple instruction set simulators: Spike, riscv-ovpsim, Whisper, and sail-riscv. [C13]
Tooling requirements
Running the generator requires an RTL simulator that supports SystemVerilog and UVM 1.2. The evidence states that RISCV-DV has been verified with Synopsys VCS, Cadence Incisive/Xcelium, Mentor Questa, and Aldec Riviera-PRO simulators. [C14]
Source and usage model
The source can be obtained by cloning the RISCV-DV repository. The evidence describes two usage styles: running scripts directly with python3, which is recommended for developers working across multiple clones, and installing the Python package in editable user mode for normal users. [C15]
Project status
The evidence states that RISC-V DV has been contributed to CHIPS Alliance and that the project holds regular meetings to discuss issues, feature priorities, and development progress. It also notes that the project is not an officially supported Google product. [C16]