Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Finding the Optimal Variable Ordering for Binary Decision Diagrams
IEEE Transactions on Computers
Efficient implementation of a BDD package
DAC '90 Proceedings of the 27th ACM/IEEE Design Automation Conference
Symmetry detection and dynamic variable ordering of decision diagrams
ICCAD '94 Proceedings of the 1994 IEEE/ACM international conference on Computer-aided design
Who are the variables in your neighborhood
ICCAD '95 Proceedings of the 1995 IEEE/ACM international conference on Computer-aided design
Improving the Variable Ordering of OBDDs Is NP-Complete
IEEE Transactions on Computers
Dynamic variable ordering for ordered binary decision diagrams
ICCAD '93 Proceedings of the 1993 IEEE/ACM international conference on Computer-aided design
Speeding up variable reordering of OBDDs
ICCD '97 Proceedings of the 1997 International Conference on Computer Design (ICCD '97)
On variable ordering of binary decision diagrams for the application of multi-level logic synthesis
EURO-DAC '91 Proceedings of the conference on European design automation
IEEE Transactions on Computers
The Art of Computer Programming: Combinatorial Algorithms, Part 1
The Art of Computer Programming: Combinatorial Algorithms, Part 1
Hi-index | 0.00 |
Ordered Binary Decision Diagrams are a canonical representation of Boolean functions that is at the core of most formal verification systems and silicon compilers. Canonicity enables efficiency of manipulation but comes at the cost of fixing a variable evaluation order and predictably, BDD sizes are very sensitive to the selected order. The state-of-the-art reordering algorithms are based on transpositions of consecutive variables (swaps). Exact algorithms enumerate all possible n! permutations by performing a series of at least n! -- 1 swaps, while heuristics typically either search for the optimum location of each variable independently (sifting) or utilize exact algorithms as a subroutine (k-window.) In this work we reduce the problem of variable ordering to that of obtaining a permutation enumeration transposition network. Our proposed network avoids traversing all n! permutations by exploiting structural properties of BDDs and requires the execution of fewer than 4n swaps sequentially instead of n! -- 1. For the practically interesting cases of n = 4,5 our algorithm requires only 11 (resp 59) sequential swaps instead of 23 (resp 119). We also propose an algorithm for moving between arbitrary variable orderings that executes at most n swaps sequentially, an improvement upon (n2). Results suggest speedups of 162%, 308%, 10X over the k -- window heuristic for k = 4, 6,8 and near-linear speedups when moving between orderings.