The principle of decomposition is one of the most general approaches to solve engineering
and science optimization problems. The problem of decomposition of a Boolean function F
is to find the realization of F which is a composition of simpler Boolean functions. In
the late 1950's, Ashenhurst and Curtis determined the necessary and sufficient conditions
for the existenceof given type of decomposition. These decomposition types are now being
called Ashehurst Decomposition and Curtis Decomposition.
Among several types of decomposition of Boolean functions the most familiar is simple
disjoint decomposition. Let F be a multiple-valued or binary function representing
functional dependency Y=F(X), where X is a set of multiple-valued or binary variables
and Y is a set of multiple-valued or binary input, binary output variables. Let
X=A U B , Then there is a functional decomposition of F , if:
Example of such a decomposition is shown in the block diagram from Fig. 1.
Where G and H denote functional dependencies:
Z is a set of
two-valued variables. If C = 0 then H is called a simple disjoint decomposition
of F. B is called a bound set, and A is called a free set.
In Fig. 1. the function F of inputs a, b, c, and d is decomposed to two subfunctions:
In this project, we implement a complete system to do the Ashenhurst-Curtis function
decomposition, and our hardware are targetted to the DEC PeRLE-1 board which is available
at PSU EE department. Since it is a reconfigurable PAM (discuss in Section 2), We partition
our function decomposition algorithm into 5 stages. Each stage can use all resources of the
DEC PeRLE-1 board. In this section, i will use a example to explain the The Principle of each stage.
Suppose we have the following function:
For the function shown in Fig. 2, given bound set variable {c, d} and free set {a , b}, the second step is to construct the Compatability Graph. First we rearrang e the truth table to make a Decomposition Chart. A decomposition chart is a table i n which column and row index are in straight binary code, while in truth table, the column and row index are in Gray Code. Fig. 4 shows the decomposition chart of this function.
The number of unique column pattern(Column Multiplicity) is the number of maximum clique in the compatability graph. After finding the maximum cliques in the graph, we encode each clique with binary number for generating the predicessor function.
According to the encoded columns, the truth table for the G function can be easily generated as below:
Similarly, H function is generated as below: