Hardware/Software Co-verification Using Path-based Symbolic Execution

01/05/2020
by   Rajdeep Mukherjee, et al.
0

Conventional tools for formal hardware/software co-verification use bounded model checking techniques to construct a single monolithic propositional formula. Formulas generated in this way are extremely complex and contain a great deal of irrelevant logic, hence are difficult to solve even by the state-of-the-art Satis ability (SAT) solvers. In a typical hardware/software co-design the firmware only exercises a fraction of the hardware state-space, and we can use this observation to generate simpler and more concise formulas. In this paper, we present a novel verification algorithm for hardware/software co-designs that identify partitions of the firmware and the hardware logic pertaining to the feasible execution paths by means of path-based symbolic simulation with custom path-pruning, property-guided slicing and incremental SAT solving. We have implemented this approach in our tool COVERIF. We have experimentally compared COVERIF with HW-CBMC, a monolithic BMC based co-verification tool, and observed an average speed-up of 5X over HW-CBMC for proving safety properties as well as detecting critical co-design bugs in an open-source Universal Asynchronous Receiver Transmitter design and a large SoC design.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/11/2023

Countering the Path Explosion Problem in the Symbolic Execution of Hardware Designs

Symbolic execution is a powerful verification tool for hardware designs,...
research
02/03/2021

Fuzzing Hardware Like Software

Hardware flaws are permanent and potent: hardware cannot be patched once...
research
11/15/2017

Logic Bug Detection and Localization Using Symbolic Quick Error Detection

We present Symbolic Quick Error Detection (Symbolic QED), a structured a...
research
09/04/2023

Incorporating Data Dependencies and Properties in Difference Verification with Conditions (Technical Report)

Software changes frequently. To efficiently deal with such frequent chan...
research
07/21/2023

Augmented Symbolic Execution for Information Flow in Hardware Designs

We present SEIF, a methodology that combines static analysis with symbol...
research
09/14/2023

HIVE: Scalable Hardware-Firmware Co-Verification using Scenario-based Decomposition and Automated Hint Extraction

Hardware-firmware co-verification is critical to design trustworthy syst...
research
03/24/2023

Partial Quantifier Elimination And Property Generation

We study partial quantifier elimination (PQE) for propositional CNF form...

Please sign up or login with your details

Forgot password? Click here to reset