Title: Variable Ordering Using aBDD Based Sampling
1Variable Ordering Using aBDDBased Sampling
- Yuan Lu
- Electrical and Computer Engineering
- Carnegie Mellon University
Co-author Jawahar Jain, Fujitsu Lab of
America Edmund Clarke, Carnegie Mellon
University Masahiro Fujita, University of Tokyo
2Outline
- Motivation
- Related Work
- Cube-based Sampling
- Window-based Sampling
- Experiments
- Conclusion and Future work
3Motivation
- BDDs are widely used in synthesis and
verification - Good variable ordering is essential
- Existing techniques are not adequate
- static ordering is fast, but lacks power
- dynamic reordering is slower, but efficient
- Obtaining a better order may be a hit-and-trial
process - numerous experiments are performed
- Sampling based approaches are promising
4Related Work
- Static Variable Ordering (Fujita88, Malik88)
- Dynamic Reordering (Fujita91,Rudell93,Panda95)
- reasonably powerful
- slower, local minimum
- Function Sampling-based Ordering (Jain98)
- application driven, forward look-ahead
- faster, sometimes very powerful
- Implemented using cube-based sampling
- large deviation in BDD size unpredictable
- BDD Manager based-sampling (Meinel98)
- Lacks forward look-ahead Not the focus of this
paper
5Cube-based Sampling (Jain98)
- Given a Boolean function F(x1, x2, x3, ...), it
is likely that a good variable order for F(0,1,
x3,) is also a good order for F. - Assume cube c!x1 x2, F(0,1,) F(x1,x2,) c
- Obtaining good orders for smaller function is
simpler than original functions. - Sample the Boolean space using random cubes
- Select the best from the obtained orders
- Unsolved puzzles
- Which cube to be chosen?
- How to average the effects from different orders?
6Window-based Sampling
- A cube may not represent the behavior of the full
function, e.g. F(0,1, x3,) 1 - Instead of using one cube, more than one cube
should be used w c1 c2 ... - How to generate good windows?
Cube-based sampling
Window-based sampling
Boolean space
7Abstract BDDs
- Given abstraction function h, abstract BDT H(f)
of f is constructed as follows. - Nodes are classified into equivalence classes
- One representative v is chosen from each class
- Let , if
- Abstract BDT
- Different definitions for abstract BDDs are
possible
8Abstract BDDs Example
- Assume
- Abstract BDT for is
0
0
1
1
9Abstract BDDs Properties
- Distribution property
- Let c(v) be the cube corresponding to v,
10Window-based Sampling Using aBDDs
- Use aBDDs to generate window samples
- Advantages
- Averaging effects of multiple cubes
- Produce more stable ordering than cube-based
approaches - Procedure
- Choose variables to be abstracted
- Generate window samples
- Select best samples
11Variable Ordering Methodology
Abstraction
estimation
candidate order select
functions
orders
circuit filter
evolution filter
orders
final initial order
Similar methodology as cube-based sampling
(Jain98)
12Experiments
- Experiments on combinational circuits
- Experiment I static ordering for single-output
functions - Experiment II dynamic ordering for single-output
functions - Experiment III dynamic ordering for
multiple-output circuits - Experiment on sequential circuits
- generate initial ordering for model checking PCI
bus protocol
13Experiment I Static Ordering
14Experiment I Static Ordering
15Experiments II Dynamic Reordering
16Experiment II Dynamic Ordering
17Experiments IIIMultiple Outputs
18Variable Ordering for Model Checking
- Variable ordering is essential for model checking
- Current dynamic reordering approaches do not have
the forward look-ahead capability - Abstraction-based variable ordering
- Given a set of abstraction functions, the system
automatically build abstract Kripke structure. - CTL properties are preprocessed on the abstract
Kripke structure. - The obtained order is used as initial order for
the final model checking process.
19Experiments IVModel Checking
20Conclusion
- Our approach overcomes the large deviation
problem of the cube-based sampling approach. - Window-based sampling techniques are efficient to
obtain good variable orders. - Window-based sampling can use other forms instead
of aBDDs, e.g. decomposed BDDs. - We are currently investigating how to incorporate
similar ideas inside BDD packages instead of
exploring the circuit structures.