LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN 510.84 U6r no. 7J5-72I cop. Z Digitized by the Internet Archive in 2013 http://archive.org/details/alternativemetho720hohu lit. 72$ UIUCDCS-R- 75-720 7r~*u£g 1 ALTERNATIVE METHODS FOR SOLVING THE CC-TABLE IN GIMPEL* S .ALGORITHM FOR SYNTHESIZING OPTIMAL THREE LEVEL NAND NETWORKS by Keith R. Hohulin Saburo Muroga April, 1975 DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN URBANA, ILLINOIS 2ME LIBRARY OF. THE UNIVERSITY Of ILuNOIS •t MRaANA-OMMPAION UIUCDCS-R-75-720 ALTERNATIVE METHODS FOR SOLVING THE CC-TABLE IN GIMPEL' S ALGORITHM FOR SYNTHESIZING OPTIMAL THREE LEVEL NAND NETWORKS by Keith R. Hohulin Saburo Muroga April, 1975 Department of Computer Science University of Illinois at Urbana- Champaign Urbana, Illinois 6l801 This work was supported in part by the National Science Foundation under Grant No. GJ-40221. TABLE OF CONTENTS Page 1. INTRODUCTION 1 2. THE CC-TABLE 2 3. ALTERNATIVE METHODS FOR SOLVING THE CC-TABLE 5 3.1 Ordering the Alterms 5 3.2 Methods 1 through 5 7 3.3 Methods 6 through 8 12 3. k Additional Remarks l6 h. COMPUTER EXPERIMENTS 17 ACKNOWLEDGEMENT 26 REFERENCES 27 CHAPTER 1 INTRODUCTION A classic paper by J.F. Gimpel entitled "The Minimization of TANT Networks" [l] details the theory of an algorithm which synthesizes optimal TANT (three level AND-NOT (NAND)) networks with a minimum number of gates (the number of connections is not necessarily minimized) under the assumption that only the uncomplemented switching variables are available as inputs to the networks. The most time-consuming calculation in Gimpel' s algorithm, which is an important contribution to NAND (or NOR) network design, is obtaining the solution to the CC-table (defined in Chapter 2). When the number of variables of a switching function increases, the computation time for this portion determines the applicability of Gimpel' s algorithm. (A similar difficulty occurs when a minimal sum for a switching function is to be obtained from a prime implicant table by Petrick's method (e.g., see [3]). Multiplying out Petrick's function is very time-consuming, though it appears simple at first glance. ) Because the CC-table can be solved in a number of ways, Gimpel' s algorithm can be implemented in computer programs in many different ways. A brief description of the CC-table and the straightforward algebraic approach for finding its solutions is given in Chapter 2. Chapter 3 describes several alternative methods of solution for the cc-table and provides an example which illustrates the differences among these methods. Finally, Chapter k contains the results of implementing the various methods into a computer program and running some test functions on the IBM 360/75 at the University of Illinois. CHAPTER 2 THE CC- TABLE In his paper [l] G-impel presents a series of definitions and theorems which lead, ultimately, to the formation of a cover and closure table (CC-table) for a given switching function, f. In general a CC-table is a rectangular matrix of dots, X's and blanks such that each column has at least one X and at most one dot. Columns with no dots are called cover columns while columns with a dot are called closure columns . A row having an x entry in a column is said to cover that column and a row with a dot in a column is said to imply that column. A set of rows Z is said to be a cover if every cover column is covered by some row of Z. A set of rows Z is said to be closed if every column implied by a row of Z is covered by some other row of Z. A closed cover with the minimum number of rows in a CC-table yields a solution to the minimization problem of TANT networks. Fig. 2.2 shows the CC-table for the function represented by the Veitch map in Fig. 2.1. This table is actually a reduced form of the original CC-table for this function. That is, an initial CC-table was formed and then several reduction techniques developed by Gimpel were applied to it to eliminate some rows and/or columns. The arrangement of this table allows a distinction to be made between "left columns" and "right columns" as well as "upper rows" and "lower rows". In Fig. 2.2 columns (l)— (6) and (7)— (17) a ^e the left and right columns, respectively, A 1 1 1 1 1 1 1 1 Fig. 2.1. The Veitch map for a function used to illustrate the CC -table. (1) (2) (3) (h) (5) (6) (7) (8) (9) (10)(11)(12)(13) (110(15) (16) (17) a X X • • b X • c X • • d X X • e X X f X g X • h X ' • • i X X J X X k X X X I X X X m X X X X n X X X o X X Fig. 2.2 A reduced CC-table for the function in Fig. 2.1. while rows a — h and i — o are the upper and lower rows, respectively. The solutions of the CC-table in Fig. 2.2 are the minimal TANT networks for the function in Fig. 2.1. The straightforward algebraic method for solving a CC-table is summarized as follows [2]: for each column (u) of the table, a switching equation is written in the form 7 Q v r 1 v ... ss 7y = 1 (A) where r n is the variable associated with the row that has a dot in column u (if column (u) does not contain a dot, the term y is not contained in (A)) and y 1 , ..., y are the variables corresponding to the rows with x' s in column u. For example, the equation for column (11) in Fig. 2.2 is c vi vO = 1. It is convenient to use the notation ( j ) to refer to both the j th column of the CC-table and the alterm corresponding to that column (i.e., (ll) will be used to represent alterm (c v i v 0)). The requirements of the entire CC-table can be represented in a single switching equation by forming the logical product of the equations of the form (A) for all of the columns in the CC-table ( (l) (2) (3). . . (17) for the CC-table in Fig. 2.2.). This single equation is multiplied out into an irredundant disjunctive form. The solutions to the table are the terms of the irredundant disjunctive form which contain the smallest number of uncomplemented variables . CHAPTER 3 ALTERNATIVE METHODS FOR SOLVING THE CC-TABLE 3.1. Ordering the alterms. The most straightforward approach for solving the CC-table is to multiply out the alterms in the same order as they are formed from the CC-table. For the example in Fig. 2.2 this order is simply (l)(2)(3)(^) (5)(6)(7)(8)(9)(lO)(ll)(l2)(l3)(li+)(l5)(l6)(l7). First, alterms (l) and (2) are multiplied together and the result can be represented by ((l)(2)). Next, ((l)(2)) is multiplied by (3) to get ( ((l) (2)) (3) ). This process is repeated until all of the alterms have been multiplied together. For functions with a large number, say M, of alterms, the number of terms in the j th partial product can become quite large as j approaches M where the j th partial product is the result of multiplying out the first j alterms. To some extent the large size of the partial products is un- avoidable. However, the above ordering of alterms does not take advantage of the fact that multiplying two alterms which have some common literals will result in a smaller number of terms than multiplying two alterms with the same number of literals as before but with no common literals. That is, by rearranging the order of the alterms so that alterms with common literals are adjacent, the number of terms in the partial product may be greatly reduced. Two such orderings were tried. In both cases the alterms corresponding to the left columns of the cc-table are ordered separately from the alterms corresponding to the right columns. Also, only the uncomplemented literals in the alterms (i.e., the X's in the table) are considered. The two orderings are: ORDERING 1: Assume that k alterms have been ordered (initially k = l). Search the alterms to the right of (k) and select all the alterms (say (j 1 ), (j 2 )-, . .., (j ) where j ± < j g < ... < j ) which contain at least one literal in common with (k). Then interchange alterms (k+l) and (j ), (k+2) and (j ? ), . .., and (k+p) and (j ). Of course, if there are no such (j.)> then p is zero and no interchanges are made. Set k to b + p + 1 and repeat until all of the alterms are ordered. The result of applying this ordering to the table in Fig. 2 is as follows: (1)(^)(3)(2)(5)(6)(7)(13)(1^)(10)(12)(8)(16)(9)(17)(H)(15). ORDERING 2: Assume that k alterms have been ordered (initially k = 0). From the alterms to the right of (k), choose the alterm with the largest number of literals and interchange it with alterm (k+l). Then, from the alterms to the right of (k+l), choose the alterm which has the largest number of literals in common with alterm (k+l) and interchange it with alterm (k+2). If no alterm has any common literals with alterm (k+l), then no inter- change is made with alterm (k+2). Set k to k + 2 and repeat until ' the ordering is complete. Appling ORDERING 2 to the table in Fig. 2 gives (4)(1)(5)(6)(3)(2)(11 + )(13)(9)(1T)(H)(15)(16)(12) (7)(8)(10). 7 3.2. Methods 1 through 5. The CC-table in Fig. 3*2.1 will be used as an example to illustrate the calculation done by each of the methods discussed in this chapter. For each method the terms representing the solutions are under- lined in the final expression. (1) (2) (3) (*0 (5) (6) (7) (8) a — — — X X b X • c X X X • • d X X e X X • f X X X g X X Fig. 3*2.1 The CC-table used in the example. Each of the methods in this section uses a different approach for multiplying out the products of sums formed from the CC-table. However, all of the methods in this section multiply together all of the alterms to get the desired irredundant disjunctive form. A completely different approach is presented in Section 3«3» METHOD 1: This is the straightforward method of calculation which was discussed at the beginning of Section 3-1. This method yields the following calculation for the CC-table in Fig. 3.2.1. (i)(2)(3)00(5)(6)(7)(8) (avd)(bvcve)(cvdve)(avc)(bvf)(cvg)(cvf)(evfvg) = (abvbdvacvcdvaevde)(cvdve) ... (evfvg) (acvcdvbdvdevae)(avc) ... (evfvg) (ac vabd vae vcd)(b vf ) ... (evfvg) = (abc vabe vbcd vacf vabdf vaef v cdf ) (c vg) ... (evfvg) (abce v abcdf vacefvabcgvabeg vbcdg vacf g vabdf g vaef gv cdfg) (cvf)(evfvg) (abce vabcdf v acef v aefg v abdfg v aefg v cdfg) (e vf vg) ( abcdf v acef v acf g v abdfg v aefg v cdfg v abc eg ) METHOD 2: ORDERING 1 is applied to both the left alterms (the alterms formed from the left columns) and the right alterms (the alterms formed from the right columns). The alterms are then multiplied out in exactly the same way as in METHOD 1. Applying METHOD 2 to the CC-table of Fig. 3.2.1 yields the following calculation: (D(3)0O(2)(5)(7)(8)(6) (avd)(cvdve)(avc)(bvcve)(bvf)(cvf)(evfvg)(cvg) (ac v d v ae) (a v c) ... (cvg) = (ac vad v ae v cd) (b v c v e) ... (cvg) = (abd v ac v cd vae) (b vf ) ... (cvg) (abc vbcd vabe vabdf vacf vcdf vaef ) (cvf) ... (cvg) (abce vabdf vacf vcdf vaef ) (evfvg) (c vg) (abdf vacf v cdf vaef vabceg)(c vg) (ab~df v acef v abceg v abdfg v acf g v cdf g v aefg ) METHOD 3: . ' ORDERING 1 is applied to both the left and right alterms. < The alterms are then multiplied in pairs to get a set of partial products. These partial products are then multiplied out in order from left to right to obtain the solutions. METHOD 3*: The CC-table is solved in exactly the same way as in METHOD 3. However, two other changes were made to the program which was used to implement METHODS 1, 2 and 3. First, when two alterms (i) and (j ) are multiplied together to form the partial product ((i)(j))> "the a^ab = a rule may allow some terms to be eliminated from the partial product. The program for METHODS 1, 2 and 3 always checks a newly formed partial product to see if any terms can be eliminated. However, it is clear that if alterms (i) and (j) have no common literals, then no terms can be removed from the partial product ((i)(j)). The program was changed so that a new partial product is not checked to see if any terms can be eliminated if the alterms (or partial products) which formed the new partial product have no common literals. Second, the procedure for removing the terms which can be eliminated from a partial product was changed. The two changes to the program discussed in the description of METHOD 3' are included in METHODS k and 5 of this section as well as METHODS 6, 7 and 8 of Section 3.3. The calculation below shows the result of applying METHODS 3 and 3' to Fig. 3.2.1. 10 (1)(3)(*0(2)(5)(7)(8)(6) (a v d)(cvdve)(avc)(bvCve)(bvf)(cvf)(evfvg)(cvg) = (acvdvae) (ab ^c v-ae) (be vf)(ce v cfvg) = (abdvacvcdvae)(kvf)(cevcfvg) (abce^abdf vacfv cdf vaef) (cevefvg) = (abedf vacef vabceg vabdfg vacfg v cdfg ^aefg) METHOD k: ORDERING 1 is applied to both the left and right alterms. From the description of ORDERING 1, it is clear that the alterms will be rearranged into groups of one or more alterms which have at least one literal in common with the leftmost alterm of the group. The alterms in each group are multiplied together to get a set of partial products. The partial products are then multiplied together in order from left to right. METHOD k applied to Fig. 3.2.1 yields (1)(3)00(2)(5)(7)(8)(6 ; ) (a v d)(cvdve)(avc)(bvCve)(bvf)(cvf)(e v fvg)(cvg) = (ac vadvae v cd)(bvCve) (bee v f vbcg)(c vg) (abdvacvcdvae)(bcevf vbcg)(cvg) = (abdf vaef vedf vaef vabceg )(cvg) (abedf v/acef v abc eg vr abdfg vacfg v cdfg vaef g) 11 METHOD 5: ' ORDERING 1 is applied to the left and right alterms. The alterms are then multiplied in pairs to get a set of partial products. These partial products are also multiplied in pairs to get another set of partial products. This process is continued until at the last step the final two partial products are multiplied together to obtain the solution. In other words, pairwise multiplication is used throughout the calculation. METHOD 5 applied to Fig. 3*2.1 yields U)(3)0O(2)(5)(7)(8)(6) (a v d)(cvdve)(avc)(l)vCve)(l)vf)(cvf)(evfvg)(cvg) (ac\/d\/ae)(a'b\/C\/ae)(bcsyf)(ce\/cfvg) (acvabdvcdvae)(bcevcfvbcgvfg) (abcdf v acef s/ abceg -^ acfg ^abdfg^ cdfg vaefg) 12 3.3. Methods 6 through 8. The organization of the CC -table for the minimization problem of TANT networks which allows a distinction between left and right columns as well as upper and lower rows (as discussed in Chapter 2) suggests an alternative approach for solving the CC -table. In this approach the sums of literals formed from the left columns are multiplied together to get a partial product. For each term ex in the partial product, only the alterms formed from the right columns which have dots in rows which are represented by literals in a need to be multiplied out and the resulting terms concat- enated with a to form closed covers for the CC -table. The complemented literals which represent the dots are not included in these alterms since the terms they would be in when concatenated with a would result in a term of the form xxp. Following this procedure for each a will yield all of the closed covers for the CC -table. As an example, consider Table 2.2. Multiplying together the alterms formed from the left columns ((avc)(h)(g)(a v bvd)(dve)(evf)) results in the partial product aegh vadfglwbcegh v cdegh\/cdfgh. Take a = bcegh. Since row b has dots in columns (9) and (10), row c in (11) and (12), row g in (l^) and row h in (15), (l6) and (17), the following alterms must be multiplied together: (kvn), (m), (ivo), (m), (jv^^n^o), (i), (j vm) and (k). Multiplying these alterms together yields ijkms/ik^m v ikmn vikmo. Concatenating these terms with a yields bceghijkm, bceghikik, bceghikmn and bceghikmo which are terms in the irredundant disjunctive form representing the solution to Table 2.2. A more detailed description of this approach is given below. 13 METHOD 6: ' STEP 1: Apply ORDERING 1 to the alterms formed from the left columns and then multiply them together in order from left to right (in the same manner as METHOD 1 multiplies alterms) to get a partial product. STEP 2: For each upper row, v, of the CC -table, form the alterm (without the complemented literal) for each column which has a dot in row v. Multiply these alterms together in order as in METHOD 1 to get a partial product. STEP 3: For each term in the partial product formed in STEP 1, select the necessary partial products from STEP 2. If literal v appears in the term from STEP 1, then the partial product formed by multiplying together the alterms corresponding to the columns with dots in row v is necessary. These necessary partial products are then multiplied together to get a new partial product. STEP k: Each term in the partial product formed in STEP 1 is juxtaposed with every term of the corresponding partial product in STEP 3 to form the closed covers of the CC-table. Applying METHOD 6 to Fig. 3.2.1 yields STEP 1: (l)(3)(U)(2) (avd)(c\/dve)(aN/c)(bvCve) (ac vdvae)(a v c)(bvCve) (ac vadvaevcd)(bvCve) (abd vacvcdvae) 1U STEP 2: row b: (f ) row c: (fg) row e: (fvg) STEP 3: aba: (f ) ac: (fg) cd: (fg) ae: (fvg) STEP k: (abdf vacfg^cdfgvaef vaeg) In the program which implements METHODS 1 through 6 a pair of computer words is. used to represent each alterm formed from the CC-table. In the first word of the pair, the j th bit from the right is set to 1 if the corresponding column of the CC-table has an X in row j. Likewise, if the column has a dot in row i, then the i th bit from the right of the second word of the pair is set to 1. Since the leftmost bit of each word is used as a flag bit, the use of the above representation means that the program connot solve CC-tables which have more than 31 rows since the length of a computer word is 32 bits for the machines used. This restriction is valid for METHOD 1 through METHOD 6. However, in METHOD 6 the alterms corresponding to the cover columns and those corresponding to the closure columns ,are multiplied together separately. Furthermore, the alterms for the closure columns do not contain the complemented literals which correspond to the dots in the CC-table. This suggests the use of a new storage representation. A pair of computer words is still used to represent each column of the CC-table. For a cover column the first word of the pair has a 1 in the j th bit from the right if the column is covered by- row j. All bits in the second word are set to 0. For a closure column 15 the first word has a 1 in the j th bit from the right if the column is covered by row M + j where M is the number of upper rows. The second word of the pair has a 1 in the kth bit from the right if the column is implied by row k. Only the first words of the pairs are used as the alterms to be multiplied together. The second words are used to determine which alterms are to be multiplied together according to the algorithm of METHOD 6. This storage representation allows CC -tables with a maximum of 31 upper rows and a maximum of 31 lower rows to be solved without increasing the the number of computer words necessary to represent the CC -table. METHODS 7 and 8 employ this storage representation along with the algorithm of METHOD 6. METHOD 7: This is just METHOD 6 with the following step replacing STEP 1. STEP 1: Apply ORDERING 1 to the alterms formed from the left columns and then multiply them together pairwise in the same manner as METHOD 5. METHOD 8: This is just METHOD 7 except that ORDERING 2 is used in STEP 1. The application of METHODS 7 and 8 to Fig. 3.2.1 is shown below. METHOD 7: STEP 1: (l)(3)( 1 +)(2) - (avd)(cvdve)(avc)(bvCve) = (acvdvae)(abvcvae) = (abdvacvcdvae) STEP 2: row b: (f ) row c: (fg) row c: (f sy g) 16 STEP 3: STEP k: abd: ac : cd : ae : (f) (fg) (fg) (fvg) (abdf v ac.fg v cdfg v aef v aeg) METHOD 8: STEP 1: STEP 2: STEP 3: (2)(3)(DCO (bvCve)(cvd v e)(avd)(a v c) (c vbd ve)(a v cd) (ac v/ abd vae v cd) row b: (f ) row c: (fg) row e: (fvg) ac : abd: ae : cd : (fg) (f) (f-g) (fg) STEP h: ( acfg v abdf v aef v aeg v cdfg ) IT 3.U. Additional Remarks. The calculations in Sections 3*2 and 3.3 illustrate the differences among the various methods. For this particular example the computation for each method is different from those for the other methods. This is not true in general since for some CC -tables ORDERING 1 and/or ORDERING 2 may not cause any alterms to be interchanged or ORDERING 1 and ORDERING 2 may be identical. At first glance it might appear that the final expression for METHOD 1 through METHOD 5 is not the same as the final expression for METHODS 6, 7, and 8. However, it must be remembered that only the uncomplemented variables are considered in finding the solutions from the final expression. If the uncomplemented variables are removed from the final expression for METHODS 1 through 5 a nd if terms which satisfy the realtion x^xy = x are then removed, the result is the final expression for METHODS 6, 7, and 8. Thus all of the final expressions are consistant. Of course, all of the methods give the same solutions. 18 CHAPTER k COMPUTER EXPERIMENTS Table k.l and Table k.2 show the results of incorporating the methods described in Chapter 3 into a computer program and running some four and five variable functions on the IBM 360/75 at the University of Illinois. The output column in the truth table for each function is expressed in a hexadecimal number in these tables. Also the number of columns in the CC-table is shown. The purpose of these experiments was to determine what effect the various methods would have on the computation time required to solve the CC-table. The numbers shown in the tables under each method are the computation times (in seconds) which were required to solve the CC-table for the corresponding functions. Computer system sub- routines were used to provide the computation times'. All of the FORTRAN subroutines in the program were compiled in FORTRAN G. Functions 1 through 5 of Table k.l were included to determine the effects of METHODS 2 through 8 on functions for which METHOD 1 requires a very short calculation time. The results in Table k.l indicate some fluctuations in the computation times for these five functions for some of the methods. However, no significant increases or decreases in the computation times are apparent for these five functions. Functions 6 through 12 have CC-tables which require much longer computation times for solution by METHOD 1. Table k.l shows that METHODS 2, 3, and 5 result in fairly significant {k^°j or better) reductions in the computation time for all of these functions except 10 and 11 while METHOD k shows little or no improvement for functions with a larger number of columns. Both functions o H H no CM CM CO oo H O fr- ON ON CM ON fr- CO vo H 19 t- o o o o H CM CM CM oo CM CM CM O H H H O on CM H O CM VO CO O O O O O O O 8 H 0O O O m CO CM CM H O CO CM O H no O CM H H CM H O CM oo CO CM o 00 o VO H CM o CO o o o CM O H O CM H -4" oo H :■'. B3 O'hH !q o o H a c o •H P V H cri B •H t I cri ■ n; VO H CO on on o CO H PQ ON fr- CO o oo W ON vo o 00 CM J- H VO K ON S! (in J- NO CO m fr- CM ON fr- CM oo vo CM VO CM fr- LTN UN CO fr- 00 oo CM w oo ON CO CO oo o 3- o VO ON o fr- VO ON on fr- cn vo CM CM VO ON LTN vo CM fr- H f'l r > VO CO H H oo H ON H O fr- ON VO d ro oo O H on OO H on O f- O LTN l/N ON 8 .J CM 00 VO OO 00 On ON fr- ON CM VO ON o o d o o o o o o o K K c— 00 00 CM VO H oo LT\ H O O d o o o o o d o * o o K CO H H fr- fr- CM O ON CO CM CM tTN VO CO J- VO J- 3 CO VO rf o H ON VO fr- vo LT\ CO w (in CM H OJ s o H tH ?H 0) > o • 13 o 0) o t> o H O o -=|- w a co o cri •H Is to rt 0) 01 H F- P •H cri T3 ■P i Ch o O rj S o> cri x: Ph +3 !h n3 o> u C o ai Cm d) 01 £> w 3 TD cd 01 o P o> CO ^a 2 § X u o w o co u cri p< 01 a x: O -p •H -P ^ O ,o C 5 T3 01 ft 05 ft •H o X! -p -P w O w P OJ S T3 0> c c hn o •H •H CO P co cri of P 3 0) ft •§ § P CJ O O w Ph O <+H 01 H € P i o o 01 Xi p 0) > H o o p •H ^1 rr 1 01 01 H Ct3 '"^ .^ w $-< ^3 cri fl > o o 01 01 p a o •H P cri 1 H 0) H EH 20 oo -H- t— CO vo oo CO CO m oa J- H o t— LT\ p • • • • • • • o H H on oo M o o H o H i ->, 0- LT\ CO H CJ\ oo OO VO CM 00 VO H LT\ ON VO p • • • • • • • Q- H H oo o OO H o vo O no H O oo CM oo cm O oo H CM t- VO p • • o • • ■ * o H CM -H- VO w H o EH * H 0O t- o UA OO oo t- ON o O oo oo P • • • • • • O CM LT\ o LT\ H M -=h VO o o -H- EH CM K ^i CD ^ 10 £! <+-i • o Ti CI) o > O H O O o ra -H- ro c crf O £ •H ra 0) d H a; rQ Fj crf •H +3 T3 o J ,P crt -P CD al • Sh a; o S H Ch crt T3 CD Pi S> CD aJ ra 4^ T5 d CD cC P •P o a3 w CD C) p rQ erf a .a a cri x ctf u CD !h bn bn o 03 o ^H Crf !m Pi £ Pi CD Pi CD -P O X! -P •H -P -P P o !>j erf P ^2 si 3 -P m T3 CD 03 03 P) > •rl P) O ,P o fn +3 -p 03 CD O !h -P 03 O ctf a TD is CD 03 P PI Crf bn o 4d •H •H 03 +3 CD 03 o3 H crf +3 Si 3 crf CD Pi -P 3 a 1 •cH o o -P o o CD CD 0) ,P si ,p H H EH o -p CD !h •H CD w TS CI o o CD 03 d CD r x: ^ ■p a ^n (~ S cC crf cc 'r- a) f- H cr rQ r* Crf p a k t^ c > »i- O C H a Si F ■p C a r -H in ■p CM J- CD H crf EH 21 00 on on J- LfN -d- CO H VO CO -dr on ON OJ 00 p a\ OJ H LfN • • • • o • • • • CO ON H t- w CO LTN H LfN EH LfN H C- O CO OJ o CO LfN H CO on -dr ON o on H p _=f" on H VO • • • • • Q • • • • OJ ON OJ -d- W J" LfN o OJ on EH vo H § vo O OJ VO ON LTN H OJ ON -3- ON H OJ p • • • • • • o o LfN o o 3 OJ o i s * * H LTN -=f- o o CO ON o o OJ LfN P • • • • • o o H o VO W o o o o H+ o o EH 1 K s Ph 0) Ph w £>

