Using SAT for combinational equivalence checking

This paper addresses the problem of combinational equivalence checking (CEC) which forms one of the key components of the current verification methodology for digital systems. A number of recently proposed BDD based approaches have met with considerable success in this area. However, the growing gap between the capability of current solvers and the complexity of verification instances necessitates the exploration of alternative, better solutions. This paper revisits the application of Satisfiability (SAT) algorithms to the combinational equivalence checking (CEC) problem. We argue that SAT is a more robust and flexible engine of Boolean reasoning for the CEC application than BDDs, which have traditionally been the method of choice. Preliminary results on a simple framework for SAT based CEC show a speedup of up to two orders of magnitude compared to state-of-the-art SAT based methods for CEC and also demonstrate that even with this simple algorithm and untuned prototype implementation it is only moderately slower and sometimes faster than a state-of-the-art BDD based mixed engine commercial CEC tool. While SAT based CEC methods need further research and tuning before they can surpass almost a decade of research in BDD based CEC, the recent progress is very promising and merits continued research.

[1]  Joao Marques-Silva,et al.  On applying incremental satisfiability to delay fault testing , 2000, DATE '00.

[2]  Joao Marques-Silva,et al.  GRASP-A new search algorithm for satisfiability , 1996, Proceedings of International Conference on Computer Aided Design.

[3]  C. L. Berman,et al.  Functional comparison of logic designs for VLSI circuits , 1989, ICCAD 1989.

[4]  van Caj Koen Eijk,et al.  Formal methods for the verification of digital circuits , 1997 .

[5]  Yusuke Matsunaga An efficient equivalence checker for combinational circuits , 1996, DAC '96.

[6]  Wolfgang Kunz HANNIBAL: an efficient tool for logic verification based on recursive learning , 1993, ICCAD.

[7]  Wolfgang Kunz,et al.  HANNIBAL: An efficient tool for logic verification based on recursive learning , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

[8]  Jerry R. Burch,et al.  Tight integration of combinational verification methods , 1998, ICCAD.

[9]  A. Kuehlmann,et al.  Equivalence Checking Using Cuts And Heaps , 1997, Proceedings of the 34th Design Automation Conference.

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

[11]  Alberto L. Sangiovanni-Vincentelli,et al.  Formal verification of combinational circuits , 1997, Proceedings Tenth International Conference on VLSI Design.

[12]  Joao Marques-Silva Algorithms for Satisfiability in Combinational Circuits Based on Backtrack Search and Recursive Learning , 1999 .

[13]  D. Brand Verification of large synthesized designs , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

[14]  Karem A. Sakallah,et al.  GRASP—a new search algorithm for satisfiability , 1996, ICCAD 1996.

[15]  Robert K. Brayton,et al.  Sequential circuit design using synthesis and optimization , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[16]  Joao Marques-Silva,et al.  Combinational equivalence checking using satisfiability and recursive learning , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[17]  Dominik Stoffel,et al.  Reasoning in Boolean Networks - Logic Synthesis and Verification Using Testing Techniques , 1997, Frontiers in electronic testing.

[18]  Masahiro Fujita,et al.  Advanced Verification Techniques Based on Learning , 1995, 32nd Design Automation Conference.

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

[20]  P. Tafertshofer,et al.  A SAT-based implication engine for efficient ATPG, equivalence checking, and optimization of netlists , 1997, ICCAD 1997.

[21]  Andreas Kuehlmann,et al.  Equivalence checking combining a structural SAT-solver, BDDs, and simulation , 2000, Proceedings 2000 International Conference on Computer Design.