Semi-Formal Verification at IBM

Slides:



Advertisements
Similar presentations
Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Advertisements

April 30, A New Tool for Designer-Level Verification: From Concept to Reality April 30, 2014 Ziv Nevo IBM Haifa Research Lab.
Xiushan Feng* ASIC Verification Nvidia Corporation Assertion-Based Design Partition 1 TM Jayanta Bhadra, Ross Patterson.
BackSpace: Formal Analysis for Post-Silicon Debug Flavio M. de Paula * Marcel Gort *, Alan J. Hu *, Steve Wilton *, Jin Yang + * University of British.
How to Accelerate the Analog Design Verification Flow Itai Yarom Senior Verification Expert Synopsys.
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
Lecture 12 Reengineering Computer-aided Software Engineering Cleanroom Software Engineering.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Computing Over­Approximations with Bounded Model Checking Daniel Kroening ETH Zürich.
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Enterprise Architecture
Software Integration and Documenting
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Streamline Verification Process with Formal Property Verification to Meet Highly Compressed Design Cycle Prosenjit Chatterjee, nVIDIA Corporation.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
Presenter : Ching-Hua Huang 2013/7/15 A Unified Methodology for Pre-Silicon Verification and Post-Silicon Validation Citation : 15 Adir, A., Copty, S.
IBM Systems and Technology Group © 2006 IBM Corporation Formal Methods in Computer-Aided Design, /16/2006 Sequential Equivalence Checking Across.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
The Verification Gap Verification determines whether a design satisfies its requirements (a.k.a. its specification): Does it satisfy its functional requirements?
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
Formal Methods in Software Engineering
© Andrew IrelandDependable Systems Group Static Analysis and Program Proof Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt University.
Software Debugging, Testing, and Verification Presented by Chris Hundersmarck November 10, 2004 Dr. Bi’s SE516.
Cut-Based Inductive Invariant Computation Michael Case 1,2 Alan Mishchenko 1 Robert Brayton 1 Robert Brayton 1 1 UC Berkeley 2 IBM Systems and Technology.
February 22-25, 2010 Designers Work Less with Quality Formal Equivalence Checking by Orly Cohen, Moran Gordon, Michael Lifshits, Alexander Nadel, and Vadim.
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
Introduction to Hardware Verification ECE 598 SV Prof. Shobha Vasudevan.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Equivalence checking Prof Shobha Vasudevan ECE 598SV.
Enhancing Model Checking Engines for Multi-Output Problem Solving Alan Mishchenko Robert Brayton Berkeley Verification and Synthesis Research Center Department.
On the Relation Between Simulation-based and SAT-based Diagnosis CMPE 58Q Giray Kömürcü Boğaziçi University.
Variable-Time-Frame Gate-Level Abstraction Alan Mishchenko Niklas Een Robert Brayton Alan Mishchenko Niklas Een Robert Brayton UC Berkeley UC Berkeley.
42 nd DAC, June 16, 2005 Formal Verification – Is It Real Enough? Yaron Wolfsthal Haifa Research Lab Rebecca Gott Systems and Technology Group.
Linux Standard Base Основной современный стандарт Linux, стандарт ISO/IEC с 2005 года Определяет состав и поведение основных системных библиотек.
Introduction to Formal Verification
Group mambers: Maira Naseer (BCS ).
Software Prototyping.
Abstraction and Refinement for Large Scale Model Checking
Synthesis for Verification
Presented by Munezero Immaculee Joselyne PhD in Software Engineering
Software Processes (a)
Object oriented system development life cycle
Enhancing PDR/IC3 with Localization Abstraction
6 Recommendations for Driving Business Value from Test Automation.
Alon Flaisher Alon Gluska Eli Singerman Intel Corporation
Optimal Redundancy Removal without Fixedpoint Computation
Introduction to Software Testing
Sequential Equivalence Checking Across Arbitrary Design Transformation: Technologies and Applications Viresh Paruthi, IBM Corporation J. Baumgartner,
Approximate Reachability With Combined Symbolic And Ternary Simulation
Introduction to Formal Verification
Testing and Test-Driven Development CSC 4700 Software Engineering
Enabling Large-Scale Pervasive Logic Verification through Multi-Algorithmic Formal Reasoning Tilman Gloekler, Jason Baumgartner, Devi Shanmugam, Rick Seigler,
Formal Verification of Partial Good Self-Test Fencing Structures
Scalable and Scalably-Verifiable Sequential Synthesis
Software testing.
Automated Extraction of Inductive Invariants to Aid Model Checking
CS240: Advanced Programming Concepts
GLA: Gate-Level Abstraction Revisited
Resolution Proofs for Combinational Equivalence
JOINED AT THE HIP: DEVSECOPS AND CLOUD-BASED ASSETS
Cool FPV Tricks: Reaching Deep Bounds With Not-Quite-Formal Methods
Industrializing AI.
Alan Mishchenko UC Berkeley
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Alan Mishchenko UC Berkeley
Improved Design Debugging using Maximum Satisfiability
Innovative Sequential Synthesis and Verification
Enabling Prediction of Performance
Presentation transcript:

Semi-Formal Verification at IBM Jason Baumgartner, Viresh Paruthi, Robert Kanzelman, Hari Mony IBM Corporation

