A New Approach to Simplifying Boolean Functions

There are many benefits to simplifying Boolean functions before they are implemented in hardware. A reduced number of gates decreases considerably the cost of the hardware, reduces the heat generated by the chip and, most importantly, increases the speed. But no method is effective for the simplification of Boolean functions, if it involves more than six variables. This paper presents a new manual method of simplification that can be effectively applied to problems with a large number of variables.


Introduction
The complexity of digital logic gates that implement a Boolean function is directly related to the complexity of the algebraic expression from which the function is implemented.Although the truth table representation of a function is unique, expressed algebraically, it can appear in many different forms.Boolean functions may be simplified by various means.We can use the rules of Boolean algebra to simplify an expression, but this method has a few problems.One is that there is no algorithm, which can be used to determine whether or not we have obtained the minimum solution.When should we stop looking for a simplification theorem?Another problem is that we often have to make the expressions more complicated before attempting a simplification.Then we rearrange the terms to obtain advantageous groupings that help to simplify the expressions at a later stage.It is against human nature to climb out of a "local minimum" in the hope of finding a better global solution.But this is exactly what we often have to do.
Another straightforward and simple way of simplification is the "Karnaugh map" method.This method is convenient as long as the number of variables does not exceed five or six.As the number of variables increases, the ____________________________________________ *Corresponding author Email: ashfak@bttb.net.bdexcessive number of squares prevents a reason exceed five or six.As the number of variables increases, the excessive number of squares prevents a reason able selection of adjacent squares.The obvious disadvantage of the map is that it is essentially a trial and error procedure, which relies on the ability of the human user to recognize certain patterns.For functions of six or move variables, it is difficult to be sure that the best selection has been made.
The tabulation method overcomes this difficulty.It is a specific step-by-step procedure that is guaranteed to produce a simplified standard-form expression for a function.It can be applied to problems with many variables and has the advantage of being suitable for machine computation.However, it is quit tedious and is prone to mistakes because of its routine, and it is a monotonous process.Finally, it is just too cumbersome to manipulate Boolean expressions by hand.Though computer-based tools have been developed for Boolean simplification, we still need knowledge of the basic approach.Because, observing the symmetries in a circuit's function helps to understand its behavior.As CAD tools become even more sophisticated, we need a deeper knowledge of algorithms they apply to use the tools effectively.
This paper assesses previous methods and describes a new method, which uses the advantages of both the map method and the tabulation method and overcomes their disadvantages.

Description Of New Map-Tabulation Method
Our proposed method, which utilizes both the concepts of the Karnaugh map (Karnaugh, 1953) and the Quine-McCluskey's Tabulation techniques (Mano, 1979), can be termed as the Map-Tabulation (M-T) method.With our approach the given Boolean function should be expressed as the sum of minterms form (a Canonical form), such as: m 10 , m 17 , m 18 , m 50 , m 52 , ..., m k , m l ) [1] The input variables and the minterms should be divided in to several groups.Each group of input variables will contain maximum of four (4) members, whereas each group of minterms will contain a maximum of sixteen ( 16) terms.For grouping the input variables we should start from the least significant bit.So the least four bits will form the first group.The 5 th to 8 th bits will form the second group, and so on.The last group can contain fewer members.Now for grouping the minterms it should be confirmed that the minterms are arranged in the ascending order of their subscripts.If there are n numbers of input variables, the minterms will be grouped into 2 n / 16 = 2 (n -4) groups.The minterms among and including m 0 and m 15 would form the first group, m 16 to m 31 forms the second group, m 32 to m 47 forms third, and so on.It is not nec [2] essary that all these groups must contain elements.Some could form empty groups.If such an empty group occurs, an asterisks (*) symbol will be placed in the group.Two successive groups are separated by a vertical line ( | ).After grouping the elements the function will become: Now this function will be rearranged in a tabular form as shown in Table 1.Before placing the functions in the table, all minterms are converted to their equivalent binary.The binary information of cell [1,1] (i.e. group no. of minterms, group no. of variables) will be solved by using   found for a term, then the term is listed in the last column along with its higher significant bits.The binary information of the second group of variables is simplified for the common terms and the "#" marked uncommon terms.If the second group of variables contains only one variable, no simplification for the higher terms would be needed.Each variety of the common term is then placed in the last column without combining their higher term.If the second group of variables contains two to four variables, then a Kmap of two to four variables should be formed depending on the number of variables of the second group of vari- ables.If a term is found common in the first , fourth and 15 th group of minterms then the zeroth, third and 14 th position of the map is marked with one and being simplified.Simplified terms are listed aside.For a "#" marked term the groups of minterms are identified, where the loop of 1s which produces that term is common in position and structure.The higher bits are then simplified by using K-map.
If the term exist in group three and its loop of 1s matches with groups one and four then the second position of the K-map would be marked with one and the zeroth and third positions are marked with ×; and are treated as the do not care positions.Then the map is solved and the simplified terms are listed aside.All the simplified terms of the second group of variables are then checked and the terms are marked as before.The binary information of the third group of variables are then simplified for the common terms and the "#" marked terms, in the same manner as explained before.Similarly, all the groups of variables are simplified sequentially.Finally, the simplified Boolean expression is found by adding all the terms of the last column.

