Formal Methods in Computer Aided Design

Formal Methods in Computer-Aided Design Hratch Mangassarian Doctor of Philosophy Graduate Department of Electrical and Computer Engineering University of Toronto 2012 The VLSI CAD flow encompasses an abundance of critical NP-complete and PSPACE-complete problems. Instead of developing a dedicated algorithm for each, the trend during the last decade has been to encode them in formal languages, such as Boolean satisfiability (SAT) and quantified Boolean formulas (QBFs), and focus academic resources on improving SAT and QBF solvers. The significant progress of these solvers has validated this strategy. This dissertation contributes to the further advancement of formal techniques in CAD. Today, the verification and debugging of increasingly complex RTL designs can consume up to 70% of the VLSI design cycle. In particular, RTL debug is a manual, resource-intensive task in the industry. The first contribution of this thesis is an in-depth examination of the factors affecting the theoretical computational complexity of debugging. It is established that most variations of the debugging problem are NP-complete. Automated debugging tools return all potential error sources in the RTL, called solutions, that can explain a given failing error trace. Finding each solution requires a separate call to a formal engine, which is computationally expensive. The second contribution of this dissertation comprises techniques for reducing the number of such iterations, by leveraging dominance relationships between RTL blocks to imply solutions. Extensive experiments on industrial designs show a three-fold reduction in the number of formal engine calls due to solution implications, resulting in a 1.64x overall speed-up. The third contribution aims to advance the state-of-the-art of QBF solvers, whose progress has not been as impressive as that of SAT solvers. We present a framework for using complete dominators to preprocess and reduce QBFs with an inherent circuit structure, which is com-

[1]  Jason Cong,et al.  An optimal technology mapping algorithm for delay optimization in lookup-table based FPGA designs , 1992, ICCAD.

[2]  Hans Kleine Büning,et al.  Resolution for Quantified Boolean Formulas , 1995, Inf. Comput..

[3]  M. Ray Mercer,et al.  A Topological Search Algorithm for ATPG , 1987, 24th ACM/IEEE Design Automation Conference.

[4]  Marco Schaerf,et al.  An Algorithm to Evaluate Quantified Boolean Formulae and Its Experimental Evaluation , 2002, Journal of Automated Reasoning.

[5]  Armin Biere,et al.  Compressing BMC Encodings with QBF , 2007, BMC@FLoC.

[6]  Fahiem Bacchus,et al.  Dynamically Partitioning for Solving QBF , 2007, SAT.

[7]  Janak H. Patel,et al.  HITEC: a test generation package for sequential circuits , 1991, Proceedings of the European Conference on Design Automation..

[8]  Marco Benedetti,et al.  sKizzo: A Suite to Evaluate and Certify QBFs , 2005, CADE.

[9]  Stephen Dean Brown,et al.  FPGA PLB Architecture Evaluation and Area Optimization Techniques Using Boolean Satisfiability , 2007, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[10]  Lintao Zhang,et al.  Solving QBF with combined conjunctive and disjunctive normal form , 2006, AAAI 2006.

[11]  Andreas G. Veneris,et al.  Design diagnosis using Boolean satisfiability , 2004, ASP-DAC 2004: Asia and South Pacific Design Automation Conference 2004 (IEEE Cat. No.04EX753).

[12]  Niraj K. Jha,et al.  Testing and Reliable Design of CMOS Circuits , 1989 .

[13]  Fahiem Bacchus,et al.  Beyond CNF: A Circuit-Based QBF Solver , 2009, SAT.

[14]  Robert E. Tarjan,et al.  A fast algorithm for finding dominators in a flowgraph , 1979, TOPL.

[15]  S. Yang,et al.  Logic Synthesis and Optimization Benchmarks User Guide Version 3.0 , 1991 .

[16]  Rolf Drechsler,et al.  Debugging sequential circuits using Boolean satisfiability , 2004, IEEE/ACM International Conference on Computer Aided Design, 2004. ICCAD-2004..

[17]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[18]  Hans Kleine Büning,et al.  Theory of Quantified Boolean Formulas , 2021, Handbook of Satisfiability.

[19]  Niklas Sörensson,et al.  Translating Pseudo-Boolean Constraints into SAT , 2006, J. Satisf. Boolean Model. Comput..

[20]  Nachum Dershowitz,et al.  Bounded Model Checking with QBF , 2005, SAT.

[21]  Armin Biere,et al.  Effective Preprocessing in SAT Through Variable and Clause Elimination , 2005, SAT.

