Efficient implementation of a BDD package

Karl S. Brace, Richard L. Rudell, Randal E. Bryant
1990 Conference proceedings on 27th ACM/IEEE design automation conference - DAC '90  
Efficient manipulation of Boolean functions is an important component of many computer-aided design tasks. This paper describes a package for manipulating Boolean functions based on the reduced, ordered, binary decision diagram (ROBDD) representation. The package is based on an efficient implementation of the if-then-else (ITE) operator. A hash table is used to maintain a strong canonical form in the ROBDD, and memory use is improved by merging the hash table and the ROBDD into a hybrid data
more » ... ture. A memory function for the recursive ITE algorithm is implemented using a hash-based cache to decrease memory use. Memory function efficiency is improved by using rules that detect when equivalent functions are computed. The usefulness of the package is enhanced by an automatic and lowcost scheme for recycling memory. Experimental results are given to demonstrate why various implementation trade-offs were made. These results indicate that the package described here is significantly faster and more memory-efficient than other ROBDD implementations described in the literature.
doi:10.1145/123186.123222 dblp:conf/dac/BraceRB90 fatcat:xk36igjitrazzm5f2vuvfp2uxm