A proof engine approach to solving combinational design automation problems

There are many approaches available for solving combinational design automation problems encoded as tautology or satisfiability checks. Unfortunately there exists no single analysis that gives adequate performance for all problems of interest, and it is therefore critical to be able to combine approaches.In this paper, we present a proof engine framework where individual analyses are viewed as strategies---functions between different proof states. By defining our proof engine in such a way that we can compose strategies to form new, more powerful, strategies we achieve synergistic effects between the individual methods. The resulting framework has enabled us to develop a small set of powerful composite default strategies.We describe several strategies and their interplay; one of the strategies, variable instantiation, is new. The strength of our approach is demonstrated with experimental results showing that our default strategies can achieve up to several magnitudes of speed-up compared to BDD-based techniques and search-based satisfiability solvers such as ZChaff.

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

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

[3]  Daniel Brand Verification of large synthesized designs , 1993, ICCAD.

[4]  Masahiro Fujita,et al.  An efficient filter-based approach for combinational verification , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[5]  Masahiro Fujita,et al.  An efficient filter-based approach for combinational verification , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[6]  Lawrence Charles Paulson Tactics and tacticals in Cambridge LCF , 1983 .

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

[8]  J.R. Burch,et al.  Tight integration of combinational verification methods , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

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

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