[22]  Walter J. Savitch,et al.  Relationships Between Nondeterministic and Deterministic Tape Complexities , 1970, J. Comput. Syst. Sci..

[23]  Shi-Yu Huang,et al.  ErrorTracer: design error diagnosis based on fault simulation techniques , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[24]  Marco Benedetti,et al.  QBF-Based Formal Verification: Experience and Perspectives , 2008, J. Satisf. Boolean Model. Comput..

[25]  Armin Biere,et al.  Resolve and Expand , 2004, SAT.

[26]  Wing Ning Li,et al.  Strongly NP-hard discrete gate sizing problems , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[27]  Luis Miguel Silveira,et al.  Timing analysis using propositional satisfiability , 1998, 1998 IEEE International Conference on Electronics, Circuits and Systems. Surfing the Waves of Science and Technology (Cat. No.98EX196).

[28]  Luca Pulina,et al.  A self-adaptive multi-engine solver for quantified Boolean formulas , 2009, Constraints.

[29]  Marco Benedetti,et al.  QCSP Made Practical by Virtue of Restricted Quantification , 2007, IJCAI.

[30]  Bart Selman,et al.  Boosting Combinatorial Search Through Randomization , 1998, AAAI/IAAI.

[31]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[32]  Armando Tacchella,et al.  QUBE: A System for Deciding Quantified Boolean Formulas Satisfiability , 2001, IJCAR.

[33]  Robert E. Lyons,et al.  The Use of Triple-Modular Redundancy to Improve Computer Reliability , 1962, IBM J. Res. Dev..

[34]  Bart Selman,et al.  QBF Modeling: Exploiting Player Symmetry for Simplicity and Efficiency , 2006, SAT.

[35]  Gilles Audemard,et al.  Predicting Learnt Clauses Quality in Modern SAT Solvers , 2009, IJCAI.

[36]  Moayad Fahim Ali,et al.  Fault diagnosis and logic debugging using Boolean satisfiability , 2005, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[37]  Arlindo L. Oliveira,et al.  On The Complexity Of Power Estimation Problems , 2007 .

[38]  Armin Biere,et al.  Nenofex: Expanding NNF for QBF Solving , 2008, SAT.

[39]  F. Ferrari,et al.  System-on-a-chip verification~methodology and techniques , 2002, IEEE Circuits and Devices Magazine.

[40]  Satish Narayanasamy,et al.  Patching Processor Design Errors with Programmable Hardware , 2007, IEEE Micro.

[41]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.

[42]  Alexander Smith,et al.  Diagnosis of Combinational Logic Circuits Using Boolean Satisfiability , 2004 .

[43]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[44]  Stephen Alstrup,et al.  An O(|V|*|E|) Algorithm for Finding Immediate Multiple-Vertex Dominators , 1996, Inf. Process. Lett..

[45]  Robert K. Brayton,et al.  Using SAT for combinational equivalence checking , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[46]  Jason Baumgartner,et al.  Scalable Sequential Equivalence Checking across Arbitrary Design Transformations , 2006, 2006 International Conference on Computer Design.

[47]  Armin Biere,et al.  Bounded model checking , 2003, Adv. Comput..

[48]  Mikkel Thorup,et al.  Dominators in Linear Time , 1999, SIAM J. Comput..

[49]  Weitong Chuang,et al.  Circuit-level dictionaries of CMOS bridging faults , 1995, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[50]  A. Prasad Sistla,et al.  The complexity of propositional linear temporal logics , 1982, STOC '82.

[51]  Stefan Woltran,et al.  A solver for QBFs in negation normal form , 2009, Constraints.

[52]  Sean Safarpour,et al.  The day Sherlock Holmes decided to do EDA , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[53]  Stephen A. Cook,et al.  The complexity of theorem-proving procedures , 1971, STOC.

[54]  Marco Benedetti,et al.  Evaluating QBFs via Symbolic Skolemization , 2005, LPAR.

[55]  Daniel Brand,et al.  Incremental synthesis , 1994, ICCAD '94.

[56]  Melvin A. Breuer,et al.  Digital systems testing and testable design , 1990 .

[57]  Douglas Chang,et al.  On the NP-completeness of regular 2-D FPGA routing architectures and a novel solution , 1994, ICCAD.

[58]  Jeffrey D. Ullman,et al.  Global Data Flow Analysis and Iterative Algorithms , 1976, J. ACM.

[59]  Sharad Malik,et al.  Conflict driven learning in a quantified Boolean Satisfiability solver , 2002, ICCAD 2002.

