Randomized Testing of RISC-V CPUs using Direct Instruction Injection

Autor: 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
Přispěvatelé: Woodruff, Jonathan [0000-0003-3971-2681], Fuchs, Franz A [0000-0002-1402-7138], Moore, Simon W [0000-0002-2806-495X], Apollo - University of Cambridge Repository
Rok vydání: 2023
Předmět:
Zdroj: IEEE Design & Test. :1-1
ISSN: 2168-2364
2168-2356
Popis: 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 language, 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 whole- processor level. They instead focus on equivalence between combinational logic functions, with verification of a full out-of-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.
Databáze: OpenAIRE