Examples
The Map-Tabulation method is a combination of the Kmap and the tabulation methods.Up to four variables can be used and it is exactly the same as the Karnaugh map method.When the number of variables increases it uses some techniques of the tabulation method.It can be used for problems involving any number of variables.This method is different for problems involving five or more input variables.Now we discuss the case for more than four variables.
Example 1:   8,12,24,28 24,28,56,60 21,23,29,31 28,29,60,61 12,13,14,15,28,29,30,31 ,6,8,12,13,14,15,21,23,24,28, 29,30,31,50,55,56,60,61,114) [3] Since there are seven input variables they should be grouped into two groups.The first group contains four least significant bits and rest of the variables will remain in the second group.The number of input variables are n=7.Therefore, the minterms would be grouped into 2 (7 - 4) = 8 groups.After grouping, the function would be reformed as follows: [4] Now all the information of this function should be placed into the simplification table as shown in Table 2.At first, the binary information of the first group of minterms and first group of input variables are placed into a 4-variable K-map.Combining the 1s according to the usual procedure, the simplified terms W'YZ', WX and WY'Z' are found and are listed aside.Similarly, with the rest of the combinations of W, X, Y and Z, all the other groups of minterms are simplified accordingly and their results are listed.These simplified terms are compared.
Here the term WX is found at row one and two.Therefore check is placed at the right of both terms.Similarly, all other common terms are marked.Now the K-maps are checked for the uncommon terms.The uncommon terms W'YZ' is generated by combining the 1s of the second and sixth positions of the first K-map.No other K-map is found where '1s' exists in the same locations.Therefore W'YZ' along with the higher significant bits of the same group (T'U'V') are written at the column of selected implicants.Similarly, XZ along with T'U'V is placed in the last column.The uncommon term W'XYZ is slightly different.This term is generated by the one of seventh position of the K-map of fourth row.The K-map of the second row also contains a one at the same location.Therefore the symbol "#" is placed on the right of this term.Similarly the term WXY' is generated by the '1s' of eight and ninth position of the K-map of fourth row.The K-maps of first and second rows also contain '1s' at the same location.Therefore WXY' is also marked with # on the right.For the common terms and the terms marked with #, the binary information of the second group of input variables are simplified.Since the second group of input variables contains three variables, three-variable K-map is used for the simplification.The first term WX is common at the first and second rows, where the value of TUV is 000 and 001 respectively.That is why, 1s are placed at the zeroth and first positions of the map and is solved accordingly.The simplified higher term found from the map is T'U'.So the ultimate simplified term is T'U'WX, and is listed aside.Similarly, all other common terms are listed along with their simplified higher terms.Now the higher significant bits are simplified for the uncommon terms marked with # symbol.The first such term is W'XYZ, and is generated by the one placed at the seventh position of the K-map of fourth row.The seventh position of the K-map of the second row also contains one.These two 1s of the same location of different maps are marked with a circular boundary.At the K-map of higher significant bits the third position is marked with one and the first position is marked as a do not-care location.For simplification, this location can be treated as one or zero.The result of higher bits simplification is T'V.Therefore, finally T'VW'XYZ is written in the last column.Similarly, simplification of higher bits is performed for the other # marked term, and the result is listed.Finally the following simplified terms are found; T'U'V'W'YZ', T'U'VXZ, T'U'WX, T'U'WY'Z', T'VWY'Z', UVW'X'YZ', T'VW'XYZ and T'VWXY'.By adding these terms we get the ultimate simplified function as follows; F = T'U'V'W'YZ' + T'U'VXZ + T'U'WX + T'U'WY'Z' + T'VWY'Z' + UVW'X'YZ' + [5] T'VW'XYZ + T'VWXY'

Verification Of Results
Example 1 outlined above culminates in a simplified Boolean expression.The accuracy of this result can be verified by using other methods of simplification.The practical use of the K-map method is limited to up to six variable functions.But the given function contains seven input variables.Therefore the K-map method will not be convenient for this particular problem.The Quine-McCluskey's tabulation can serve the purpose though it is a monotonous method.The simplification of the given function F (T,U,V,W,X,Y,Z) = Σ (2,6,8,12,13,14,15,21,23,24,28,29,30,31,50,55,56,60,61,114) , by using the tabulation method is shown in Tables 4-6.
The simplified expression is: This proves that the result obtained earlier, by using the proposed method is correct.

Benefits
Our proposed technique is a manual method of simplification of Boolean functions.Therefore it should not be compared with computer aided minimization techniques.CAMP (Biswas, 1986) is completely a computer aided minimization technique.Modified Espresso (Malik et al., 1988), Espresso (Brayton et al., 1985) and MINI (Hong et al., 1974) are more suitable for computer aided minimization than manual minimization.If we consider the manual minimization technique described by Biswas (1971) we will find that the method is almost similar to the Quine-McCluskey's Tabulation method.In this method huge amounts of bit-by-bit comparisons take place, which is quit monotonous and is prone to mistakes.In our proposed method no such bit-by-bit comparison needs to be per-formed.Now let us consider the Directed Search Algorithm (DSA) (Rhyne et al., 1977).This method can be used as a manual method as well as a computer aided minimization method.It uses the RED-tree procedure.For manual minimization this RED-tree procedure is suitable for functions of five to eight variables.Our proposed method can easily handle functions having more than eight variables.

Conclusions
This paper studied the problems of minimizing Boolean expressions and proposed an optimal method of Boolean function simplification.It also evaluated the performance of a new technique.This method overcomes most of the limitations of the other renowned manual methods of simplification.It can be effectively and easily implemented for problems having large numbers of input variables.Complexities arise when the number of minterms for which F(m i ) = 1 increase excessively.It is less dependent on the ability of the human user, because it uses a maximum of four variable K-maps.Moreover, it is not as monotonous as the other manual methods.Further research should be conducted to develop an algorithm that uses this new method.