• O T5 CI) o f> o H o O o ra -d- w a cd o £ ■H CO QJ S3 H QJ 43 rf 05 •H -P 73 r j <+H O o 0J S & cd -P 0) cd • Ph a; O d H n o co o Sh cd u ft > ft aj a Q) 43 o si +^ •H ■p -P S3 CJ fe cd a ,Q 43 3 -p «H w QJ O !h -P w o cd Fi 73 > (1) w 6 S3 o cd •H •H CO H- 1 aj CO cd H cd P> 43 3 cd QJ & -P •H o C) -P o O aj a; QJ £ H ^ Q) !> H o 03 o p> -n QJ Ph •H r^ C7 1 QJ Ph • ,— . 73 W QJ TJ PJ S3 S3 o •H CJ -P QJ S3 ra O o S3 ■> — ' •H — -* CO S3 QJ O s •H •H -P -P o CD s ^ tp -P aj 'O H ^ £> cd cd •H QJ Ph H cd 43 > cd ■P QJ > •H a O «H QJ QJ xi e -p w >M N •H QJ W H 42 QJ cd 43 +3 -P 1 e> S3 o O Q) W 43 CJ -P •H -P W •H +3 cd -P Ui OJ QJ H 43 cd 22 CO CO CO OO H o VO OA IX\ c- o\ ON o J- O- p , • • • • • • o oo LT\ H t- CO p- w -H- H VO H -H- H -H- EH 0- o CO o\ CO CVJ 0- VO H VO o CVJ OO CVI o\ P • • • • • « • • O -d- VO CVJ t- OA p- W H+ H on H H+ CVJ 44- EH VO O CO o p- LT\ P • • • O J- vo W o o o o EH * * H o o CVJ CVJ o o P • • • O o VO o W o o o o o o EH K * Ph CD Ph «2 X P CD £ c^ c— OO -=+- OO LT\ LTN O o\ VO pj o ;s o H H H H CVJ H H H 1 £* fn 0) Ph ra X P $ < vo CO D- •H O w o -=J- CO <5] 00 H s! LT\ -P CD H VO p VO CO ■a LT\ P o> O n3 H OA H < < P p- p OO d crf 3 x H CVJ OO p- LTN VO t- oo On o CM CVJ cvj CVI CVJ cvj CVJ J CVJ CVJ OO CD !> • H n3 o CD ra 2 <) o H P P !h T3 a) 0) • l> Ph T3 o •H CD d > o a 1 H o CD O O Ph . ra p- •—vr-0 ra d ro CD crf o rCS d 12 ■H d d ro o -H cd d O P H CD CD d X Pi ro o cri ■H CJ -P T5 d<^ I ■H O P - — CO o o d CD O CD i» Pi -H x! erf •H p p> Ph p a Im d CD erf • cd d Ph CD X ch o d H -P P cri T3 CD OJ d H3 H X CD cri d x ra XI Crf CD IT! d •H CD erf d CD Ph P o cri H Cri M CD o X > d X Crf crf pj -p CD XI Pi cri 1 i> X erf fn a -h CI) in bO O Ch bO o ro o in CD CD erf Ph P X! PJ is P P CD . ra d CD XI P o XI ■P O Ph •H -P O -P d CD MH O t>> cri Nl d X X) •H CD 3 p> ra H P T3 -a CI) ra CD Crf ra P > XI P •H P O p 1 rd o Ph o p -P d o ra CD o O Ph CD p ra o ra X erf £• v P 13 > •H CI) ra P d d cri ra &n o X! •H •H •H P ro -P CD Crf ro cri H -p erf P> X CQ d cri CD P P n Fl i o •H o a CVJ -p o o • CD CD CD XI X! X! CD EH EH EH H 23 10 and 11 have CC-tables with 31 rows (the maximum allowed for METHODS 1 through 5) which at least partially explains why METHODS 1 through 5 were not able to solve the CC-tables for these functions without using an excessive amont of computation time and/or core storage. A comparison of the results of METHOD 3 to those of METHOD 3' was used as a basis for incorporating the changes described in the discussion of METHOD 3' into METHODS k through 8. Somewhat surprisingly, it is the calculation procedure of METHOD 6 (the alterms corresponding to the cover columns are multiplied together first and then subsets of the alterms corresponding to closure columns are multi- plied together as necessitated by the dots in the CC-table) which causes very significant (91% or better for functions 6 through 12 of Table 4.1) reductions in the computation time. METHODS 7 and 8 are basically just extensions of METHOD 6 as discussed previously. The pairwise multiplication of METHOD 5 is used to multiply the alterms corresponding to the cover columns in METHODS 7 and 8 on the basis of the results in Table k.l. METHODS 7 and 8 give results comparable to METHOD 6. The differences between the results for METHOD 7 and METHOD 8 can be attributed to the differences between ORDERING 1 and ORDERING 2. Table >+.l clearly establishes the superiority of METHODS 6, 7 and 8. The thirty functions of five variables shown in Table ho2 were used to further test the effectiveness of METHODS 6, 1 and 8. Table k.2 shows not only the computation time (in seconds) required to solve the CC-table of each function for the various methods but also the size of the CC-table for each function. The results in Table k.2 further substantiate the conclusions drawn from Table k.l. That is, METHODS 6, 7 and 8 are much faster than METHOD 1; for a given function the computation times for METHODS 6, 1 and 8 are similar (except for two or three functions); and METHODS 6, 7 and 8 can quickly solve some functions which can not be solved by METHOD 1 without 2k using an excessive amount of computation time and/or core storage. Table k.2 also contains several functions which have too many rows to be solved by METHOD 6 but which can be solved by METHODS 7 and 8 as well as several functions which have too many rows to be solved by any of the methods. Furthermore, there are several functions which can not be solved even by METHODS 7 and 8 without using an excessive amount of core storage and probably a long computation time. As an illustration consider function 29 of Table k.2 and the algorithm outlined in the discussion of METHOD 6 given previously. In STEP 1 multiplying together the 15 alterms corresponding to cover columns results in a partial product with 18^6 terms. For the first 250 of these terms, STEP 3 yields partial products with an average of 66 terms. Assuming this average is reasonably accurate for all 18^6 terms in the partial product in STEP 1, STEP k would result in more than 121,000 closed covers for the CC-table In summary, the results of Tables ^.1 and k.2 show that significant reductions in the computation time can be achieved. Rearranging the alterms by applying an ordering algorithm is usually helpful. More sophisiticated orderings may result in further reductions of the computation time If applying the ordering to the alterms does not require much computation time. ORDERING 2 is somewhat more complicated than ORDERING 1, but a comparison of the results by METHOD 7 to those by METHOD 8 show that the two orderings give similar results. For this reason orderings more sophisticated than ORDERING 2 were not attempted. Using the algorithm 'of METHODS 6, 7 and 8 results in the greatest decrease in the computation time which appears to be a complicated function of many variables including the number of left columns, the number of right columns, the number of upper rows, the number of lower rows, and the density of X's in the cc-table. Unfortunately, there are functions of only five variables which have CC -tables that are too large 25 to be solved even by METHODS 7 a nd 8. Further improvements to the program may allow some of these functions to be solved, but it seems likely that there would still exist functions whose CC-tables would be too large to be solved by computer. 26 ACKNOWLEDGEMENT The authors wish to sincerely thank Dr. Gimpel for his cooperation in sending us a copy of his computer program which implements his algorithm with METHOD 1. Without his kind consideration the experiments and results given in this paper would not have been possible. 27 REFERENCES [l] James F. Gimpel, "The Minimization of TANT Networks," IEEE Transactions on Electronic Computers, Vol. EC-16, pp. 18-38, February, 1967* [2] A. Grasselli and F. Luccio, "A Method for Minimizing the Number of Internal States in Incompletely Specified Sequential Machines," IEEE Transactions on Electronic Computers, Vol. EC-lU, pp. 350-359* June, 1965. [3] E.J. McCluskey, "Introduction to the theory of switching circuits," McGraw-Hill Book Co., 155 pages, 1965. BIBLIOGRAPHIC DATA SHEET 1. Report No. UIUCDCS-R-75-720 2. 3. Recipient's Accession No. 1. Title and Subtitle ALTERNATIVE METHODS FOR SOLVING THE CC-TABLE IN GIMPEL'S ALGORITHM FOR ' SYNTHESIZING OPTIMAL THREE LEVEL NAND NETWORKS 5. Report Date April 1975 6. '. Author(s ) Keith R. Hohulin and Saburo Muroga 8. Performing Organization Rept. No. '. Performing Organization Name and Address Department of Computer Science University of Illinois at Urbana-Champaign Urbana, Illinois 6l801 10. Project/Task/Work Unit No. 11. Contract/Grant No. NSF GJ-^0221 2. Sponsoring Organization Name and Address National Science Foundation 1800 G Street, N.W. 13. Type of Report & Period Covered Technical Washington, D.C. 20550 14. 5. Supplementary Notes 6. Abstracts In the February 1967 issue of IEEE Transactions on Computers, Gimpel presents an algorithm for finding the TANT networks with the minimum number of gates for a given switching function. The algorithm involves the formation and solution of a cover and closure table (CC-table) which are major bottlenecks in computer processing of the algorithm. This paper presents several alternative methods for solving the CC-table in Gimpel' s algorithm, which are suitable for computer processing. It also presents the results of implementing these methods into computer programs and using them to find the TANT networks with the minimum number of gates for some randomly selected switching functions. 7. Key Words and Document Analysis. 17a. Descriptors Logical design, Gimpel, NAND gates, TANT networks, cover and closure table, optimal networks 7b Mc-ntif iers/Opcn-Fnded Terms 7c. ( OSATI Field/Group 8. Avail .ilnlity Statement 19. Security ("lass (This Report) UNCLASSIFIED 21. No. of Pages 29 nexease unj-imnsea 20. Security (lass (This Page UNCLASSIFIED 22. Price ORM NTIS-3B I 10-70) USCOMM-DC 40329-P71 INSTRUCTIONS FOR COMPLETING FORM NTIS-35 (10-70) (Bibliographic Data Sheet based on COSATI Guidelines to Format Standards for Scientific and Technical Reports Prepared by or for die Federal Government, PR- 180 600). 1. Report Number. Each report shall carry a unique alphanumeric designation. Select one of the following types: (a) alpha- numeric designation provided by the sponsoring agency, e.g., FAA-RD-68-09; or, if none has been assigned, (b) alphanu- meric designation established by the performing organization e.g., FASEB-NS-87; or, if none has been established, (c) alphanumeric designation derived from contract or grant number, e.g., PH-43-64-932-4. 2. Leave blank. 3. Recipient's Accession Number. Reserved for use by each report recipient. ■ 4. Title and Subtitle. Title should indicate clearly and briefly the subject coverage of the report, and be displayed promi- nently. Set subtitle,- if used, in smaller type or otherwise subordinate it to main title. When a report is prepared in more ;hm one volume, repeat the primary title, add volume number and include subtitle for the specific volume. 5- Report Date. Each report shall carry a date indicating at least month and year. Indicate the basis on which it was selected J (e.g., date of issue, date of approval, date or preparation. 6. Performing Organization Code. Leave blank. 7. Author(s). Give name(s) in conventional order (e.g., John R. Doe, or J.Robert Doe). List author's affiliation if it differs from the performing organization. 8. Performing Organization Report Number. Insert if performing organization wishes to assign this number. 9. Performing Organization Name and Address. Give name, street, city, state, and zip code. List no more than two levels of an organizational hierarchy. Display the name of the organization exactly as it should appear in Government indexes such as USGRDR-I. 10. Project/Task,' Work Unit Number. Use the project, task and work unit numbers under which the report was prepared. i 1. Contract/Grant Number. Insert contract or grant number under which report was prepared. 12. Sponsoring Agency Name and Address. Include zip code. 13- Type of Report and Period Covered. Indicate interim, final, etc., and, if applicable, dates covered. 14. Sponsoring Agency Code. Leave blank. 15. Supplementary Notes. Enter information not included elsewhere but useful, such as: Prepared in cooperation with . . . Translation of . . . Presented at conference of . . . To be published in . . . Supersedes . . . Supplements 16. Abstract. Include a brief (200 words or less) factual summary of the most significant information contained in the report. If the report contains a significant bibliography or literature survey, mention it here. i 17. Key Words and Document Analysis, (a). Descriptors. Select from the Thesaurus of Engineering and Scientific Terms the proper authorized terms that identify the major concept of the research and are sufficiently specific and precise to be used ! as index entries for cataloging. (b). Identifiers and Open-Ended Terms. Use identifiers for project names, code names, equipment designators, etc. Use open-ended terms written in descriptor form for those subjects for which no descriptor exists. (c). COSATI Field/Group. Field and Group assignments are to be taken from the 1965 COSATI Subject Category List. Since rhe majority of documents are multidisciplinary in nature, the primary Field/Group assignments ) will be the specific discipline, area of human endeavor, or type of physical object. The application(s) will be cross-referenced with secondary Fichi/Group assignments thai will follow the primary posting(s). 18. Distribution Statement. Denote releasability to the public or limitation for reasons other than security for example "Re- lease unlimited". Cite any availability to the public, with address and price. 19 & 20. Security Classification. Do not submit classified reports to the National Technical Information Service. 21. Number of Pages. Insert the total number of pages, including this one and unnumbered pages, but excluding distribution I ist, if any. 22. Price. Insert the price set by the National Technical Information Service or the Government Printing Office, if known. FORM NTlS;35 '00,-70) U S C OMM- U C 40 329- P 7 1 #■* **