Litcius/Paper detail

Processor Verification using Symbolic Execution: A RISC-V Case-Study

Niklas Bruns, Vladimir Herdt, Rolf Drechsler

202311 citationsDOI

Abstract

We propose to leverage state-of-the-art symbolic execution techniques from the Software (SW) domain for processor verification at the Register-Transfer Level (RTL). In particular, we utilize an Instruction Set Simulator (ISS) as a reference model and integrate it with the RTL processor under test in a co-simulation setting. We then leverage the symbolic execution engine KLEE to perform a symbolic exploration that searches for functional mismatches between the ISS and RTL processor. To ensure a comprehensive verification process, symbolic values are used to represent the instructions and also to initialize the register values of the ISS and processor. As a case study, we present results on the verification of the open source RISC-V based MicroRV32 processor, using the ISS of the open source RISC-V VP as a reference model. Our results demonstrate that modern symbolic execution techniques are applicable to a full scale processor cosimulation in the embedded domain and are very effective in finding bugs in the RTL core.

Topics & Concepts

Computer scienceSymbolic executionReduced instruction set computingLeverage (statistics)Processor designInstruction setEmbedded systemFunctional verificationMulti-core processorParallel computingSoftwareFormal verificationProgramming languageMachine learningSoftware Testing and Debugging TechniquesFormal Methods in VerificationRadiation Effects in Electronics