Module 3:Logic Optimization and Synthesis

Lecture 1,2 & 3 :Two level Boolean Logic Synthesis

Theorem 3: The lower bound for a cyclic matrix is at least 2.

There is only one case when the lower bound is 1; constraint matrix contains a full column of ones. In this case, the matrix cannot be cyclic because the column with all ones dominates all the others. The matrix can therefore be reduced to one column, which is obviously essential. Thus, such a matrix is not cyclic.

There are several heurists for computing the lower bound for the coving problem that have been proposed [7] and here we preset one of them whose steps are as follows.

1.  Add a field w to each row, whose value is equal to the number of 1's in the row

2.  Choose the row with minimum w . Let it be . If there are multiple rows with same value, choose the one from the top.

3.  Delete all rows such that and have at least one column where both of them have a 1. Also, delete .

4.  Repeat step 2 and 3 until no more rows remain.

The number of rows selected in Step-2 is the lower bound of the cover.

The key feature of this algorithm is it just chooses the “shortest” row, that is, the row with the fewest nonzero columns, and breaking ties in ascending order. The basic motivation of choosing the “shortest” row first, comes from the fact--shorter the row is, higher is the probability of involving a column to cover it. If there is a row of w =1 , then one column is mandatory to cover it. All rows with at least one common column of 1 are deleted because, all the rows can be covered with the common columns. This makes the solution faster because we eliminate many rows quickly. However, this also leads to inaccuracy explained as follows. Let row1 be selected to be deleted. Let row2 has common column as column1 (with row1) and row3 has common column as column2 (with row1). So the lower bound estimate in this case is 1; deletion of row1 will also eliminate row2 and row3 because of common columns having 1. Also, let row2 and row3 be singletons. To cover row1 and row2 if we select column1, then selection of column2 is mandatory for row3. Similarly, to cover row1 and row3 if we select column2, then selection of column1 is mandatory for row2. Therefore, we require two columns in this case, which is not reflected in the estimate.

Let is consider the constraint matrix given below. The weights w are also shown in the matrix.

 

In this case, we start with row1 (minterm1) which has the minimum weight and occurs first in chronological order among all other rows having equal weight. Now, rows minterm2 and minterm4 are also eliminated because of common columns column1 (PI1) and column5 (PI5), respectively. In the >> iteration, row3 is selected. Now, rows minterm6 and minterm5 are also eliminated because of common columns column2 (PI2) and column3 (PI3), respectively. As there are no more rows, Lower Bound = 2 and comprises {1, 3}. It may be noted that in this case the bound is not sharp, as we require at least three columns in the cover.

In the >> section, we will illustrate the branch and bound algorithm with an example.