Learning to Order BDD Variables in Verification

The size and complexity of software and hardware systems have significantly increased in the past years. As a result, it is harder to guarantee their correct behavior. One of the most successful methods for automated verification of finite-state systems is model checking. Most of the current model-checking systems use binary decision diagrams (BDDs) for the representation of the tested model and in the verification process of its properties. Generally, BDDs allow a canonical compact representation of a boolean function (given an order of its variables). The more compact the BDD is, the better performance one gets from the verifier. However, finding an optimal order for a BDD is an NP-complete problem. Therefore, several heuristic methods based on expert knowledge have been developed for variable ordering. We propose an alternative approach in which the variable ordering algorithm gains "ordering experience" from training models and uses the learned knowledge for finding good orders. Our methodology is based on offine learning of pair precedence classifiers from training models, that is, learning which variable pair permutation is more likely to lead to a good order. For each training model, a number of training sequences are evaluated. Every training model variable pair permutation is then tagged based on its performance on the evaluated orders. The tagged permutations are then passed through a feature extractor and are given as examples to a classifier creation algorithm. Given a model for which an order is requested, the ordering algorithm consults each precedence classifier and constructs a pair precedence table which is used to create the order. Our algorithm was integrated with SMV, which is one of the most widely used verification systems. Preliminary empirical evaluation of our methodology, using real benchmark models, shows performance that is better than random ordering and is competitive with existing algorithms that use expert knowledge. We believe that in sub-domains of models (alu, caches, etc.) our system will prove even more valuable. This is because it features the ability to learn sub-domain knowledge, something that no other ordering algorithm does.

[1]  I. Wegener,et al.  SIMULATED ANNEALING TO IMPROVE VARIABLE ORDERINGS FOR OBDDsBeate , 1995 .

[2]  Peter Y. K. Cheung,et al.  Improved variable ordering of BDDs with novel genetic algorithm , 1996, 1996 IEEE International Symposium on Circuits and Systems. Circuits and Systems Connecting the World. ISCAS 96.

[3]  Masahiro Fujita,et al.  Variable ordering algorithms for ordered binary decision diagrams and their evaluation , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[4]  J. Ross Quinlan,et al.  Induction of Decision Trees , 1986, Machine Learning.

[5]  David E. Long,et al.  Identifying sequentially untestable faults using illegal states , 1995, Proceedings 13th IEEE VLSI Test Symposium.

[6]  James L. McClelland,et al.  Parallel distributed processing: explorations in the microstructure of cognition, vol. 1: foundations , 1986 .

[7]  Richard O. Duda,et al.  Pattern classification and scene analysis , 1974, A Wiley-Interscience publication.

[8]  Christoph Meinel,et al.  Sample Method for Minimization of OBDDs , 1998, SOFSEM.

[9]  Yoram Singer,et al.  Learning to Order Things , 1997, NIPS.

[10]  Christoph Meinel,et al.  Speeding up variable reordering of OBDDs , 1997, Proceedings International Conference on Computer Design VLSI in Computers and Processors.

[11]  Karl Branting,et al.  Compositional Instance-Based Learning , 1994, AAAI.

[12]  Joseph Naor,et al.  Approximating Minimum Feedback Sets and Multicuts in Directed Graphs , 1998, Algorithmica.

[13]  Roger D. Chamberlain,et al.  Parallel Logic Simulation of VLSI Systems , 1995, 32nd Design Automation Conference.

[14]  Nagisa Ishiura,et al.  Shared binary decision diagram with attributed edges for efficient Boolean function manipulation , 1990, 27th ACM/IEEE Design Automation Conference.

[15]  J. R. Quinlan Discovering rules by induction from large collections of examples Intro-ductory readings in expert s , 1979 .

[16]  Kenneth J. Supowit,et al.  Finding the Optimal Variable Ordering for Binary Decision Diagrams , 1987, 24th ACM/IEEE Design Automation Conference.

[17]  藤田 昌宏,et al.  Evaluation and Improvements of Boolean Comparison Method Based on Binary Decision Diagrams , 1988 .

[18]  Masahiro Fujita,et al.  Sampling schemes for computing OBDD variable orderings , 1998, ICCAD '98.

[19]  Joseph Sifakis,et al.  Specification and verification of concurrent systems in CESAR , 1982, Symposium on Programming.

