Sunteți pe pagina 1din 13

Chapter- 2

LITERATURE SURVEY

Minimization of Boolean functions has been an area of great interest to

investigators belonging to as diverse fields as mathematics to electrical engineering for last

fifty years. Early investigations in this area were made specifically for synthesis of

switching networks used at telephone control rooms and to some extent in digital

computers. With the evolution of digital logic circuits the emphasis on investigations was

shifted towards minimization of Boolean functions for the synthesis of digital electronic

circuits of small sizes. Last few decades have witnessed a phenomenal advancement in the

area of microelectronics resulting in fast development of implementation technology of

digital circuits which subsequently caused numerous research efforts towards development

of suitable Boolean function minimization techniques to be used with Programmable Logic

Arrays (PLAs), Programmable Array logic (PAL) and Field Programmable Gate Arrays

(FPGA) based digital circuits. Now-a-days, with availability of huge computing power on

ubiquitous digital computers the main interest of investigators is focused on development

of fast and efficient CAD tools of logic synthesis which comprises of many more features

like design entry and !i.mctional simulation, etc., for implementation technology dependent

digital circuits. Currently, investigations are on to carry out logic synthesis using

multiprocessors (parallel computers) in order to reduce time taken by the computationally

complex steps of minimintion. The proposed work is an attempt to dcYelop a new method

2- I
of two-level Boolean function minimization which could be implemented on parallel

computers.

A brief account of development of methods of Boolean function minimization and

the CAD tools developed for this purpose is presented as under.

2.1 Early Developments

In 1849 George Boole [ 1] developed a scheme for algebraic description of

processes involved in logical thought and reasoning. Huntington [2] in 1904 provided a set

of postulates further aU!,'menting this scheme to what is known today as Boolean algebra. It

was almost a century later that found its application in the field of engineering when

Claude Shannon [3] in 1938 showed that Boolean algebra provided an effective means of

describing circuits built with switches and effectively used it in the synthesis [4]. A

minimization chart method was developed in 1951 by staff [5] of Harvard Computational

Laboratory. Veitch [6] modified the number of entries in this chart [5] and developed

another chart method for minimization of Boolean function. In 1953 Kamaugh [7)

developed a map method by reorganizing Veitch's chart to provide visual minimization of

Boolean functions with possibility of directly writing alternate minimal forms for functions

up to six variables. A method of obtaining minimal sum by repeated application of the

logic adjacency theorem (A B +A B =A) was developed by Quine [8, 9] in 1952 and 1955,

