Open-source model checkers to provide an alternative to commercial tools for performing formal verification queries.
Provide a layer of abstraction similar to that provided by instruction set architectures, but for arbitrary hardware modules.
Mixed-signal models needed to allow formal techniques to be applied to designs with analog components.
Fully automatic methodology for verifying processor cores or SoC’s that does not require property specification
PH.D. Candidate, Stanford University
Analog functional modeling and open-source high-speed phy
Cooperating Validity Checker
CVC4 is an award-winning automatic theorem prover for satisfiability modulo theories (SMT) problems
Boolector is an award-winning SMT solver for the theories of fixed-size bit-vectors, arrays and uninterpreted functions
CoreIR Symbolic Analyzer
CoSA is an SMT-based symbolic model checker for hardware designs
Instruction Level Abstraction
ILAng is a modeling and verification platform for system-on-chips (SoCs) using instruction level abstractions (ILAs)
Methodologies and tools for analog function modeling
Today it is difficult to validate a System-on-Chip which contains analog components (is mixed signal). The problem is that the analog and digital subsystems are usually strongly intertwined so they must be validated as a system, but the validation approaches for analog and digital blocks are completely different. We address this problem by creating high-level functional models of analog components, which is compatible with top-level digital system validation, and then provide a method of formal checking to ensure that these functional models match the operation of the transistor level implementations of these blocks. We provide a set of methodologies and tools for this analog functional modeling, the core part for enabling our Digital Analog Design. Our modeling methodology consists of three core technologies: mLingua, a modeling language in SystemVerilog, mProbo, a model checker, and mGenero, a model generator.
A repository containing case studies using our tools. The case studies are presented in the following.
AXI Protocol Checker
An easy-to-use AXI protocol checker using CoSA for model checking. This case study uses the OH! implementation of the AXI protocol.
SQED Demo using RIDECORE
A tutorial for setting up Symbolic Quick Error Detection (SQED) using the open-source, SMT-based model checker CoSA. This tutorial shows how a bug was discovered in the multiply decoder of the RIDECORE Out of Order RISC-V Processor using SQED.
Single instruction checking for RIDECORE
An implementation of single instruction checking for the RIDECORE Out of Order RISC-V Processor. Single instruction checking is complementary to SQED.
Applying SQED to BlackParrot
In this case study SQED is applied to check correctness properties of the BlackParrot RISC-V core processor. The study demonstrates the applicability of SQED to different processor designs.
This example demonstrates the use of Instruction-level Abstraction (ILA) for formally specifying hardware designs and checking the equivalence between implementation and specification. The demo artifact contains (i) the ILA model of an AES accelerator, (ii) the RTL implementation, and (iii) the refinement relation. From the above inputs, ILAng generates the verification targets and properties, which are then checked by CoSA.
This case study is based on a generic asynchronous FIFO developed by Andreas Olofsson. The FIFO has parameterized length and width of the data. It is asynchronous since it has two separate clocks for pushing (write) and popping (read) data. This case study is representative for the verification of safety properties using CoSA and SQED.
Associate Professor (Research) of Computer Science