Randomized Testing of RISC-V CPUs Using Direct Instruction Injection
The work
| Authors | Alexandre Joannou; Peter Rugg; Jonathan Woodruff; Franz A. Fuchs; Marno van der Maas; Matthew Naylor; Michael Roe; Robert N. M. Watson; Peter G. Neumann; Simon W. Moore |
|---|---|
| Editors | |
| Type | article |
| Year | 2024 |
| Citekey | joannou2024randomized |
Where it appeared
| Published in | IEEE Design and Test |
|---|---|
| Volume | 41 |
| Issue | 1 |
| Pages | 40--49 |
Identifiers
| DOI | 10.1109/mdat.2023.3262741 |
|---|
Access
| Landing page | https://www.repository.cam.ac.uk/handle/1810/362604 |
|---|
Related
| Distinct from | bauereiss2022verified |
|---|---|
| Distinct from | naylor2015generic |
| Distinct from | naylor2025abstracting |
From bibtex.
Abstract
TestRIG (Testing with Random Instruction Generation) is a testing framework for RISC-V implementations. The RISC-V community has standardized a formal model of the architecture in the Sail language1 , giving a human-readable specification that can also be used for simulation and verification. The Sail language is designed for this purpose by allowing instruction semantics to be described conveniently (for example, by supporting variable bit-widths). Ideally, a RISC-V implementor could formally prove equivalence between their implementation and the Sail model, but proof tools are not yet sufficiently automated to be routinely used on the wholeprocessor level. They instead focus on equivalence between combinational logic functions, with verification of a full outof-order microarchitecture remaining an open problem. As a pragmatic compromise, we use TestRIG to check equivalence between the model and an implementation by generating random instruction sequences, executing the same sequences on the model and the implementation under test, and comparing execution traces (tandem execution). This approach does not prove equivalence but can demonstrate divergence, and is usable in all stages of development. TestRIG uses the RISC-V Formal Interface (RVFI) standard2 to observe the change in state after each instruction of the implementation under test, and uses a novel technique that we are calling Direct Instruction Injection (DII) for test injection.
A copy is held
pdf, 183.0 kB. Not published — it may be under copyright. The facts and links here are.
How it got here
| How it got here | agent via bibtex |
|---|---|
| Added | 2026-09-18 08:27 UTC |
| Not denied by | a person 2026-09-18 10:06 UTC |
Cite it as
@article{joannou2024randomized,
title = {Randomized Testing of RISC-V CPUs Using Direct Instruction Injection},
author = {Alexandre Joannou and Peter Rugg and Jonathan Woodruff and Franz A. Fuchs and Marno van der Maas and Matthew Naylor and Michael Roe and Robert N. M. Watson and Peter G. Neumann and Simon W. Moore},
year = {2024},
journal = {IEEE Design and Test},
volume = {41},
number = {1},
pages = {40--49},
doi = {10.1109/mdat.2023.3262741},
}
This record lives at https://refs.drheap.org/joannou2024randomized/ and will keep doing so.