Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Verification of synchronous sequential machines based on symbolic execution
Proceedings of the international workshop on Automatic verification methods for finite state systems
Efficient implementation of a BDD package
DAC '90 Proceedings of the 27th ACM/IEEE Design Automation Conference
IBM Journal of Research and Development - Mathematics and computing
An Investigation of the Laws of Thought
An Investigation of the Laws of Thought
Minimization over Boolean graphs
IBM Journal of Research and Development
TOP: an algorithm for three-level optimization of PLDs
DATE '00 Proceedings of the conference on Design, automation and test in Europe
A new enhanced constructive decomposition and mapping algorithm
Proceedings of the 40th annual Design Automation Conference
Disjoint-support Boolean decomposition combining functional and structural methods
Proceedings of the 2004 Asia and South Pacific Design Automation Conference
A BDD-based fast heuristic algorithm for disjoint decomposition
ASP-DAC '03 Proceedings of the 2003 Asia and South Pacific Design Automation Conference
Sequential logic synthesis using symbolic bi-decomposition
Proceedings of the Conference on Design, Automation and Test in Europe
Hi-index | 0.01 |
Brayton (1982-90) and others have developed a rich theory of decomposition of switching functions based on algebraic manipulations of monomials. In this theory, a product g(X/sub g/)/spl middot/h(X/sub h/) is algebraic if X/sub g//spl cap/X/sub h/=O. There are efficient methods for determining if a function has an algebraic product. If a function does not have an algebraic product, then there are good methods for obtaining a decomposition of the form f=g/spl middot/h+r where g/spl middot/h is an algebraic product. Algebraic decompositions have the desirable properties that they are canonical and preserve testability. In this paper we generalize the concept of an algebraic product to decompositions of the form f(X)=g(X/sub g/)??h(X/sub h/) where ?? is any binary Boolean operation and |X/sub g//spl cap/X/sub h/|=k for some k/spl ges/0. We call these decompositions quasi-algebraic decompositions. We begin by showing that we may restrict ourselves to the case where ?? is +(sum),/spl middot/(product) or /spl oplus/ (enclusive-or). We then give necessary and sufficient conditions for a function to have a quasi-algebraic decomposition for a given X/sub g/ and X/sub h/. If a function has such a decomposition we show how to determine the functions g and h in a canonical manner. We also show that these decompositions are fully SSL testable. Finally, using standard benchmark circuits, we show that quasi algebraic decompositions occur often and are useful in reducing circuit size.