[20]  Miron Abramovici,et al.  FIRE: a fault-independent combinational redundancy identification algorithm , 1996, IEEE Trans. Very Large Scale Integr. Syst..

[21]  Rolf Drechsler,et al.  A genetic algorithm for variable ordering of obdds , 1996 .

[22]  Don E. Ross,et al.  Functional approaches to generating orderings for efficient symbolic representations , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[23]  Carl Pixley,et al.  Intertwined development and formal verification of a 60/spl times/ bus model , 1997, Proceedings International Conference on Computer Design VLSI in Computers and Processors.

[24]  Beate Bollig,et al.  Improving the Variable Ordering of OBDDs Is NP-Complete , 1996, IEEE Trans. Computers.

[25]  Fabio Somenzi,et al.  Symmetry detection and dynamic variable ordering of decision diagrams , 1994, ICCAD '94.

[26]  Jochen Bern,et al.  Efficient OBDD-Based Boolean Manipulation in CAD Beyond Current Limits , 1995, 32nd Design Automation Conference.

[27]  Michael Lindenbaum,et al.  Selective Sampling for Nearest Neighbor Classifiers , 1999, Machine Learning.

[28]  Jerome H. Friedman,et al.  A Recursive Partitioning Decision Rule for Nonparametric Classification , 1977, IEEE Transactions on Computers.

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

[30]  Philip J. Stone,et al.  Experiments in induction , 1966 .

[31]  Hiroshi Sawada,et al.  Minimization of binary decision diagrams based on exchanges of variables , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[32]  Don E. Ross,et al.  Heuristics to compute variable orderings for efficient manipulation of ordered binary decision diagrams , 1991, 28th ACM/IEEE Design Automation Conference.

[33]  Janak H. Patel,et al.  Efficient variable ordering heuristics for shared ROBDD , 1993, 1993 IEEE International Symposium on Circuits and Systems.

[34]  Tracy Larrabee,et al.  Explorations of sequential ATPG using Boolean satisfiability , 1993, Digest of Papers Eleventh Annual 1993 IEEE VLSI Test Symposium.

[35]  Chikahiro Hori,et al.  Interleaving based variable ordering methods for ordered binary decision diagrams , 1993, ICCAD.

[36]  Christoph Meinel,et al.  Linear sifting of decision diagrams , 1996, Universität Trier, Mathematik/Informatik, Forschungsbericht.

[37]  Richard Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, ICCAD.

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

[39]  Paul E. Utgoff,et al.  Two Kinds of Training Information For Evaluation Function Learning , 1991, AAAI.

[40]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[41]  Peter E. Hart,et al.  Nearest neighbor pattern classification , 1967, IEEE Trans. Inf. Theory.

[42]  Kazuyoshi Takagi,et al.  Waiting false path analysis of sequential logic circuits for performance optimization , 1998, ICCAD.

[43]  Robert K. Brayton,et al.  Implicit state enumeration of finite state machines using BDD's , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[44]  Paul E. Utgoff,et al.  Learning a Preference Predicate , 1987 .

[45]  Rolf Drechsler,et al.  Fast exact minimization of BDDs , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[46]  Robert K. Brayton,et al.  BDD Variable Ordering for Interacting Finite State Machines , 1994, 31st Design Automation Conference.

[47]  Masahiro Fujita,et al.  Evaluation and improvement of Boolean comparison method based on binary decision diagrams , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[48]  David Bryan,et al.  Combinational profiles of sequential benchmark circuits , 1989, IEEE International Symposium on Circuits and Systems,.

[49]  Robert K. Brayton,et al.  BDD minimization by truth table permutations , 1996, 1996 IEEE International Symposium on Circuits and Systems. Circuits and Systems Connecting the World. ISCAS 96.

[50]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

[51]  Joseph Naor,et al.  Approximating Minimum Feedback Sets and Multi-Cuts in Directed Graphs , 1995, IPCO.

[52]  F. Somenzi,et al.  Who are the variables in your neighbourhood , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[53]  Ilan Beer,et al.  RuleBase: an industry-oriented formal verification tool , 1996, DAC '96.

[54]  Albert R. Wang,et al.  Logic verification using binary decision diagrams in a logic synthesis environment , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[55]  Saburo Muroga,et al.  Binary Decision Diagrams , 2000, The VLSI Handbook.