Improved Design Debugging using Maximum Satisfiability

Slides:



Advertisements
Similar presentations
+ Post-Silicon Fault Localisation using MAX-SAT & Backbones Georg Weissenbacher Charlie Shucheng Zhu, Sharad Malik Princeton University (Photo: Intel Press.
Advertisements

ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
ECE 667 Synthesis & Verification - SAT 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Boolean SAT CNF Representation Slides adopted (with.
Searching for Autarkies to Trim Unsatisfiable Clause Sets Mark H. Liffiton and Karem A. Sakallah University of Michigan {liffiton,
4/20/2006ELEC7250: Alexander 1 LOGIC SIMULATION AND FAULT DIAGNOSIS BY JINS DAVIS ALEXANDER ELEC 7250 PRESENTATION.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
1 ITC-07 Paper /25/2007 Estimating Stuck Fault Coverage in Sequential Logic Using State Traversal and Entropy Analysis Soumitra Bose Design Technology,
Efficient Reachability Checking using Sequential SAT G. Parthasarathy, M. K. Iyer, K.-T.Cheng, Li. C. Wang Department of ECE University of California –
Logic Design Outline –Logic Design –Schematic Capture –Logic Simulation –Logic Synthesis –Technology Mapping –Logic Verification Goal –Understand logic.
Identifying Conflicts in Overconstrained Temporal Problems Mark H. Liffiton, Michael D. Moffitt, Martha E. Pollack, and Karem A. Sakallah University of.
Computing Over­Approximations with Bounded Model Checking Daniel Kroening ETH Zürich.
Chris Wilson and David L. Dill Computer Systems Laboratory Stanford University June, 2000 Reliable Verification Using Symbolic Simulation with Scalar Values.
1 Abstraction Refinement for Bounded Model Checking Anubhav Gupta, CMU Ofer Strichman, Technion Highly Jet Lagged.
Logic Verification 1 Outline –Logic Verification Problem –Verification Approaches –Recursive Learning Approach Goal –Understand verification problem –Understand.
USING SAT-BASED CRAIG INTERPOLATION TO ENLARGE CLOCK GATING FUNCTIONS Ting-Hao Lin, Chung-Yang (Ric) Huang Graduate Institute of Electrical Engineering,
1 Automatic Refinement and Vacuity Detection for Symbolic Trajectory Evaluation Orna Grumberg Technion Haifa, Israel Joint work with Rachel Tzoref.
Robust Low Power VLSI ECE 7502 S2015 Fault Diagnosis and Logic Debugging Using Boolean Satisfiability ECE 7502 Class Discussion Benjamin Melton Thursday.
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
European Test Symposium, May 28, 2008 Nuno Alves, Jennifer Dworak, and R. Iris Bahar Division of Engineering Brown University Providence, RI Kundan.
On Finding All Minimally Unsatisfiable Subformulas Mark Liffiton and Karem Sakallah University of Michigan {liffiton, June 21, 2005.
Boolean Satisfiability Present and Future
Detecting Errors Using Multi-Cycle Invariance Information Nuno Alves, Jennifer Dworak, and R. Iris Bahar Division of Engineering Brown University Providence,
Copyright 2001, Agrawal & BushnellLecture 6: Sequential ATPG1 VLSI Testing Lecture 6: Sequential ATPG n Problem of sequential circuit ATPG n Time-frame.
SAT Sweeping with Local Observability Don’t-Cares Qi Zhu 1 Nathan Kitchen 1 Andreas Kuehlmann 1,2 Alberto Sangiovanni-Vincentelli 1 1 University of California.
Generating High-Quality Tests for Boolean Circuits by Treating Tests as Proof Encoding Eugene Goldberg, Pete Manolios Northeastern University, USA TAP-2010,
Custom Computing Machines for the Set Covering Problem Paper Written By: Christian Plessl and Marco Platzner Swiss Federal Institute of Technology, 2002.
Equivalence checking Prof Shobha Vasudevan ECE 598SV.
On the Relation Between Simulation-based and SAT-based Diagnosis CMPE 58Q Giray Kömürcü Boğaziçi University.
Introduction to Formal Verification
Abstraction and Refinement for Large Scale Model Checking
Chih-Fan Lai1, J.-H. Roland Jiang1, and Kuo-Hua Wang2
Supervised Learning Based Model for Predicting Variability-Induced Timing Errors Xun Jiao, Abbas Rahimi, Balakrishnan Narayanaswamy, Hamed Fatemi, Jose.
Parallel and Distributed Simulation Techniques
Alan Mishchenko UC Berkeley
Solving Linear Arithmetic with SAT-based MC
Cache Memory Presentation I
Andrew B. Kahng and Xu Xu UCSD CSE and ECE Depts.
Enhancing PDR/IC3 with Localization Abstraction
Lecture 13 Sequential Circuit ATPG Time-Frame Expansion
New Directions in the Development of ABC
Logic Synthesis CNF Satisfiability.
Lecture 10 Sequential Circuit ATPG Time-Frame Expansion
Basics Combinational Circuits Sequential Circuits
Basics Combinational Circuits Sequential Circuits Ahmad Jawdat
Simple Circuit-Based SAT Solver
LPSAT: A Unified Approach to RTL Satisfiability
Property Directed Reachability with Word-Level Abstraction
Introduction to Formal Verification
Objective of This Course
SAT-Based Area Recovery in Technology Mapping
SAT-Based Optimization with Don’t-Cares Revisited
VLSI Testing Lecture 8: Sequential ATPG
Automated Extraction of Inductive Invariants to Aid Model Checking
Improvements to Combinational Equivalence Checking
Research Status of Equivalence Checking at Zhejiang University
Resolution Proofs for Combinational Equivalence
EECS150 Fall 2007 – Lab Lecture #4 Shah Bawany
On the Improvement of Statistical Timing Analysis
Integrating an AIG Package, Simulator, and SAT Solver
VLSI CAD Flow: Logic Synthesis, Placement and Routing Lecture 5
Alan Mishchenko UC Berkeley
Recording Synthesis History for Sequential Verification
Alan Mishchenko UC Berkeley
Canonical Computation without Canonical Data Structure
SAT-based Methods: Logic Synthesis and Technology Mapping
Fast Min-Register Retiming Through Binary Max-Flow
Lecture 13 Sequential Circuit ATPG Time-Frame Expansion
Faster Extraction of High-Level Minimal Unsatisfiable Cores
A Random Access Scan Architecture to Reduce Hardware Overhead
Multidisciplinary Optimization
Presentation transcript:

Improved Design Debugging using Maximum Satisfiability Sean Safarpour, Hratch Mangassarian, Andreas Veneris Mark H. Liffiton, Karem A. Sakallah University of Toronto University of Michigan

Outline Introduction & Motivation Debugging with max-sat Debugging with approximate max-sat Experiments Conclusion

Introduction & Motivation Verification is a major pain in VLSI design cycle check correctness against specs identify corner cases evaluate test coverage Automated solutions exist When design fails, find error source manual debugging process time consuming specification specification design specification verification specification pass? yes pass? no debug debug

Introduction & Motivation What is “debugging” identifying error source/locations in design i.e. lines of code in the RTL (Verilog/VHDL) Debugging is a verification bottleneck manual task consumes up to 50% of verification effort Automated debugging or error localization finds source of error in circuit automatically use information from verification (testbench, traces, etc.) current techniques not practical in industry

Introduction & Motivation Why is debugging hard to automate? Problem Complexity grows O(n# errors) many gate-level errors in high-level designs Algorithms work on gate/Boolean models circuits are big: > 100,000 gates Algorithms must model sequential behavior traces are long: > 1000s of clock cycles expensive using time frame expansion Debugging techniques over past decades Simulation, path tracing, BDDs SAT & QBF techniques: last 5 years promising results

Introduction & Motivation What are the inputs to automated debuggers? Erroneous design (one or multiple gate/high-level bugs) Simulation Trace: stimulus to observe erroneous behavior Correct/Expected Response: trace provided from specs Erroneous design Automated Debugger potential error locations Simulation & Expected traces

Introduction & Motivation Previous SAT & QBF techniques How can erroneous circuit be modified to satisfy the expected response under the given stimulus? Insert instruments in circuit/CNF such that satisifying assignment => error locations Find all error location tuples up to N Observation The union of the constraints is UNSAT removing clauses corresponding error locations makes the problem SAT Maximum Satisfiability problem

Debugging example a a c c 1 1 b b e e 1 d d (!a+c) (!b+c) (a+b+!c) Simulation trace a b c d e a b c d e Correct circuit Correct response 1 1 1 Erroneous circuit (!a+c) (!b+c) (a+b+!c) (c+!e) (d+!e) (!c+!d+e) (!a+c) (!b+c) (a+b+!c) (c+!e) (d+!e) (!c+!d+e) (!a) (b) (d) (!e) = SAT (!a) (b) (d) (!e) = UNSAT

Debugging with max-sat Removing clauses satisfies the formula can only “remove” clauses corresponding to circuit constraints identify bugs in gates (not stimulus/response) max-sat algorithms do exactly that Requirements find all gate-level errors up to cardinality N must map clauses to gates develop concept of error cardinality

Debugging with max-sat Maximal Satisfiable Subset (MSS) generalization of max-sat (maximum cardinality) adding any extra clause makes formula UNSAT Minimal Correction Set (MCS) complement of MSS Can find all MCS of up to size k Can group clauses to approximate MCSes groups y1, y2,..., yn every clause C becomes C’= (y1 -> C)

Debugging with max-sat How to debug gates instead of clauses? define a group for each gate in circuit can only reason about satisfiablity at gate granularity How to get all solutions? block previous solutions and solve again cannot remove blocking clauses a b c d e 1 1 (!a+c+!yA) (!b+c+!yA) (a+b+!c+!yA) (c+!e+!yB) (d+!e+!yB) (!c+!d+e+!yB) (!a) (b) (d) (!e)

Debugging with max-sat What about sequential designs and multiple vectors? Time-frame expansion or Iterative Logic Array unfold/replicate combinational circuit in time Multiple stimulus/response are used to increase debugging resolution All clauses derived from same combinational gate are in same group

Replication Example a a a a 1 c c c c b e b b b e e e d 1 1 1 d d 1 d 2 a 3 1 c 1 c 2 c 3 c b e 1 2 b b b 3 e 1 e 2 e 3 d 1 1 1 d 1 d 1 2 d 1 3 1 (a+!c+!yA) (b+!c+!yA) (!a+!b+c+!yA) (c+!e+!yB) (d+!e+!yB) (!c+!d+e+!yB) (a1+!c1+!yA1) (b1+!c1+!yA1) (!a1+!b1+c1+!yA1) (c1+!e1+!yB1) (d1+!e1+!yB1) (!c1+!d1+e1+!yB1) (a2+!c2+!yA2) (b2+!c2+!yA2) (!a2+!b2+c2+!yA2) (c2+!e2+!yB2) (d2+!e2+!yB2) (!c2+!d2+e2+!yB2) (a3+!c3+!yA3) (b3+!c3+!yA3) (!a3+!b3+c3+!yA3) (c3+!e3+!yB3) (d3+!e3+!yB3) (!c3+!d3+e3+!yB3)

Replication Example a a a a 1 c c c c b e b b b e e e d 1 1 1 d d 1 d 2 a 3 1 c 1 c 2 c 3 c b e 1 2 b b b 3 e 1 e 2 e 3 d 1 1 1 d 1 d 1 2 d 1 3 1 (a+!c+!yA) (b+!c+!yA) (!a+!b+c+!yA) (c+!e+!yB) (d+!e+!yB) (!c+!d+e+!yB) (a1+!c1+!yA) (b1+!c1+!yA) (!a1+!b1+c1+!yA) (c1+!e1+!yB) (d1+!e1+!yB) (!c1+!d1+e1+!yB) (a2+!c2+!yA) (b2+!c2+!yA) (!a2+!b2+c2+!yA) (c2+!e2+!yB) (d2+!e2+!yB) (!c2+!d2+e2+!yB) (a3+!c3+!yA) (b3+!c3+!yA) (!a3+!b3+c3+!yA) (c3+!e3+!yB) (d3+!e3+!yB) (!c3+!d3+e3+!yB)

Debugging with approximate max-sat Can group clauses from single gate together single group represents a gate-based error Can group “same” gates from different vectors and different time frames together single group represents a gate-based error anywhere What about other types of groupings? based on modules/functions (higher level) based on topology arbitrarily

Debugging with approximate max-sat Example based on topology group 2 group 1 group 3 group 4

Debugging with approximate max-sat Empirical results show: max-sat is very efficient at finding approximate solutions the larger the groups the faster resolution vs. performance trade-off SAT-based debugger is good for exact solutions, not for approximate faster than max-sat for exact solutions Exploit the strengths of both approaches use approximate max-sat as preprocess/filter use SAT-based debugging on filtered problem

Debugging with approximate max-sat Two step debugging framework with max-sat divide and conquer approach approximate max-sat finds coarse solutions exact debugger refines solutions erroneous design exact error locations over-approximation of suspects approximate max-sat debugger exact debugger vectors/traces grouping

Experiments Circuits from ISCAS’85/89, ITC’99, opencores.org error inserted: random function change AND, OR, NAND, NOR, XOR swamped simulation to find error captured stimulus and correct trace 1GB memory limit, 1 hour timeout Clauses group by gate replication circuit topology max-sat solver from U of Michigan SAT-based debugger from U of Toronto

Experiments How many clauses or gates to group together bigger/fewer groups -> faster the max-sat portion, more suspects smaller/more groups -> few suspects, faster exact debugger Empirical results show groups of 20 gates are effective

Experiments sample experiments max-sat very fast on grouped problem exact debugger very fast on problem with eliminated suspects result: orders of magnitude faster circuit # error location debug only (s) max-sat (s) suspects eliminated exact debug(s) speed-up mot-comb3 16 357.67 0.27 98.32 % 0.47 483.34 ac97 4 [TO] 2.22 99.63 % 3.67 > 980 divider 1160.39 14.58 99.01 % 1.32 72.98 b14 45 1377.86 11.17 88.99 % 50.75 22.25 rsdecoder 11 572.68 0.67 98.95 % 0.65 433.85 s38584 35 [MO] 636.45 98.26% 376.62 > 3.59

Experiments Number of solved instances and runtime proposed framework against SAT-based debug only

Experiments Runtime comparison: proposed framework against SAT-based debug only

Conclusion SAT-based debugging is a natural max-sat problem formulate max-sat problem for circuits gate grouping replication grouping find all error suspects proposed framework combining strengths of max-sat and SAT-based debugging order of magnitude improvements achieved