This article describes the use of binary decision diagrams (BDDs) and if-then-else dags for representing and manipulating Boolean functions. Two-cuts are de ned for binary decision diagrams, and a relationship is exhibited between general if-then-else expressions and the two-cuts of a BDD for the same function. An algorithm for computing all two-cuts of a BDD in O(n 2 ) time is given. A new canonical form for if-then-else dags, analogous to Bryant's canonical form for BDDs, is introduced. The canonical form is based on representing the lowest non-trivial two-cut in the corresponding BDD, while Bryant's canonical form represents the highest two-cut. Expressions in Bryant's canonical form or in the new canonical form are shown to be prime and irredundant. Some applications of if-then-else dags to multi-level logic minimization are given, and the Printform transformations for reducing the complexity of if-then-else dags are presented. This research was partially supported by an IBM Faculty Development Award and by NSF grant DCR-8503262.
[1]
C. Y. Lee.
Representation of switching circuits by binary-decision programs
,
1959
.
[2]
Sheldon B. Akers,et al.
Binary Decision Diagrams
,
1978,
IEEE Transactions on Computers.
[3]
David S. Johnson,et al.
Computers and Intractability: A Guide to the Theory of NP-Completeness
,
1978
.
[4]
Greg Nelson,et al.
Simplification by Cooperating Decision Procedures
,
1979,
TOPL.
[5]
Kevin Karplus.
Exclusion constraints: a new application of graph algorithms to VLSI design
,
1986
.
[6]
R. Bryant.
Graph-Based Algorithms for Boolean Function Manipulation12
,
1986
.
[7]
Robert K. Brayton,et al.
Algorithms for Multi-Level Logic Synthesis and Optimization
,
1987
.
[8]
Randal E. Bryant,et al.
Algorithmic Aspects of Symbolic Switch Network Analysis
,
1987,
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.