Boosting the Bounds of Symbolic QED for Effective Pre-Silicon Verification of Processor Cores

by   Karthik Ganesan, et al.

Existing techniques to ensure functional correctness and hardware trust during pre-silicon verification face severe limitations. In this work, we systematically leverage two key ideas: 1) Symbolic QED, a recent bug detection and localization technique using Bounded Model Checking (BMC); and 2) Symbolic starting states, to present a method that: i) Effectively detects both "difficult" logic bugs and Hardware Trojans, even with long activation sequences where traditional BMC techniques fail; and ii) Does not need skilled manual guidance for writing testbenches, writing design-specific assertions, or debugging spurious counter-examples. Using open-source RISC-V cores, we demonstrate the following: 1. Quick (<5 minutes for an in-order scalar core and <2.5 hours for an out-of-order superscalar core) detection of 100 of logic bug and hardware Trojan scenarios from commercial chips and research literature, and 97.9  100,000 activation instructions taken from random test programs). 2. Quick ( 1 minute) detection of several previously unknown bugs in open-source RISC-V designs.


page 1

page 2

page 3

page 4


Logic Bug Detection and Localization Using Symbolic Quick Error Detection

We present Symbolic Quick Error Detection (Symbolic QED), a structured a...

Effective Pre-Silicon Verification of Processor Cores by Breaking the Bounds of Symbolic Quick Error Detection

We present a novel approach to pre-silicon verification of processor des...

Symbolic QED Pre-silicon Verification for Automotive Microcontroller Cores: Industrial Case Study

We present an industrial case study that demonstrates the practicality a...

A Theoretical Framework for Symbolic Quick Error Detection

Symbolic quick error detection (SQED) is a formal pre-silicon verificati...

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

Conventional tools for formal hardware/software co-verification use boun...

Formal Verification for Node-Based Visual Scripts Using Symbolic Model Checking

Visual script languages with a node-based interface have commonly been u...

Counterexample-Guided k-Induction Verification for Fast Bug Detection

Recently, the k-induction algorithm has proven to be a successful approa...