[60]  Inês Lynce,et al.  Conflict-Driven Clause Learning SAT Solvers , 2009, Handbook of Satisfiability.

[61]  Andreas G. Veneris,et al.  Incremental fault diagnosis , 2005, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[62]  Armando Tacchella,et al.  Quantifier Structure in Search-Based Procedures for QBFs , 2006, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[63]  Roderick Bloem,et al.  Fault Localization and Correction with QBF , 2007, SAT.

[64]  Yoshida Hiroaki,et al.  Increasing Yield Using Partially-Programmable Circuits , 2009 .

[65]  Hideo Ito,et al.  Detecting, diagnosing, and tolerating faults in SRAM-based field programmable gate arrays: a survey , 2003, IEEE Trans. Very Large Scale Integr. Syst..

[66]  Rolf Drechsler,et al.  Managing don't cares in Boolean satisfiability , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[67]  Qi Zhu,et al.  SAT sweeping with local observability don't-cares , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[68]  Aarti Gupta,et al.  Efficient BMC for Multi-Clock Systems with Clocked Specifications , 2007, 2007 Asia and South Pacific Design Automation Conference.

[69]  Rob A. Rutenbar,et al.  A new FPGA detailed routing approach via search-based Booleansatisfiability , 2002, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[70]  E. Dubrova,et al.  A fast algorithm for finding common multiple-vertex dominators in circuit graphs , 2005, Proceedings of the ASP-DAC 2005. Asia and South Pacific Design Automation Conference, 2005..

[71]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[72]  Timothy J. Harvey,et al.  AS imple, Fast Dominance Algorithm , 1999 .

[73]  Armin Biere,et al.  PicoSAT Essentials , 2008, J. Satisf. Boolean Model. Comput..

[74]  Sean Safarpour,et al.  Automated Design Debugging With Abstraction and Refinement , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[75]  Malgorzata Marek-Sadowska,et al.  Engineering change using spare cells with constant insertion , 2007, ICCAD.

[76]  Fahiem Bacchus,et al.  Preprocessing QBF , 2006, CP.

[77]  Sartaj Sahni,et al.  The Complexity of Design Automation Problems , 1980, 17th Design Automation Conference.

[78]  Sharad Malik,et al.  Solving Quantified Boolean Formulas with Circuit Observability Don't Cares , 2006, SAT.

[79]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[80]  Rolf Drechsler,et al.  Post-verification debugging of hierarchical designs , 2005, ICCAD-2005. IEEE/ACM International Conference on Computer-Aided Design, 2005..

[81]  Oscar H. Ibarra,et al.  Polynomially Complete Fault Detection Problems , 1975, IEEE Transactions on Computers.

[82]  Jussi Rintanen Planning and SAT , 2009, Handbook of Satisfiability.

[83]  Robert E. Tarjan,et al.  Finding dominators revisited: extended abstract , 2004, SODA '04.

[84]  Charles E. Stroud,et al.  Using embedded FPGAs for SoC yield improvement , 2002, DAC '02.

[85]  Rajiv Gupta Generalized dominators and post-dominators , 1992, POPL '92.

[86]  Robert K. Brayton,et al.  Minimal logic re-synthesis for engineering change , 1997, Proceedings of 1997 IEEE International Symposium on Circuits and Systems. Circuits and Systems in the Information Age ISCAS '97.

[87]  Robert K. Brayton,et al.  Scalable and scalably-verifiable sequential synthesis , 2008, 2008 IEEE/ACM International Conference on Computer-Aided Design.

[88]  Joao Marques-Silva,et al.  GRASP: A Search Algorithm for Propositional Satisfiability , 1999, IEEE Trans. Computers.

[89]  Sean Safarpour,et al.  Maximum Circuit Activity Estimation Using Pseudo-Boolean Satisfiability , 2007, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[90]  Andreas G. Veneris,et al.  Scaling VLSI design debugging with interpolation , 2009, 2009 Formal Methods in Computer-Aided Design.

[91]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[92]  Shi-Yu Huang,et al.  Formal Equivalence Checking and Design Debugging , 1998 .

[93]  Tracy Larrabee,et al.  Test pattern generation using Boolean satisfiability , 1992, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[94]  Cadence Berkeley Labs,et al.  On Complexity of Equivalence Checking , 2003 .

[95]  Marco Benedetti,et al.  Quantifier Trees for QBFs , 2005, SAT.

[96]  Hiroshi Sawada,et al.  CAD transactions best paper a ward "SPFD: a new method to express functional flexibility" , 2002, IEEE Circuits and Systems Magazine.