Outline What is semi-formal verification (SFV)? Challenges in industrial-strength SFV SixthSense: IBM’s SFV Toolset SFV Applications at IBM Conclusion

What is Semi-Formal Verification (SFV)? A method to leverage formal algos in resource-bounded way Used to find bugs too complex / deep for pure formal search Often iterates between random simulation, formal algos

Challenges of Effective SFV SFV is only effective if a formal search is triggered near a fail Otherwise, does not improve falsification capability of formal search Approaches: State prioritization: try to trigger iterations from new / interesting states Light-houses / stepping-stones: use formal analysis to identify states leading towards fail Can use formal algos to try to tunnel between these Clever input generation: make simulation itself “smarter” Or weaken formal algos through lossiness

Industrial SFV Experience SFV is a very useful technology Critical for deep bugs Key to scaling formal algos to large, complex designs However, advances in SFV technologies tend to have marginal benefit for many industrial designs Increasing exhaustive search depth capability by 1 will likely expose more bugs than incremental SFV advances E.g., improvements to SAT technology

Abstraction-Guided Search Abstraction-guided stepping stones: promising technology But for many complex designs it does not work very well Abstraction is obviously prone to dead-ends Abstract depth may not match concrete depth May memout if abstraction becomes too large Management of large preimages may also slow SFV May yield too shallow of preimages, saturating in a few iterations Abstract preimages do not adequately simplify (shorten) search Less effective than target enlargement, since approximate

Advancing SFV Technologies We feel that SFV is still a relatively immature technology Numerous directions for improvement, such as: Abstraction-guided search Difficult to obtain a small enough abstraction which captures the deep behavior of design Need a customized abstraction-refinement scheme? State prioritization and clever input stimuli generation: Borrow from and improve upon testcase generation technologies Improved methods to leverage formal analysis to define and reach prioritized states Please continue research in this area!!

SixthSense: IBM’s SFV Toolset SixthSense is a system of cooperating algorithms Semi-Formal engines Formal engines Transformation engines: simplification / abstraction algorithms Transformation-Based Verification (TBV) framework Exploits maximal synergy between various algorithms Redundancy removal, retiming, induction, localization, ... Incrementally chop problem into simpler sub-problems until solvable Used for functional verification + sequential equiv checking

Transformation-Based Verification Framework Counterexample Trace consistent with Original Design All transformations are transparent to the user All results are in terms of original design Design + Properties SixthSense 140000 registers Min-Area Retiming Engine 75000 registers Localization Engine 150 registers Problem decomposition via synergistic transforms retimed trace retimed, localized trace Reachability Engine

SixthSense: IBM’s SFV Toolset Transforms yield exponential speedups to semi-formal applications, as well as to formal applications Very useful to enable deeper exhaustive search Simplify the sequential design once, unfold many times Unfolding amplifies the benefit of the simplification Transforms can even be integrated within SAT Applied directly to unfolded instance Unfolding opens up more reduction potential TBV impact is particularly profound on high-performance designs Though useful on all types of logic we have encountered

Example SixthSense Engines Combinational rewriting Sequential redundancy removal Min-area retiming Sequential rewriting Input reparameterization Localization Target enlargement State-transition folding Isomorphic property decomposition Unfolding Semi-formal search Symbolic sim: SAT+BDDs Symbolic reachability Induction Interpolation …  Expert System Engine automates optimal engine sequence experimentation

Applications Wide-spread adoption of FV requires scalability to sim-sized testbenches Easier to specify larger functional units vs. components thereof E.g: specify IEEE-compliant FPU check, vs. criteria for correctness of each FPU pipeline-stage controller Scalability implies the need for SFV SFV can wring through bugs even if size too big for proofs Nonetheless, strong motivation to tune tool for large-scale proofs! A robust toolset needs to integrate falsification + proof threads In many cases, large-scale proof is possible without a need for manual decompositions

Virtually all SixthSense applications benefit from semi-formal search Assertion-based verification Typically done by designers Lesser experience level with FV and toolset Testbenches developed with little thought about “proof strategy” SFV very useful to wring out bugs Reference-model based verification Comprehensive checks, usually implemented as an abstract reference model For larger units, often benefits from SFV to wring out early bugs

Applications Silicon-failure recreation efforts: When a chip misbehaves… On-chip debug facilities offer partial insight into cause Usually have a good idea of property to check, “buggy region” SFV very useful since often requires a fairly large design slice And bug-hunting vs. proving is “the mission” Coverage analysis Leverage formal algos to help simulation reach hard-to-hit scenarios Sequential equiv checking: semi-formal search useful to find mismatches, assist in guessing equivalent gates

Conclusion SFV is an enabling technology for wide-spread FV usage Eliminates “risk” associated with developing a complex formal spec, only to choke FV tool Enables greater return on spec investment at higher, more encompassing interfaces SFV will wring out bugs early – even if expert manual decomposition performed later to yield proofs Encourages development of meaningful specs, reusable in sim + emulation Minimizes learning curve: corner-case bugs found by casual users No need for a team of PhDs to use the formal tool!

Conclusion SFV advances useful for certain classes of designs However, they can easily get lost on many designs More research is needed! SixthSense approach: increase formal BMC depth by synergistic transformations Simplify the sequential design once, unfold many times Also simplify the unfolded instance within the SAT engine, within the SFV engine Powerful SFV engine will benefit a variety of tasks: functional verification + sequential equiv checking