mi m m Hi ™m mm huOHIHiSMKI SXSfiOora no moBMiiiira HBttHffl HHSraraRl ■BHH OB ■ ■ I ■ ■ ■ mm ■ I I . J«h8Htc3 nHHn MVP ■ iw b9 ns9H8u JWajBMwflm LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAICN 510.84 n 0.308-315 cop2 The person charging this material is re- sponsible for its return to the library from which it was withdrawn on or before the Latest Date stamped below. Theft, mutilation, and underlining of books are reasons for disciplinary action and may result in dismissal from the University. UNIVERSITY OF ILLINOIS LIBRARY AT URBANA-CHAMPAIGN APR 2 6 1974 APH 9 L161 — O-1096 Digitized by the Internet Archive in 2013 http://archive.org/details/minimizationofsw309ibar vu,30iH Ik 2k: : a~1 K| X 22^ X i2~*l '*} I "* g - X ll X 12" X 3i 1 V a ^l X 22" ,,X 2k 2 V ' ••'" ^l'V'^k,, ' Fig. 1 A typical MOS gate . As an example, consider a function of three variables x , x p , x : f = x x x 2 v x 2 x v x^x. v x^x . (1.1) One obvious design procedure of f with negative functions is first to realize three complemented variables x , x , x , using three gates respectively and then to realize f by regarding f as a negative function of x , x , x , x , x p , x . This is illustrated in Fig. 2, in which each gate g. represents a negative function. ± x 2 v Xp x 3 v x ± x^ ~ g 1 g 2 g 3 Fig. 2 Straightforward realization of f = x..x ^ x o x o ^ x -i x q ^ x x x This synthesis procedure can be generalized to any function, indicating that any function of n variables can be realized with at most n+1 gates of negative functions within two levels. The above network, however, can be simplified. A minimum network which is obtained by the method developed in this paper is shown in Fig. 3« 1" X, g=X v x 2 n/ X 3 f = a x l — — > X 3 — ■ f = X 1 X 2 V X 2 X 3 V X 3 X 1 V ^1 v *2 V X 3^ Fig. 3 Minimum realization of f = x x s/ x o x o ^ x -i x o v x -i x o x q Here, we mean by a minimum network a network with the minimum number of gates of negative functions under the conditions that; (1) the given function f is realized within two levels (the level which consists of gates connected to the output gate is called the first level and the level of the output gate is the second level) , and (2) no fan-in restriction on each gate is imposed. We will not minimize the number of interconnections in the network except some limited cases discussed in Section "J. Although this minimization criterion may not exactly reflect the engineering requirements of the integrated circuit designers, this seems to be only criterion at present, which can be theoretically treated. It is to be explored whether or not a minimum network obtained under the above criterion would deviate much from those obtained under different minimality criteria. But we hope that the theory presented here would be a basis for further development. 2. Negative Functions This section will define negative functions in terms of truth table. This will he a hasis of the minimization procedure developed in this paper. Let us first consider a completely specified function. A well-known definition of a negative function is that a function is negative if and only if it has a disjunctive form with only complemented (i.e., negative) literals. For example, x..x_ ^ x o^o v x i x -3 -*- s ne g a "tive hut x,x v xx v x x ^ x x p x is not. Since our procedure will he based on the monipulation of a truth table rather than Boolean expression, the following equivalent definition, which is also well-known would be more useful. Definition 1 ; A completely specified function h of m variables y^, y ? , ..., y J A.) is negative if and only if there is no pair of input vectors y and (j 2 ) * y such that m and y x >y 2 (2.1) h(y 1 ) = 1 h(y 2 ) = 0, (2.2) where y > y is defined as Jh ] MJ (j-,) (Jo) y. x > Yj_ f or every i = 1, 2, and (jJ (J P ) y. > y. for at least one i. * Here we exclude from our consideration the contradictory situation such that y(Jl) = y(J2) and h(y^^) = 1 h(y (j 2)) = o. This will never occur in our procedure. As an example, the function f of variables x , x , x shown in Table 1 (ignore the columns g , g_, g for a while) is not negative because there exists a pair such that 1 f x l X 2 X 3 g l g 2 S 3 (1) 1 1 1 1 (2) 1 1 1 1 (3) 1 1 1 1 (h) 1 1 1 (5) l 1 1 1 (6) 1 1 1 (7) 1 1 1 (8) 1 1 1 1 Table 1 Truth table of f = x.x ? v x p x o ^ x i x -3 ^ x i x o x q x (8) = (111) > x ik) = (Oil) and f (111) = 1, f (Oil) = 0. This function is the same function as that discussed in Fig. 1 and Fig. 2. The outline of our procedure which realizes a given general i^not necessarily negative) function by means of a combination of negative functions is now given. First we augment the truth table by several columns (illustrated as columns g , gu , g in Table l) so that the given function f may be considered as a negative function if those new columns together with columns x , . .., x are regarded as variables of f. According to our procedure, each of these new columns (g_, g~, g„ in Table l) represents a negative function of variables x_, x p , ..., x . Therefore, from this augmented table, we can construct a network of negative functions in which each gate in the first level corresponds to an augmented column (g , gr , g in Table l) and the gate in the second level, to which the outputs of gates in the first level as well as the variables x , x , n are fed, realizes the function f. (see Fig. k.) In general, the augmented columns are incompletely specified, i.e., some entries of g , g^, g are left blank as seen in Table 1. Generation of augmented columns will be discussed later in detail. x l -A X — 1 — X Fig. k General scheme of realization with negative functions Throughout this paper let us assume that a function is generally incompletely specified. As observed in Table 1, an incompletely specified function is possibly not specified in some of the output values and also in entries in some input vectors. For example, the output values of g (x , Xp, x ) in Table 1 are not specified for input vectors (100), (101) and (110). Also when we consider f as a function of input vectors (x_, x p , x , g-,* g p > go) > then some of input vectors themselves are not completely specified. For example, the second row of g._ in Table 1 is not specified. In this case, we interpret the output values of f to assume the values indicated in the column f, regardless of the assignments of unspecified entries . For example, the second row of Table 1 shows that the actual output value of f is 1, no matter whether the input vector is ( 001110 ) or (001111), i.e., regardless of the value in column g which is blank in Table 1. Now let us introduce a definition. Definition 2 : A column c. is said negative with respect to c. , c. , ..., i i x i 2 idj) (d 2 ) c. if and only if for every pair of entries c. and c. of c. such s (Sj) (J 2 ) that c. =1 and c. '' = 0, there exists a subscript I (l < & < s) which satisfies / . \ (j,) c = and (j p ) c, - 1 . (2.3) Consider the column f of Table 1. The column f is not negative with respect to x , x and x because for the pair of the eighth and the fourth entries, f * = 1 and f* = 0, there is no subscript I (l < i < 3) such that x^ = and x\ - 1. If x , x , x , g , g^ and g are considered as variables of f, however, then f is negative as easily verified. Note that the definition of the negativeness of a column is valid no matter whether related columns are completely specified or not. In the following, first we will prove that two concepts of definitions 1 and 2, the negativeness of a function and that of a column, are equivalent if a completely specified case is concerned (Theorem l) . Then this equivalence will be extended to the incompletely specified case (Theorem 2). With those arguments, all the discussions throughout the following sections will be done in terms of the negativeness of columns. The next definition of a negative function stated as Theorem 1 [2] is a variant of Aker's theorem which gave a necessary and sufficient condition for a function being a self -dual positive function. A comprehensive discussion is also found in [8]. Theorem 1 : A completely specified function h of m variables y_, y p , ..., y is negative if and only if the corresponding column h in the truth table is negative with respect to columns y_, y , ..., y . Proof : Let us prove that the condition for the column h to be negative with respect to columns y_, y p , . .., y (Definition 2) is equivalent Ui ) to the condition that there is no pair of input vectors of h, y^ 1 and y such that y > y and h(y ) = 1, h(y ) = (Definition l). JSj) _(o 2 ) Now note that y > y is equivalent to non-existence* of any (jl) (J 2 ) subscript £ such that y, =0 and y, =1. Therefore, if for every Jjj) _(j 2 ) pair of entries, h(y ) = 1 and h(y ) = 0, there exists a subscript U-l) (j 2 ) I such that y n = and Y » = 1, it implies that there is no pair of Jjj) Jj 2 ) JdJ Jj 2 ) Jj-,) _Jj 2 ) vectors y and y such that y > y and h(y ) = 1, h(y ) = 0, and vice versa. QED. In order to extend Theorem 1 to incompletely specified functions, the next definition is introduced. Definition 3 ' A completion of h is a completely specified function obtained from h by specifying all the unspecified output values of h. If a resultant completely specified function is negative, it is a negative completion . Theorem 2 : An incompletely specified function h of m variables y_, y p , ..., y has a negative completion if and only if the column h in a truth table is negative with respect to columns y_, y p , ..., y . Proof: The only- if part is trivial. # ^ y is assumed for every pair of j and j p , j ^ j p , 10 Now, consider an incompletely specified column h which is negative with respect to y , y_, . .., y . First, if there are blank entries in columns y , y p , . .., y , expand the table by assigning and 1 to every blank entry, by muliplexing each row. (i.e. if a row is (01 — l) where - denotes blank entries, replace this row by (01001), (01011), (01101), (Ollll).) As a result, the table has 2 rows. The entries of the column h in the multiplexed rows of the new table are set to the same values as the original entries. This process takes care of input vectors which are incompletely specified. The column h in the new table is obviously still negative. Next consider the case in which the entries in column h is incompletely specified. Denote the sets of true vectors and false vectors of h as follows : (2.fc) A = { y (j) | h(y (d) ) = 1} and B = { y* | h(y' J = 0}. There is no pair of vectors y and y such that Jj x ) _Jd 2 ) ^(dJ Jo 2 ) y > y and y e A, y e B, Als) from the negativeness of column h. Then pick up a vector y for which the value h (y ) is not specified yet. y satisfies one of the following three cases: —■( r>) (l) There exists a vector y such that y (p) e A andy (p) >y (k) . (2.5) 11 (2) There exists a vector y such that y (q) eB andy (q) y (j) , y (k) € A', y (j ' } e b«, leads to a contradiction, i.e., y(p) > y(j) ^ y(p) g^ ^g ^ from condition (2.5). If (2) is the case, then h(y ) = is assigned. The proof is similarly obtained. Finally , if (3) is the case, either or 1 is assigned to -(k) h(y ). Either case still keeps the column negative, even though one more entry is specified. This is because the non-negativeness of h' means the existence of y (k) > y (i) , y (k) € A' , y^ e v 12 (We assume h ' (y* ') = 1. The case of h'(y )= will be treated similarly.) which is a contradiction since this y satisfies the above case (2). The assignment to the next unspecified entry of h' can be performed similarly. Repeating this process, we will eventually obtain a negative completion of h. QJED. As a result of Theorems 1 and 2, we learned that the negativeness of a column h with respect to columns y_ , y_, .... y means that function 1 2 m h represented by column h in the truth table is a negative function (or has a negative completion) of variables y , y p , ..., y . Thus the negativeness of completely specified function has been extended to the case of incompletely specified function. Since the completion procedure described in the proof of Theorem 2 does not always yield the unique negative completion, any negative completion will be assumed in the following discussion because we are concerned with only negativeness of each function. 13 3. Realization of f With Negative Functions If a given function f is not negative, more than one gate is needed to realize f with negative functions. As outlined in Section 2, our algorithm for the optimum network is based on the table manipulation. It first augments the given truth table with columns g , gL, ..., gi such that (1) the column f is negative with respect to x , x , . .., x , g l' ' * * ' g k* (2) the columns g., i = 1, 2, ..., k, are negative with respect to x_ , x^, .... x . r 1' 2 n Provided that those columns g , gp, ..., g with the above properties are obtained, the corresponding network for f with negative functions is shown in Fig. h. Each gate is the first level corresponds to one of g. 's, and the gate in the second level realizes f as a function of x l' X 2' " * " ' X n' ^l^ * * ' ' g k" In this section, we will discuss how to obtain g , g^, ..., g which satisfy the above requirements. The minimization of the number of gates will be discussed in the subsequent sections. 1U (jj (j 2 > Definition k: A pair of entries c. =1 and c. '" = in a column c. * 1 l l is unallowable with respect to c. , c. , . . . , c. if and only if there X l X 2 X s is no subscript i5(l c. and c. is said allowable due to c. . Note that the column c. is negative with respect to columns c. , c. , .... c. if and only if any pair of entries of c. such that i- i ' i l 12 s (jj) (J 2 ) c. =1 and c. = is allowable, l i Now let us form the negativity table of function f of n variables x , x p , ..., x . The negativity table is constructed according to the following procedure: (1) Exhaust all unallowable pairs of column f with respect to columns x n , x^,, .... x , in the truth 12 n table of f . (2) For each unallowable pair of entries, f(x ) = 1 Jj 2 ) and f (x ) = 0, add a new column e . whose entries J (j ] _) (j 2 ) are e . '" = 0. e . ' = 1 and blank in all other entries. (i.e. e. has exactly two entries which are not blank.) J e . is called a primitive additional col umn of f. 15 For example, the function f shown in Table 1 has three unallowable pair of entries of f, as easily seen. For these three unallowable pairs, three columns e , e p , e are added to the truth table. The negativity- table of f which results is shown in Table 2. f x l X 2 X 3 e l 6 2 e 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 l 1 1 1 1 Table 2 Negativity table of f = y v x p x q '' x i x -3 v x i x p x -5 Because of the way each e . being generated, the next theorem is J obvious. Theerem 3 - Let e , e , ..., e be all the primitive additional columns generated for the negativity table of f of n variables x , x , ..., x . Then f is negative with respect to x n , x_, ..., x , e n , e , ..., e. 1 2' n 1 2 t Another property of negativity table is given next. Theorem k : Each primitive additional column e . of a negativity table J is negative with respect to columns x n , x^, ..., x . 1' 2 n Proof: Assume that e. is added corresponding to the unallowable pair, J Jjn) Jj 2 ) f x ) = 1 and f(x ) = 0, to form the negativity table of f. 16 (j-,) (d 2 ) (jj) Then e. =0 and e. '" = 1, There is no I such that x„ =0 and 3 3 i x„ = 1. Hence there must be a subscript r (l < r < n) such that (jj) (o 2 ) x =1 and x =0. r r (3.2) Condition (3»2) shows that column e. is negative with respect to J columns x.. , x_, . .., x . 12 n QFD. Theorems 3 and k indicate that each e . can be used as a negative J function g. in Fig. k. Of course, this realization needs ( t + l) negative J functions, where t is the number of columns e ., and may not be minimum. J Definition 5 : A column c. is said to cover column c. if and only if for every J entry c. which is specified, d (*.) (in) c. = c. holds. (if an entry of c. is not specified, the above equality does not J necessarily hold.) For example, in Table 3, c, covers c_ but does not cover c . c covers neither c nor c , etc. c l C 2 c 3 1 1 1 1 1 Table 3 Illustration of the covering relation IT The motivation of introducing this concept lies in the fact that if a column g covers a column e . of the negativity table and is negative with J respect to columns x , x p , ..., x , then we can replace e . by g. (i.e. f is negative with respect to x n , x_, .... x , e n , .... e. _,g, e. _. ... e, ^ V 2' ' n' 1' ' j-1 j+1 1 and g is negative with respect to x , x , ..., x .) Hence, if g covers more than one e., all these e. can be replaced by g reducing the number of negative functions in the network as shown in Fig. k. Again, the function f given in Tables 1 and 2 is considered. For this function f, assume the column as shown in Table k. f x l X 2 X 3 M 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Table k Realization of f = x..x v x o x o ^ x "\ x ? i ^ x -| x o x o As easily checked, M is negative with respect to x_ , x p , x and moreover M covers e , e p , e shown in Table 2. Therefore, all the three negative functions e , e , e of variables x , x p , x can be replaced by a single negative function M of variables x.., x , x . Fig. 2 will result by using the negative completion of M (see Table 5 in the next section); M = x 1 v x p ^ x_. 18 In the next section, a systematic generation of the minimum number of negative functions which together cover all of e , e , ..., e, in the negativity table will be discussed. 19 k. Minimum Network by Maximal Compatible Sets Let us begin with a few new definitions. Definition 6: The conjoint of two columns c. and c ., denoted as c„ is defined by the following rule for each r: M =c (r) Vc (r) c. V c ■P, (r) v (r) . . where c. v c. is given by i J 1 1 1 9 1 1 1 The mark ? in the table shows that the operation is not defined. And blank entry denotes unspecified entry. If all entries of c, are defined, (i.e. 1, or blank but not ?) c Xj Xj is said definable . The conjoint of more than two columns can be defined by the following inductive formula: V c. V ... V c. = (« V V X l X 2 1-L i 2 c. ) v L k-1 L k. Definition 7: Two columns c. and c. are compatible with respect to c. , l j i>^ c , . . . , c D if and only if c . V c . is definable and also negative with "p s ^ J respect to c» , c * , ..., c« . Xj-, Xji~\ Xj 1 d- S 20 We will examine the compatibility between each pair of columns, e. and e . , in the negativity table. Definition 8 : Consider a set of columns C. ■ { c. i c. , ..., c. } . (^.l) If and only if every two columns in C. are compatible, with respect to a set of columns B,C. is called compatible with respect to B. A compatible set C. covers a column c.if and only if c. V c. V ... V c. covers c . i j ± 1 i 2 \ 3 C. of (U.l) is essentially c. V c. ^ ...V c. according to the 1 X l X 2 \ following lemma. Lemma 1 C. defined by (k.l) is compatible with respect to a set of columns B if and only if c. ^ c. ^... ^c. is definable and negative with respect X l x 2 \ to B. The proof is trivial and hence omitted. Definition 9 : Consider all the compatible sets with respect to B. A compatible set C. is said maximal if, and only if among these sets, there is no other compatible set with respect to B, which includes C Throughout this paper we will deal with only compatible sets or maximal compatible sets of primitive additional columns e , e , ..., e JL cl u in the negativity table with respect to x_, x p , ..., x . Therefore, we will refer to these simply as compatible sets or maximal compatible sets by dropping the phrase "of primitive additional columns e , e , ..., e in the negativity table with respect to x , x p , ..., x ." 21 For example, e.., e ? and e of Table 2 are pairwise compatible. Hence M = { e , e ? , e } is a compatible set. Obviously this is maximal. The concept of maximal compatible sets is important because of the next theorem. Theorem 5 : There exists a network with the minimum number of gates for a given function f in which every gate represents a negative function and those in the first level represent negative completions of maximal compatible sets. Proof : Consider the negativity table of f. e , e , . .., e, are all primitive additional columns. Assume that the realization as shown in Fig. k is minimum, i.e., k gates in the first level represent g , g_, ..., g and (k+l) is the minimum number of gates which can realize f. Because the last gate represents a negative function with respect to g , g , ..., gL , x , x p , ..., x , any e. in the negativity table must be covered by same -I- £— 11 (J of g . . Now let us suppose that g l COverS e ll' Q 12> ••" e l^ gp covers e 2± , q^, ..., e 2 g k covers e^, e^, ..., e^ k Then since each g. is negative with respect to x , x , ..., x , and covers e. n V e„ V ... V e. . , [e. n , e.^, ..., e.. } is a compatible set for il i2 in. il i2 ' in. °2. 1 i = 1, 2, ..., k (Lemma l) . Therefore for every { e, e, ..., e.. }, J i i = 1, 2, ..., k, it is possible to consider a maximal compatible set which includes {e..,, e.~, ..., e.. }. il' i2' ' in. °i 22 respectively. Let us call them as M_, IYL, . .., M. . Finally we can replace each g. in the network by a negative completion of M. . After this replacement, f is still negative with respect to M_, NL, . .., K, x_, x , . .., x , where M. is a negative completion of M.. This network also gives a minimum network since the new network uses the same number of gates as the network of g , g^, . . . ,a which is minimum. QED. Because of this theorem, the synthesis of a negative function network is done by first generating all the maximal compatible sets and then selecting the minimum number of sets from them, which together cover all the primitive additional columns e , e , ..., e . The generation and selection of maximal compatible sets will be discussed in the next section. Let us consider the previous example given in Table 1. Table 2 is the negativity table of f . We have seen that M = { e , e , e } is the maximal compatible set and no other maximal compatible set exists. M is the one shown in Table k. Now, we can realize f with two gates, one is for M and the other is the last gate which gives f . A negative completion of M, M , is shown in Table 5« Table 5 Completion of M f x l X 2 x 3 * M 1 * 1 1 1 1 1 1 1 1 1 1 1 1 * 1 1 1 1 1 1 1 ' 1 1 1 1 23 The entries of M with stars were newly specified, following the procedure given in the proof of Theorem 2. (All entries were determined uniquely at by cases of (l) and (2) of the proof of Theorem 2.) M is written as M = x. v x v x . Note that f is now incompletely specified if it is regarded as a function of x,, x , x„ and M . A negative completion easily obtained by inspection is f = xx v xx v xx v M . These completions of M and f give the network shown in Fig. 2. The procedure described so far explains how the minimum network of Fig. 2 was synthesized. 2k 5. Generation and Selection of Maximal Compatible Sets Let us start this section with a new example whose negativity table is shown in Table 6. f x l X 2 x 3 e l 6 2 e 3 % e 5 e 6 e 7 1 e 8 1 1 1 1 1 1 1 1 l 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Table 6 Negativity table of f = x.x ? v x i x -5 v x i x ? x -3 From primitive additional columns e , e p , . .., e, specified in a negativity table, we will construct the compatibility matrix of f. The compatibility matrix is a triangular matrix in which columns correspond to e_, e , ..., e, and rows correspond to e , e , ..., e , as shown in Table 7. A cross is entered if e. and e. which correspond to the row and the column of the entry are not compatible. Otherwise it is left as blank. The compatibility matrix of f derived from Table 6 is given in Table 7 • 25 e 2 e 3 % e 5 % e 7 X e 8 X X e l e 2 v % e 5 e 6 e 7 Table 7 Compatibility matrix of X 1 X 2 y X 1 X 3 V X 1 X 2 X 3 The compatibility matrix tells us that all pairs of primitive additional columns e. and e. are compatible except three pairs (e ,e ), (e^eg) and (e 2 ,eg). With the aid of compatibility matrix, we can generate all the maximal compatible sets in the following way. Let us consider primitive additional columns e , e , > V (1) (2) Obtain all the maximal compatible sets of e only. Obiviously there is only one maximal compatible set [e^. Given all the maximal compatible sets M , M , ..., of e n , e~, .... e, (l < k < t-1 ), introduce e. _ 12' k — — k+1 \ and form the sets according to the following rule for each i, i = 1, 2, ..., b. 26 (a) If the set M.U {e _} is compatible, i.e., e n is compatible with every element of M., then form (b) Otherwise let M. "be the set of all the elements of M. which are compatible with e, ., « Then form two new sets: k+1 11 M. = M. , l l ' M i" ■ "i u {e k + i' • (3) Delete all the sets which are included in some other sets generated by (2) above. Note that only M. could be included in other set. The remaining sets are all the maximal compatible sets of e , e , . .., e . {h) Increase k by one. If the new k is equal to t, the procedure is completed, otherwise go to (2) again. In the above recursive procedure, it is not obvious whether all the maximal compatible sets of e_, e , ..., e are generated after completing (3). This will be affirmatively proved in Theorem 6. For illustration let us obtain all the maximal compatible sets of e_ , e^,, .... e 12 o whose compatibility relations are given in Table 7« The generation procedure is illustrated in Fig. 5» 27 Fig. 5 shows that only one maximal compatible set is generated for each k not more than 6, since any two of e_,e , ...,e,- are compatible as seen from Table 7« When e„ is added, two maximal compatible sets result k = 1 2 3 k 5 6 {e 1 } -* {e^e^ -* {e^e^e ) -* {e^e^e^e^} -* {e^e^e^e^e^} -* {e^e^e ,e^,e ,eg} [e l> e 2> e 3>%> e 5> e 6 ] i Q 2 ,e y e k' e 5' e 6' e 7^ te l' e 2' e 3'VV e 6 } {e 2 ,e 3' e ^ e 5 ,e 6 ,e 7 } {e 3' e VV e 6'V e 8 } 7 k = 8 Fig. 5 Generation of maximal compatible sets of f given by Table 6. since procedure 2(b) is applied because of non-compatibility of e with e . Finally for k = 8, three maximal compatible sets are obtained. {e ,e,,e ,e/,eJ is deleted because this is included in {e ,e,,e ,e^,e ,eo)» Theorem 6 : Assume that M_, M_, •••> ^L. are a H ^ ne maximal compatible sets of e., e p , ..., e,» All the sets obtained as a consequence of the above steps (2) and (3) are maximal compatible sets of e ,e , ..., e . -L c. .Kt-L Moreover there is no other maximal compatible set of e , e , ...,e , -, • 28 Proof : To prove that the above procedure generate all the maximal sets, let us assume that M is a maximal compatible set of e , e p ,...,e and is not generated by steps (2) and (3) in the above procedure. M must contain e _ because otherwise M is equal to one of M , M , . .., M, . Let M' be M from which e is deleted. Then M' is included in some of M ,Mp,...,M, because any two elements in M' are compatible. Let M. jz>M' for some i of i = 1, 2, ...b. Then M' must be included in or equal to t ' ' ' M. or M. of step (2). This is a contradiction with the initial assumption that M is maximal and is not generated by steps (2) and (3). Next it is obvious that after step (3) no compatible set which is not maximal remains. QED. Definition 10 : A minimal compatible cover of e , e , ...,e for f is a set of the minimum number of maximal compatible sets such that every e. belongs to at least one of maximal compatible sets chosen. Now note that to find a minimal compatible cover is equivalent to designing a minimal network of negative functions. However, finding a minimal compatible cover is nothing but a set-covering problem which has been discussed in the literature in conjunction with a variety of problems. Let M_,]VL,...,M be all the maximal compatible sets. The covering table is a table, the i th row of which corresponds to e. and the j th column of which corresponds to M.. The (i, j) th entry of the covering J table is 1 if e. is covered by M., and blank otherwise. The set-covering J problem is to find the minimum number of columns so that every row has an entry 1 in at least one of the selected columns. A number of techniques to solve the set-covering problem through the manipulation of the covering table are discussed in [7], for example. 29 Another interesting approach is the integer programming approach. The formulation of a set covering problem "by an integer programming is given in [3][*+L f° r example. Recent computational result shows that some problems which correspond to the cases (30 rows, 50 columns) and (30 rows, 90 columns) are solved in 0.15 seconds and 1.60 seconds respectively on the IBM 3^0/751 computer. The covering table for the above example (Table 6 and Fig. 5) is now shown as an example. Let M x = {e^ e 2 , e , e^, e , e^} V^ = {e 2 , e , e k , e , e g , e } M 3 = {e 3 ' %> e 5 > %> V S 8 } Then the covering table is: M l Mg M 3 e l 1 6 2 1 1 e 3 1 1 1 % 1 1 1 e 5 1 1 1 e 6 1 1 1 e 7 1 1 e 8 1 Table 8 Covering table of the example given by Table 6 and Fig. 5* * The correspondence is not exact in the sense that the matrices are generated randonly and may not represent switching functions. 30 Obviously IVL and IVL constitute the minimal compatible cover of e ,e p ,...,en which is unique in this particular example. When IVL and M are considered as functions of variables X-^x^x , *■ -*■ their negative completions M , M are given in Table S. f x l X 2 x 3 -* "l -* M 3 1 1 1 1 1* 1 1 1 1 1 0* 1 1 1 1* 1 1 0* 1 1 1 1 1 1 1 1 Table 9 Completion of VL and M -x- * M and M are written as M l = x l x 3 M = x ± v x^ . The minimum network of f using M and M as gates in the first level is given in Fig. 6. 31 _* _■*,__ f = M 3 v M^ (x^ ^ 5^x 3 ) Fig. 6 A minimum network of f given by Table 6. Up to this point, an entire procedure to obtain a minimum network with a single output has been presented. Next two sections will deal with a case in which multiple outputs are required and some topics related to the minimization of the number of connections and interconnections. 32 6. Minimum Multiple Output Networks One of the advantages of our approach is that it can he easily extended to the synthesis of a mutiple output network. When we are to realize more than one non-negative function , only necessary modification is that primitive additional columns e. are generated in the negativity table for each given function. The rest of procedure, i.e., the generation of maximal compatible sets, the selection of a minimal compatible cover and the completion of each selected maximal compatible set, is exactly the same as that discussed so far. The procedure will also result in a network with the minimum number of gates. Let us obtain a minimum network of two functions: f l " X 1 X 2 v X 1 X 3 v X 1 X 2 X 3 f 2 = X] ,x 2 - Xl x 3 - x 2 x 3 . (1 (2 (3 (k (5 (6 (7 (8 f l f £ x l X 2 X 3 e l 6 2 e 3 % e 5 e 6 e 7 e 8 e 9 *• "l -* M 3 1 1 1 1 1 1 1 1 1 1 1* 1 l 1 1 1 1 1 l 0* 1 1 1 1 1* 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 l 1 l 1 2 2 • 2 2 Table 10 Negativity table of f and f * When some of functions to be realized are negative, the synthesis would be simpler. In other words each function can be realized by a single gate. Furthermore, the outputs of gates for these negative functions can be used as inputs to other gates which are to realize non- negative functions. The modification of algorithm required is straightforward, however, and will not be given here. 33 The entries given underneath primitive additional columns e , e , ...,e L d y in Table 10 show from which of f and f the primitive additional column is generated. For example, the column e.. is generated from both f and f p . The compatibility matrix is shown in Table 11. The generation of all the maximal compatible sets is also shown in Fig. r J. e 2 e 3 % e 5 e 6 e 7 e 8 X e 9 X X X e l 6 2 e 3 e u e 5 % e 7 e 8 Table 11 Compatibility matrix of f and fp 3^ {e^ -* (e^eg) - ... -* [e^e^eye^e ,e^,e ) ¥ (e l ,e 2 ,e 3'W e 6 ,e 7 ] 9 ] (e 1 ,e 2 ,e 3 ,e u ,e 5 ,e 6 ,e 7 ] - _^ {eTT^zS^J {e 2 ,e 3 ,e^,e 5 ,e 6 ,e 7 ,eg} M 2 ={e 2 ,e 3'V e 5 ,e 6 ,e 7 ,e 8 } M 3 ={€ VV e 6'V e 8' e 9 ] Fig. 7« Generation of maximal compatible sets of f and f Minimal compatible covers can be determined in the same way as the single output network problem. The covering table consists of 9 rows corresponding to e ,e , ..., e and 3 columns corresponding to M_,M and M_. The minimal compatible cover for this problem is tM^M^J . Negative completions of M and M are also shown in Table 10. M_ and M_ are written as * "l~3 M. * M = x x v x 2 . ■i and M 3 A minimum network of f , and f„ obtained from those M_ and M is given in Fig. 8. f p does not require 35 X X X x 2 x. J M* - »- Y_ > 1 "l "J. "3 3 i 3 M ! = X;L -x 2 X l ■ ■ ^ J 2 3 „ f 2 = M* (£gV x ) f x = M* sy M* (X-jXg N/ XgX ) Fig. 8 Minimum network of f and f M because all the primitive additional columns e ,e p ,e ,e.,e^ generated from f _ can be covered by a single maximal compatible set M . (A more rigorous discussion will be found in the next section. ) 36 (e^ -* [e lf e 2 ) -* ... ■* {e^egje^e^e^e^e ) ■* [e lf e 2 ,e f e^,e ,e^,e^) M^U^ V e 3' %' V %> e 7^ ( e 2 , e^, e^, e,_, eg, e^, eg} M 2 ={e 2 ,e 3 ,e u ,e 5 ,e g ,e T ,e 8 ) M 3 ={e V e 5 ,e 6 ,e 7 ,e 8 ,e 9 } Fig. 7« Generation of maximal compatible sets of f and f Minimal compatible covers can be determined in the same way as the single output network problem. The covering table consists of 9 rows corresponding to e , e p , ..., e and 3 columns corresponding to 1YL,M and M_. The minimal compatible cover for this problem is IM-^M^J • Negative completions of M_ and M are also shown in Table 10. M.^ and 1VL are written as * V3 M. M = x x v x 2 . '1 and M 3 A minimum network of f„ and f„ obtained from those VL and M is given in Fig. 8. f p does not require 35 X x 2 X 3 — M"* — V"- Y_ 11 > 1 "l -JL "3 3 i 3 M 3 = x 1 ^ ic 2 x l x 2 .> J 3 > f 2 = % ( *2 V S } ^ = M* sy M* (x x x 2 v a^x ) Fig. 8 Minimu.ii network of f and f M "because all the primitive additional columns e ,e p ,e ,ei , e^ generated from f p can be covered by a single maximal compatible set M . (A more rigorous discussion will be found in the next section. ) 36 7. Some Considerations on the Reduction of Interconnections . Although we can minimize the number of gates in a network by following the method presented so far, no consideration was given on the minimization of the number of interconnections. The overall minimization of the number of interconnections (between the first and second levels) and connections of inputs to the first and second levels (from variables x , x , . .., x ) seems difficult at present unless we exhaust all the possible networks and then pick up the best one among them. Here we will discuss two cases in which the number of interconnections and connections can be minimized in a restricted sense. One is minimizing the number of interconnections between the first and second levels, when designing a multiple output network. The other is the minimization of the number of connections from variables x.. , x«, .... x 1' 2' ' n fed to the first level. Let us consider the former problem. The minimality criterion is to find a network with the minimum number of interconnections between the first and second levels among those with the minimum number of gates. Note that we are not concerned about the number of connections fed from the external variables x n , x n , ..., x . 12' ' n The problem is trivial if the network has a single output, because it is then the same as minimizing the total number of gates in the network. The following property is useful for our problem. Theorem 7 : Under the minimality criterion as stated above, there is a minimum network in which each gate in the first level represents a negative completion of maximal compatible set. 37 The proof is similar to that of Theorem 5. This theorem enable us to limit our consideration only to maximal compatible sets. Before discussing the whole scheme of minimization, assume that a minimal compatible cover for functions f , , f p , ... f which are to be realized is already determined by the method described in Section 6. The minimal compatible cover consists of maximal compatible sets, M-.,Mp, ..., M . Then in the negativity table of f , , f~, ... f , it is shown which of primitive additional columns e. are necessary for each function f . (see the bottom row of Table 10). Every primitive additional column must be covered by some of maximal compatible sets chosen above. However, some function f . may not require all the primitive additional columns for f . to J J be negative and therefore some of maximal compatible sets may be omitted for f.. Assume that e , e , ..., e , j = 1, 2, ..., q, are necessary J in order for f . to be negative. The interconnections from the first J level to the output gate for each f . can be minimized by selecting the minimum number of maximal compatible sets out of the minimal compatible cover {1VL, 1VL, ..., M } chosen for f . , f p , ..., f , such that each e . ., 1 < £ < k., is covered by some of selected maximal compatible sets. Apply this process for j = 1, 2, . . . , q. This is again a set-covering problem and can be solved similarly. If the minimal compatible cover is unique, the network obtained above is the minimum network in the present sense. Otherwise, we have to apply the above procedure to every minimal compatible cover and then find the best one among those obtained. This procedure is not so inefficient as it appears. 38 Consider the example given by Table 10. This example has the unique minimal compatible cover (M , M }. First consider f . It requires primitive additional columns e , e , e., e , e^, e , e^, e Q for f to be negative as shown in Table 10. This means that f needs both M and M„ to cover those 8 primitive additional columns. On the contrary, f needs only e , e , e , e, , e^ in order to be negative, and these e. are all included in one maximal compatible set M_ = {e_, e , e„, e, , e,_, e^, e„} l 1 d $ 4 p o ( * - - In fact, the realization of Fig. 8 shows that f p uses only M = x x„ although f uses both NL = x x and M = x_ ^ x . Next the same problem is formulated as an integer programming problem. Although the formulation seems neater than that given above, probably it will take more computation time, judging from the present status of integer programming. Let us assume that M , IVL, ..., M are all the maximal compatible sets for f , f p , ..., f . Each f . requires primitive additional columns e. n , e „, ..., e .. in order to be negative. Let us introduce zero-one jl' jd Jk^. variables € . ., 3 = 1> 2, . . . , q, i = 1, 2, . . . , p € assumes 1 if M. is selected and actually used to cover some of e._, e ._, ..., e ., J for f ., and otherwise. Then prepare Table 12, by filling 1 in the entry J a, „,, . if e .is included in M., otherwise, and a, „ .. = if k J= j. kiki ki i &£, ji ' Let us denote the matrix of these entries with A. Then consider the set q of 2k. inequalities with p»q variables £.. d=i 3 J1 A € > 1 . (7.1) 39 1 for f for fg for f € 11 € 12 •*• e lp € 21 € 22 '•* G 2p ■ • • € ql e q2 • " € qp e ll 6 12 • A^ • * • X e 21 e 22 A< 2 > • • • 6 2k 2 • ! • • • • • • • • • • • • • V V • • • A («) • I >1 'qk &. Table 12. Illustration of integer program for minimization of interconnections. This set of inequalities (7-1) requires that each e^ be covered by at least one of M. which are to be selected. Note that I e.. represent i=l Ji the number of interconnections from the first level to the last gate for f J 1+0 Let us introduce new zero-one variables X., i = 1, 2, . .., p, such that g. s 6 -H < q. • V i = 1, 2, ..., p. (7,2) j=l J Then if one of £.., j = 1, 2, ..., q, is 1, i.e., M. is selected to cover some e . g , then A., must assume 1. Otherwise (7*2) is not restrictive. With these preparation, let us solve a integer linear programming (7.1) and (7*2) with the minimization of U Z \. + Z Z £.., i=l i i=l j=l J1 where U is a sufficiently large positive number such that U > p q. It primarily minimizes Z X. which represents the number of maximal compatible sets actually used, and secondarily minimizes Z Z €.. which is the total number of interconnections between the first level and the second level. Obviously, this is exactly the same minimality criterion as we have discussed before. At present no computational experience has been obtained for this integer program. Next let us discuss another minimization problem. For this problem, assume that we have already determined a minimal compatible cover for a given function (or functions). Each maximal compatible set will define a negative function of variables x , x , ..., x which is then implemented as a gate in the first level. in Here we minimize the number of variables actually used for these gates, i.e., the total number of connections fed to the first level, assuming that maximal compatible sets for those gates in the first level are given. Contrary to the previous minimization problem, this assumption is necessary because compatible sets which are not maximal may reduce the number of connections further. However, the development of algorithm which eventually yields the network of the minimum number of interconnections and connections seems difficult at present. In this sense, the present procedure gives only an approximate solution to the problem. Now let us consider a maximal compatible set in the given minimal compatible cover (the negative completion are not obtained yet) and the corresponding incompletely specified negative function g of variables x l' X 2* * * * ' X n* Each pair of entries g =1 and g = are allowable because g is assumed to be negative. Denote all such pairs of entries as P , P^, ..., P . Each pair P. is allowable due to x. n , x >r ,, ..., or x., 2' ' u ^ l il' i2' ' lk. l (see Definition k) . Then the determination of the minimum number of variables for g is to select the minimum number of variables such that every P., i = 1, 2, ..., u, is allowable due to these selected variables. This is also a set-covering problem and therefore can be solved, though the detail is not given. This set-covering problem should be solved for every maximal compatible set corresponding to a gate in the first level. k2 As an example, consider the maximal compatible set M„ derived •* from M_ of Table 9> by deleting the entries with stars. Table 11 shows the covering table of this problem. Each row represents a pair of entries P. and each column represents a variable x.. (For the above example, each pair is specified by a pair of row numbers of the column M_. ) The (i, j)th entry of the table is 1 if P. is allowable due to x., and blank otherwise. Table 13 . Covering table for the determination of the minimum number of inputs to M_ derived from M of Table 9« P. 1 x l X 2 X 3 (1.7) l (1.8) 1 1 (3-7) 1 1 (3.8) 1 (k.l) 1 (h.Q) 1 (6.7) 1 (6.8) 1 Table 13 shows that we need only x.. and x to realize M as a negative function of x , x , x . In fact, function M = x v- x in Fig. 6 needs only x, and x . ^3 Determination of inputs to the output gate can also "be, done similarly. In this case, however, we know the negative functions which are fed from the first level. Therefore, in determining external variables which are connected to the output gate, we need not consider pairs of entries which are already allowable due to those. The subsequent manipulation should be applied on this shrinked covering table. kk 8. Conclusion The minimization of the number of gates in the network in which each gate can represent only negative function was converted into a set- covering problem. Since the set-covering problem is rather easy to solve, this approach appears helpful in obtaining such networks. Although some attempts are made, the minimization algorithm of the total number of interconnections and connections is still an open question. It would be a direction of the future research to develop algorithms based on the other minimality criteria, such as the number of interconnections and connections? the total cost of gates which is evaluated differently from the number of gates, and also the extension of the approach in this paper to more general cases such as feed-forward networks. ^5 REFERENCES (1) S. B. Akers, "A truth table method for the synthesis of combinational logic, " IRE Transaction on Electronic Computers, vol. EC-10, no. k, pp. 60^-615, December 1961. (2) S. B. Akers, "Synthesis of combinational logic using three-input majority gates," Proceedings of the third annual symposium on switching circuit theory and logical design , pp. 150-157, October 1962. (3) M. L. Balinski, "Integer programming: methods, uses, computation," Management Science, vol. 12, no. 3* PP« 253-313* November 1965* (k) A. Cobham, R. Fridshal and J. H. North, "An application of linear programming to the minimization of Boolean functions, " Proceedings of the second annual symposium on switching circuit theory and logical design , pp. 3-9> October, 1961. (5) E. N. Gilbert, "Lattice theoretic properties of frontal switching functions, " Journal of Mathematics and Physics , vol. 33* PP« 57-67* April 195^. (6) T. Ibaraki, T. K. Liu, C. R. Baugh and S. Muroga, "An implicit enumeration program for zero-one integer programming, " Report no. 305* Department of Computer Science, University of Illinois, January 1969* (7) E. J. McCluskey, Introduction to the theory of switching circuits, McGraw-Hill Inc., New York, 1965. (8) S. Muroga, Threshold logic , Lecture notes for EE 1*97 and EE U98, Department of Computer Science, University of Illinois, I965-I966. (9) E. Thomas and J. D. Call an, "Slow, but small, may win the race," Electronics , vol. 1*0, no. k, pp. 179-182, February 20, 1967. (10) Y. T. Yen, "A mathematical model characterizing four-phase MOS circuits for logical simulation," IEEE Transaction on Computers, vol. C-17, no. 9, pp. 822-826, September 1968. 1*6 ,s* v ^J>