welcome

General Description of Function Decomposition



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:

F = H(A, G(B, C)) = H(A, Z)

Where G and H denote functional dependencies:

G(B, C) = Z and H(A, Z) = Y.

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.

Example of such a decomposition is shown in the block diagram from Fig. 1.



Fig. 1 Function Decomposition


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.


  • Variable Partitioning
  • Compatability Graph
  • Maximum Clique
  • Predecessor G Function
  • Successor F Function



    I. Variable Partitioning -- Bound set vs. Free set

    Suppose we have the following function:



    Fig. 2 Truth Table


    Variable partitioning is to patition bound set vs. free set. In order to do this, we count the number of zeros and ones each variable partition the truth table, the difference between the number of zeros and ones is an indicator how this variable patition the function. Then follwoing the evaluation tree shown below, we evaluate all combinations of variables and choose the best partitioning.



    Fig. 3 Evaluation Tree


    II. Compatability Graph

    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.



    Fig. 4 Decomposition Chart


    In the decomposition chart, a pair of column are compatible if each pair of element in thesepair are compatible. Compatibility Graph is a graph to show the relationship among columns in the decomposition chart. If two column are compatible, there's a edge between, o therwise, there's no edge between them. Fig. 5 shows the compatibility graph of the above d ecomposition chart.



    Fig. 5 Compatability Graph


    III. Maximum Clique

    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.



    Fig. 6 Maximum Clique and Column Encoding(A:0, B:1)


    vI. Generating G function

    According to the encoded columns, the truth table for the G function can be easily generated as below:



    Fig. 6 Generating G function


    V. Generating H function

    Similarly, H function is generated as below:



    Fig. 7 Generating H function


    Fig. 8 shows the decomposed function:



    Fig. 8 Decomposed Function