respectively. Prime implicant formulation was. carried out by Nelson [1 OJ in 1955 in a very

different manner by distributing the AND operation over OR operation (multiplication) in a

Boolean function represented in conjunctive fom1. In 1956 McCluskey [ 11] extending the

Quine's method developed a tabular method to formulate minimal set of prime implicants

2-2
necessary to cover all the minterms of the Boolean function under consideration. The

compete minimization procedure of McCluskey can be thought of comprising of two steps,

namely, formulation of prime implicants and selection of essential prime implicants to

appear in the minimal solution. Various investigations took place towards prime implicant

lclrmulation [ 11-28] and solution of covering problem [29-53]. The development of

methods of minimization is briefly described considering the prime implicant generation

algorithms first then the attempts to obtain minimal set of prime implicants are briefly

listed.

2.2 Prime Implicant Formulation Methods

In this section the investigations leading to various methods of prime implicant

fonnulation are briefly enumerated. Some of the methods described in this section have

been extended to obtain the minimal cover as well. Their methods (algorithms) to obtain

minimal covers are, however, dealt with in the next section.

Quine [8, 9] as already described in the section 2.1 gave a method of generating all

the prime implicants of a Boolean function expressed in disjunctive form. In late 1950s

algebraic topological methods were suggested by Roth [12, 13], Ghazala [14] and Patrick

[ 15] for prime implicant generation using algebraic operations instead of repeated

application oflogic adjacency theorem. In 1960 Molt [16] applied consensus theory [17] to

algebraic topological methods to produce prime implicants. Hall [18] developed a prime

implicant fom1Ulation method based on relation disclosed by a hypothetical sieve capable

of sifting out I 's !rom any binary column of a set of min terms. Scheiman [ 19] developed a

tabular method where all the prime implicants may not be generated sometimes, though

2-3
prime implicants necessary for minimal solution arc always obtained. Das and Chaudhary

[20] gave a simple iterative technique for determination of all the prime implicants giving

decimal numbers to the max terms present in the Boolean function in contrast to the method

of Nelson. In 1967 Tison [21] extended the consensus theory to formulate all prime

implicants of a given Boolean function in a more general form than that of Quine's.

Svoboda [22] presented an algorithm to generate prime implicants defining relation among

the integer representation (in 8-4-2-1 code) of given minterms. A recursive formula to

obtain all the prime implicants was developed by Morreale [23] in 1970. Slagle, Chang and

Lee [24] developed a semantic tree based algorithm which generated all the prime

implicants without any repetition saving time and memory when implemented on a digital

computer. Das and Khabra [25] developed a method making a clause-column table which

had as many columns as the number of product or sum terms in SOP or POS form,

respectively, of the Boolean function. Every column of the clause-column table contained a

clause determining the product or sum term. This algorithm was subsequently extended to

find minimal cover and for multiple output Boolean functions [26]. In 1975 Reusch [27]

gave an algorithm to generate all the prime implicants of a given Boolean function from its

subfunctions, however, the working of the algorithm was similar to that of Slagle et a!. A

similar algorithm to that of Nelson was developed by Hulme and Worrell [28] using

factoring to reduce formation of null and redundant prime implicants due to multiplication.

These methods of prime implicant formulation are being used with or without

modifications in present day computer aided tools for Boolean function minimization. The

investigations carried out for f01mulation of minimal set of essential prime implicants arc

briefly enumerated in the next section.

2-4
2.3 Formulation of Minimal Set of Essential Prime Implicants

Once all the prime implicants have been f01mulated, a minimum number of these

are to be selected such that all the given min terms of the Boolean function are covered at

least once. The formulation of such a minimum set is called solution of the covering

problem or the f01mulation of irredundant prime implicants. This problem is more

extensively investigated as the quality of the final expression heavily depends upon this.

In 1956 McCluskey [I I] used prime implicant table to obtain essential prime

implicants and to eliminate those prime implicants which have become redundant as a

result of selection of an irredundant one. However, this method becomes tedious for cyclic

prime implicant tables. Ghazala [14] formulated a presence function for every prime

implicant in order to obtain essential prime implicants. Scheiman [I 9] in I 962 developed

an algorithm where prime implicant table was used but redundant prime implicants were

partially reduced at the PI formulation step itself, thus reducing the labour to solve

covering problem. Gimpel [29] gave an auxiliary technique to reduce a cyclic prime

implicant table given by McCluskey [I I] into smaller once which were not cyclic and

obtaining minimal set of prime implicants for covering. However, the technique was

limited to problems having at least one column covered by exactly two rows. The reduction

technique of Gimpel was modified by Lucio [30] and applied for every type of prime

implicant table successfully. Chang and Matt [3 I J showed that presence relation for prime

implicants whose disjunction was 'f need be multiplied in order to get the essential prime

implicants. Chaudhary and Oas [32] gave a method similar in principle to that of Change

and Matt. In 1967 Tison [21] gcneralit.cd the consensus theory in order to obtain minimum

2-S
cover m addition to J(l!mulation of all pnme implicants of the Boolean functions. The

covcnng obtained by Tison's method was shown to be non-minimal for some Boolean

functions by Cutler and Muroga [33] in 1979. Robinson and House [34] generalized the

reduction technique of Gimpel adding a cost factor to every row of the prime implicant

table, thereby reducing the labour of making many tables. MmTeale [35-37] developed

partitioned list algorithm which generated prime implicants only once and provided better

results than the consensus method. Markowitz and Shub (38] used an extension of K-map

[7] method to generate prime implicants of a Boolean function by giving different

identifiers to the obvious prime implicants and then collecting other not so obvious ones.

This method was not suitable for computer implementation being a graphical one.

However, Das [39] extended the idea of Markowitz and Shub to generate minimal and non-

minimal irredundant solution using a cover table where the minimal cover was formulated

using an elimination process. This method too was suitable only for moderate sized

Boolean function as the overhead for calculation of eliminability used to become excessive.

Slagle et a!. [24] first fom1u!ated prime implicants without repetition and also found the

minimal cover using heuristic reduction method with the help of a semantic tree of prime

implicants. Biswas [40] gave an algorithm where instead of a prime implicant table cover

tables were used. By the cover table only those prime implicants which were necessary to

formulate minimal cover were generated and the final minimal cover was obtained by

chaining of selective prime implicants (SPI). This method was perhaps the first method to

combine the two different steps of McCluskey's procedure into one. Bubenik [41]

described a method of obtaining a minimal cover by fommlating a distributed cost function

as C, ~ m, In,, where m, is the number of literals in a prime implicant and n, is the number

2-6
of mintcrms covered by that prime implicant. This method was shown to be lacking in

generality by Noe et al. [42] in 1974. Hwa [43] gave a tabular method where the table used

had fixed number of columns in contrast to McCluskey's procedure. This method used a

subsume operation to generate the irrcdundant prime implicant cover in the single table

itself. In !975 Reusch [27] gave an algorithm to formulate prime implicants from

subfunctions and a unified approach to get minimal cover on the lines similar to Tison's

work. Surcschander [44] gave a faster method of prime implicant formulation and

dete1mining minimal cover combining the two steps of McCluskey's method. Curtis [45]

gave a tabular method in 1977 in which the table was based on bitwise adjacency of the

given minte1ms and all the prime implicants were generated from this table only. This

method made use of Patrick's approach [15] as a final step to obtain the minimal set of

prime implicants. In 1970s heuristic methods were in use as the exact covering problem

solution which themselves were highly computationally complex. Some heuristic methods

[24, 27] have been already enumerated above and other important methods are as follow.

Wong and Ismail [46] developed a heuristic algorithm to obtain minimal cover giving a

modified bounding operation to obtain a smaller lower bound. In 1989 Mathony [47]

developed a method which was based on Thelen's search tree algorithm and formulated

prime implicants alongwith computation of minimal cover by developing heuristics to

prune the search tree. Coudert [ 48, 49] developed many heuristic algorithms like

contribution based selection and contribution based removal similar to weighed set

covering problems of Servit [50] and Rudell [51] for quick detem1ination of the minimal

cover. Later on, Coude11 [52, 53] developed faster algorithms based on tree pruning to

obtain minimal cover which also gave better lower bound heuristics.

2-7
Some unconventional methods of Boolean function minimization and other

investigations pertaining to logic minimization of other than strict two-level single output

Boolean function minimization arc briefly enumerated in the following section.

2.4 Some Other Methods of Boolean Function Minimization

Tomescu [54] developed a combinatorial algorithm for solving covering problems

determining one set of covers associated with the paths of a directed rooted tree that

contains at least a minimal cover. In 1983 Blesslich [55] developed a method for the

generation and processing of dyadic indexed data and successfully applied it for generating

prime implicants and formulation of minimal cover. In 1995 Dasigi [56] attempted the

implementation of Boolean function minimization in abductive frame work but this method

did not present any betterment over the existing ones. Damrala et a!. [57] presented an

algorithm defining a CTERM to obtain prime imp\icants in terms of product terms as well

as in terms of Ex-OR/NOR forms. Mischenko and Sasao [58] suggested that very large

SOP problems could be solved in faster manner by detecting decomposition and observing

functional properties of the Boolean function as a preprocessing step before carrying out

exact or heuristic two-level minimization and obtained results in less time. Average values

of number of prime and essential implicants have been studied by Mileto and Putzolu [59]

and computational complexity issues for two-level Boolean function minimization have

also been investigated by Brietbrat and Vairavan [60], MmTeale [61], McMullen and

Shearer [62] and Wegener [63]. Many direct cover Boolean function minimization

algorithms [64-67] have also been developed which try to ascertain if a newly fom1ulated

prime implicant is an csscntwl one or not without f1rst generating the necessary prime

2-8
1mplicants then obtaining minimal cover. Many algorithms [68-71] for fast but approximate

solution of covering problem have been putforth for formulating near minimal solutions.

The exact minimization algorithms have been extended to minimization of multiple output

[72-75] Boolean functions since early 1960s. In the recent year simplification of Boolean

functions in terms of Ex-OR/NOR and AND- Ex-OR/NOR gates have become an area of

interest for the simple reasons that logic functions for some digital circuits like adders,

parity checkers, etc., cannot be implemented economically in terms of AND-OR gates.

Fronek [76] extended K-map to obtain simplification in terms of Ex-OR/NOR and AND-

Ex-OR/NOR gates directly from the map by visual inspection. Turton [77] extended

Quine-McCluskey's procedure for the simplification in Ex-OR form. Extensive

investigations have been made to develop canonical form ESOP [78, 79] for this type of

simplification and to develop suitable minimization methods [80-82].

With the advancement in digital computer technology and its subsequent easier

availability many attempts [12, 13, 21, 23] have already been made to computerize the

computationally complex job of minimization of Boolean functions. A brief account of

development of computer programs and CAD tools is presented in the following section.

2.5 Development of CAD Tools for Boolean Function Minimization

The work on computerization of Quine-McCluskey's procedure had started since

mid 1960s with the limited storage and speed of computers available at that period oftime.

Many investigations [12, 13, 21, 23] had been reported to suitably modify Quine-

McCluskcy's [II] procedure to formulate minimal set of prime implicants with minimum

memory and time. Ishikawa ct a! [83] developed a program on the lines of Tison's method

2-9
121 J to generate exact minimal cover but reported failure for problems having more than I 0

variables due to excessive CPU time and memory requirements. On the other hand many

heuristic procedures had been developed and obtained good results producing near minimal

solutions. Some of the CAD tools based on heuristic methods are described as under.

The Jirst very commonly used CAD tool for Boolean function minimization was

MINI developed by Hong et al. [84] in 1974. Biswas [85] developed an algorithm for two-

level Boolean function minimization based on his earlier work [40] and called it Computer

Atded Minimization Procedure (CAMP). In its first phase it selected all the essential prime

cubes, whereas, in its second phase it attempted to choose a minimum cover from the

selective prime cubes. Sometimes it failed to do so as the algorithm could not sense the

presence of an uncovered distant minterm. Biswas [86] described another algorithm in

1990 giving major modifications of his earlier algorithm [85] which removed the earlier

deficiency, and so improved algorithm was named as CAMP-II always obtaining the

minimum cover including all the uncovered minterms, both adjacent and distant ones, in

the normal mode. In 1996, Biswas et al [87] further gave another algorithm QCAMP which

did not generate all the prime implicants to save time. In mid 1980s the algorithms

PRESTO [88] and PRESTOL [89] were developed for two level minimization of single

output and PLA implementation, respectively. A class of well known heuristic two-level

single and multiple output minimizing tool ESPRESSO [90, 91 J was also developed during

the same period which too combined the two steps of McCluskey's procedure to generate

approximate (near minimal) solution in shorter time than [88, 89] and reported successful

results up to about I 0 to 15 variable Boolean functions. In the year 1986 McBOOLE [92]

11·as developed to produce exact solution f(Jr minimization of Boolean function and

2- I 0
obtained better results and timings than [90, 91). It used graph and partitioning techniques

to produce exact solutions for even 20 variable Boolean timetions. In 1987 Nguyen et al

(931 gave an algorithm for two-level single output Boolean function minimization

converting the NP liard covering problem into a graph colouring problem and obtained a

faster approximate solution. This program was capable of minimizing Boolean functions up

to 60 variables and GO product te1ms on personal computers. In the mean time a variant of

r9o] ESPRESSO-MY was developed by Rudell and Sangiovanni-Vincentelli [94] for

multi-valued minimization suitable for !'LAs. Another variant of [90] was developed for

multi-level logic minimization by Bartlett et al. [95] and was termed as ESPRESSO-MLD.

Rudell et al. [96] developed ESPRESSO-EXACT giving an exact solution in 1993 and in

the same year another exact algorithm ESPRESSO-SIGNATURE was developed by

McGeer ct a!. [97] giving an improvement in runtime by an average factor of 1.78 over

[96]. Recently, another heuristic algorithm BOOM has been developed by Fiser and

Hlavicka [98-l 02] having a different approach towards minimization than that of [90, 91,

96, 97]. The main differences between the two algorithm BOOM and ESPRESSO are (i)

the way they work with the on-set received as function definition and (ii) top-down

approach of fmmulating prime implicants in BOOM by reduction of the universal

hypercube until it no longer intersects the off-set whereas in ESPRESSO source cube is

expanded to obtain the better coverage. Better results in terms of CPU time and number of

literals in the final minimiLed expression are reported [103). BOOM algorithm was

modified as BOOM-II in 2004 by Fiser and Kubatova (104) to produce good results for

multi-output Boolean functions as well combining the features of BOOM "ith another

mimnllZer FC-Min [105].

2 - II
As the proposed work attempts to l<>rmulate all prime implicants on the parallel

basis. some parallel Boolean timction minimi~.ation methods arc hrietly d.:scribed in the

l\1llowing sc<:tion.

2.6 Parallel Algorithm for Boolean Function Minimization

Though the design requirements in the present day VLSl d<:sign area have some

rcpmtctl investigations [106, 107] for carrying out some of the VLSI design steps on

parallel basis, butthcrc is only one reported attempt [108, 109] of two-level single output

Boolean function minimization. Barbour [I 09] has used a hypercube for representation of a

Boolean function and showed that K-map method is a special case of planer representation

of a hypercube. Barbour [I 09] has further merely suggested a parallel algorithm to

fmmulate prime implicants and determination of minimal cover using a minterm

distribution algorithm to distribute minterms of the Boolean function over different nodes

of a hypercube without implementing it on a numerical example.

The present work by the author develops parallel algorithms for two-level single

output Boolean function minimization termed as PARABOOMIG, an acronym for

PARAllel BOOlean Minimization using Gray code. In order to reach development of

parallel algorithms first a novel minterm numbering scheme based on Gray code [110- 117]

has been developed and subsequently a paper-and-pencil method [ 118, 119] has been

developed by the author. The paper-and-pencil method has been applied for simplification

in terms of Ex-OR/NOR gates [120] and K-map has been shown as its special case [121,

122]. The presented method is applied to realization of Boolean functions using

multiplexers, a real life problem of managing the keys in secure Internet multicast [123]

2- 12
und also to ellcctively m1mm1ze Boolean functions having a few sparsely occurring

minterms using VEG technique [124, 125]. The properties of Gray code exploited to

develop the adjuccncy rules of paper-and-pencil method have been shown to be equally

effective in developing the parallel algorithms [ 126-130) of the present work. The parallel

algorithms arc developed based on Single Program Multiple Data paradigm [131] and are

simulated using time driven simulation strategy [132] with assumption of suitable

parameters [133, 134].

-oOo-

2- 13

S-ar putea să vă placă și