Scalable exploration of functional dependency by interpolation and incremental SAT solving

Functional dependency is concerned with rewriting a Boolean function f as a function h over a set of base functions {g1, ..., gn), i.e. f = h(g1, ..., gn). It plays an important role in many aspects of electronic design automation (EDA), ranging from logic synthesis to formal verification. Prior approaches to the exploration of functional dependency are based on binary decision diagrams (BDDs), which may not be easily scalable to large designs. This paper proposes a novel reformulation that extensively exploits the capability of modern satisfiability (SAT) solvers. Thereby, functional dependency is detected effectively through incremental SAT solving, and the dependency function h, if it exists, is obtained through Craig interpolation. The main strengths of the proposed approach include: (1) fast detection of functional dependency with modest memory consumption and thus scalable to large designs, (2) a full capacity to handle a large set of base functions and thus discovering dependency whenever exists, and (3) potential application to large-scale logic optimization and verification reduction. Experimental results show the proposed method is far superior to prior work and scales well in dealing with the largest ISCAS89 and ITC99 benchmark circuits with up to 200 K gates.

[1]  William Craig,et al.  Linear reasoning. A new form of the Herbrand-Gentzen theorem , 1957, Journal of Symbolic Logic.

[2]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[3]  G. S. Tseitin On the Complexity of Derivation in Propositional Calculus , 1983 .

[4]  David A. Plaisted,et al.  A Structure-Preserving Clause Form Translation , 1986, J. Symb. Comput..

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

[6]  Olivier Coudert,et al.  New ideas on symbolic manipulations of finite state machines , 1990, Proceedings., 1990 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[7]  A. Richard Newton,et al.  Exact Redundant State Registers Removal Based on Binary Decision Diagrams , 1991, VLSI.

[8]  Alan J. Hu,et al.  Reducing BDD Size by Exploiting Functional Dependencies , 1993, 30th ACM/IEEE Design Automation Conference.

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

[10]  C. A. J. van Eijk,et al.  Exploiting functional dependencies in finite state machine verification , 1996, Proceedings ED&TC European Design and Test Conference.

[11]  Ellen M. Sentovich,et al.  Latch optimization in circuits generated from high-level descriptions , 1996, ICCAD 1996.

[12]  Pavel Pudlák,et al.  Lower bounds for resolution and cutting plane proofs and monotone computations , 1997, Journal of Symbolic Logic.

[13]  Jan Krajícek,et al.  Interpolation theorems, lower bounds for proof systems, and independence results for bounded arithmetic , 1997, Journal of Symbolic Logic.

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

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

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

[17]  Kenneth L. McMillan,et al.  Interpolation and SAT-Based Model Checking , 2003, CAV.

[18]  Lakhdar Sais,et al.  Automatic Extraction of Functional Dependencies , 2004, SAT.

[19]  Prabhakar Kudva,et al.  Implicit enumeration of structural changes in circuit optimization , 2004, Proceedings. 41st Design Automation Conference, 2004..

[20]  Robert K. Brayton,et al.  Functional Dependency for Verification Reduction , 2004, CAV.

[21]  Ranjit Jhala,et al.  Interpolant-Based Transition Relation Approximation , 2005, CAV.

[22]  Robert K. Brayton,et al.  SAT-based complete don't-care computation for network optimization , 2005, Design, Automation and Test in Europe.

[23]  Robert K. Brayton,et al.  Using simulation and satisfiability to compute flexibilities in Boolean networks , 2006, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.