Automatic Fault Localization for Property Checking

We present an efficient fully automatic approach to fault localization for safety properties stated in linear temporal logic. We view the failure as a contradiction between the specification and the actual behavior and look for components that explain this discrepancy. We find these components by solving the satisfiability of a propositional Boolean formula. We show how to construct this formula and how to extend it so that we find exactly those components that can be used to repair the circuit for a given set of counterexamples. Furthermore, we discuss how to efficiently solve the formula by using the proper decision heuristics and simulation-based preprocessing. We demonstrate the quality and efficiency of our approach by experimental results.

[1]  Rolf Drechsler,et al.  Finding good counter-examples to aid design verification , 2003, First ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2003. MEMOCODE '03. Proceedings..

[2]  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.

[3]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..

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

[5]  Roderick Bloem,et al.  Program Repair as a Game , 2005, CAV.

[6]  Franz Wotawa,et al.  Modeling State in Software Debugging of VHDL-RTL Designs - A Model-Based Diagnosis Approach , 2003, ArXiv.

[7]  Franz Wotawa Debugging Hardware Designs Using a Value-Based Model , 2004, Applied Intelligence.

[8]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[9]  Igor L. Markov,et al.  Fixing Design Errors with Counterexamples and Resynthesis , 2007, 2007 Asia and South Pacific Design Automation Conference.

[10]  Ibrahim N. Hajj,et al.  Diagnosis and Correction of Logic Design Errors in Digital Circuits , 1993, 30th ACM/IEEE Design Automation Conference.

[11]  Ibrahim N. Hajj,et al.  Design error diagnosis and correction via test vector simulation , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[12]  Andreas Veneris,et al.  Design diagnosis using Boolean satisfiability , 2004 .

[13]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[14]  Tiziano Villa,et al.  VIS: A System for Verification and Synthesis , 1996, CAV.

[15]  Andreas Zeller,et al.  Simplifying and Isolating Failure-Inducing Input , 2002, IEEE Trans. Software Eng..

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

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

[18]  Fabio Somenzi,et al.  Proving More Properties with Bounded Model Checking , 2004, CAV.

[19]  Ofer Strichman,et al.  Accelerating Bounded Model Checking of Safety Properties , 2004, Formal Methods Syst. Des..

[20]  Rolf Drechsler,et al.  Automatic Fault Localization for Property Checking , 2006, Haifa Verification Conference.

[21]  Szu-Tsung Cheng,et al.  Compiling Verilog into Automata , 1994 .

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

[23]  Premachandran R. Menon,et al.  Critical Path Tracing - An Alternative to Fault Simulation , 1983, 20th Design Automation Conference Proceedings.

[24]  Rolf Drechsler,et al.  Efficient Hierarchical System Debugging for Property Checking , 2005 .

[25]  Dominique Borrione,et al.  Design error diagnosis in sequential circuits , 1995, CHARME.

[26]  Alex Groce,et al.  Error explanation with distance metrics , 2004, International Journal on Software Tools for Technology Transfer.

[27]  Viktor Schuppan,et al.  Liveness Checking as Safety Checking , 2002, FMICS.

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

[29]  Kenneth L. McMillan,et al.  Applying SAT Methods in Unbounded Symbolic Model Checking , 2002, CAV.

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

[31]  Alex Groce,et al.  Understanding Counterexamples with explain , 2004, CAV.

[32]  Roderick Bloem,et al.  Automated Fault Localization for C Programs , 2007, V&D@FLoC.

[33]  Joonyoung Kim,et al.  SATIRE: A new incremental satisfiability engine , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[34]  Randall Davis,et al.  Diagnosing Circuits With State: An Inherently Underconstrained Problem , 1984, AAAI.

[35]  Wilhelm Ackermann,et al.  Solvable Cases Of The Decision Problem , 1954 .

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

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