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. To renew call Telephone Center, 333-8400 UNIVERSITY OF ILLINOIS LIBRARY AT URBANA-CHAMPAIGN Oht; 6W» L161— O-1096 Digitized by the Internet Archive in 2013 http://archive.org/details/programmanualfor926youn UIUCDCS-R-78-926 >^a June 1978 PROGRAM MANUAL FOR THE PROGRAMS ILLOD-MINSUM-CBS, ILLOD-MINSUM-CBSA , ILLOD-MINSUM-CBG, AND ILLOD-MINSUM-CBGM TO DERIVE MINIMAL SUMS OR IRREDUNDANT DISJUNCTIVE FORMS FOR SWITCHING FUNCTIONS by M. H. Young and R. B. Cutler UILU-ENG 78 1719 DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN URBANA, ILLINOIS UIUCDCS-R-78-926 PROGRAM MANUAL FOR THE PROGRAMS ILLOD-MINSUM-CBS , ILLOD-MINSUM-CBSA , ILLOD-MINSUM-CBG, AND ILLOD-MINSUM-CBGM TO DERIVE MINIMAL SUMS OR IRREDUNDANT DISJUNCTIVE FORMS FOR SWITCHING FUNCTIONS By M. H. Young and R. B. Cutler June 1978 Department of Computer Science University of Illinois at Urbana-Champaign Urbana, Illinois 61801 This work was supported in part by the National Science Foundation under Grant No. MCS77-09744. iii ACKNOWLEDGEMENT The authors wish to express their gratitude to their adviser, Professor S. Muroga, for his discussions and careful reading of the original manuscript, and to Mrs. Ruby Taylor for her excellent typing. This work was supported in part by the Department of Computer Science, University of Illinois, and also by the National Science Foundation under Grant No. MCS77-09744. iv TABLE OF CONTENTS CHAPTER Page 1. INTRODUCTION 1 2. INPUT 6 2 . 1 PARAMETER Card 7 2.2 FUNCTION Cards 9 3 . OUTPUT 16 3 . 1 Output Produced by PHASE I 16 3.2 Output Produced by PHASE II of Program ILLOD- MINSUM-CBS 19 3.3 Output Produced by PHASE II of Program ILLOD- MINSUM-CBSA 22 3. A Output Produced by PHASE II of Programs ILLOD- MINSUM-CBG and ILLOD-MINSUM-CBGM 25 LIST OF REFERENCES 28 APPENDIX I EXAMPLES 29 APPENDIX II - HOW TO RUN THE PROGRAMS 38 APPENDIX III - REMARK ON DERIVATION OF ALL I-MINIMAL SUMS 42 1 . INTRODUCTION ILLOD-MINSUM-CBS, ILLOD-MINSUM-CBSA, ILLOD-MINSUM-CBG , and ILLOD- MINSUM-CBGM are four programs developed by the logic design group at the Department of Computer Science, University of Illinois. ILLOD (ILinois LOgic Design) stands for this group. These four programs can be used to derive various types of minimal sums by different cri- teria (counting terms or literals) . They all consist of two phases and have the same first phase, PHASE I, which finds the covering ta- ble (i.e., the prime implicant table) of the given single-output or multiple-output switching function and derives symmetric permutations for this table by interchanging each pair of switching variables us- ing subroutines of the MINSUM system [1]. The second phase, PHASE II, of each of these four programs finds each kind of minimal sum (or mini- mal sums) for the given switching function by solving the Covering ta- ble, using a branch-and-bound algorithm. The four suffixes CBS, CBSA, CBG, and CBGM indicate the character of the programs with CB: stands for Covering table solving with a Branch-and -bound algorithm. S: indicates that the Symmetric property of the switching function is utilized. A: indicates that All minimal sums will be found. G: indicates that the covering table is con- sidered as a General cost covering problem. * See [4] for the definition of symmetric permutation. M: indicates special provisions for Multiple-output functions The switching function can be given in disjunctive form, completely specified truth table form or incompletely specified truth table form. Since these four programs have the same PHASE I, the preparation of the input data for these four programs, and the first part output (out- put produced by PHASE I) of these four programs are the same. In Chap- ter 2, we will describe the preparation of the input data for these four programs. In Chapter 3, we will explain the output of these four differ- ent programs. Examples of finding different minimal sums by using these four programs are shown in Appendix I. Information concerning how to run these four programs is shown in Appendix II. A special remark on deriving all I-minimal sums for a given switching function is presented in Appendix III. 1.1 Background and Definitions For a single-output switching function f, a disjunctive form of f is simply a disjunction of conjunctions (products) of input variables known as either implicants, disjuncts, or terms. For a multiple-output function F with m outputs, f , , f„, ..., f , a disjunctive form of F 1 2 m J consists of a set of m disiunctive forms, one for each f.. These m disjunctive forms are called output function disjunctive forms . It is possible for a term to appear as a disjunct in more than one of these. For this reason the word disjunct is used to refer to terms appearing in each individual output function disjunctive form, and the word implicant is used to refer to terms appearing in any output function disjunctive form. For example, in the disjunctive form of F F = f = bed ^ ac n/ ad f _ = bed v bed ^ abd there are 6 disjuncts and 5 implicants. Literals are variables appear- ing in implicants. For the example, there are 13 literals. Each disjunctive form for a multiple-output switching function corresponds to a network of AND gates feeding OR gates with external inputs which feed just AND gates as shown in Figure 1.1. (This corres- ponds to the above disjunctive form.) a — V c — J >\ a — d — N. \ ~^ V- \ \ ) ) y L ^ 13 b — X external c — Y- < inputs d — s b — c — d — X Y - ^ >- £ 2 J \ ) 1 J 5 AND / ^ 6 inputs a — v b — d — y gates to OR gates Figure 1.1 AND-OR network The numbers of literals, implicants, and disjuncts in the disjunctive form correspond to the numbers of external inputs, AND gates, and in- puts to the OR gates, respectively. In general, when this type of two-level network is to be construc- ted to implement a multiple-output switching function F, the objective Single-output functions can be thought of as multiple-output functions with just one output. is to find a network which has the fewest connections out of all networks with the fewest gates which implement the switching function. The corres- ponding minimal disjunctive form of F has the lowest total of the number of disjuncts and literals among all disjunctive forms which have the few- est implicants which realize F. Such a disjunctive form is defined as a minimal sum , or more specifically, an (I,D+L)- minimal sum, letting I, D, and L stand for numbers of implicants, disjuncts, and literals, re- spectively. There are also other criteria by which a disjunctive form can be minimal, such as I-minimal (minimize just the number of implicants) or (I,L)-minimal (minimize the number of implicants primarily and the number of literals secondarily). What types of minimal sums are derived by the programs are shown in Figure 1.2. Of course, for single-output functions, (I,L)- minimal and (I,D+L)- minimal are equivalent (since I=D) , and the minimal sum has the fewest literals among all the dis- junctive forms of the function which have the fewest implicants. Program No. of Outputs CBS one many Solution I-minimal IL-IDF I-minimal IL-IDF CBSA one many (I,L)-minimal IL-IDF, all I-minimal IL-IDF's (I,L)-minimal IL-IDF, all I-minimal IL-IDF's CBG one many ( I, L) -minimal IL-IDF (I, L) -minimal IL-IDF CBGM one many ( I, L) -minimal IL-IDF ( I, D+L) -minimal IDL-IDF Figure 1.2 Types of solutions derived by the programs There are also several ways for a disjunctive form (or network) to be irredundant. The expression I-irredundant is used to mean that no implicants are redundant (and no gates in the corresponding network are redundant). IL-irredundant is used to mean that no implicants or liter- als are redundant (and no gates or inputs to AND gates in the corres- ponding network are redundant), and IDL-irredundant is used to mean that no implicants, disjuncts, or literals are redundant (and no" gates or con- nections in the corresponding network are redundant) . I-IDF , IL-IDF , and IDL-IDF are abbreviations for I-irredundant disjunctive form, IL-irredun- dant disjunctive form and IDL-irredundant disjunctive form respectively. These are also shown in Figure 1.2. INPUT Since programs ILLOD-MINSUM-CBS , ILLOD-MINSUM-CBSA, ILLOD-MINSUM- CBG and ILLOD-MINSUM-CBGM have the same PHASE I, the following descrip- tion of the preparation of input data applies to all four programs. Since subroutines of the MINSUM system are used for PHASE I, any of the input formats described in [1] can be used. This chapter presents some of the practical input formats. The switching functions can be expressed in either disjunctive form (as a list of implicants) or truth table form (binary or hexadecimal). Which of these forms is actually used is communicated to the program by means of a parameter card which precedes the functions in the input stream as shown in Figure 2.1. FUNCTION CARDS ( FUNCTION 1 / PARAMETER CARD Figure 2.1 Input stream for the program Functions which have the same number of variables, the same number of outputs, and are in the same specification form (disjunctive form, truth table form or hexadecimal form) can be concatenated together and executed in one run. Each function (single-output or multiple-output) in the input stream is identified as a problem . The end of the input stream is indicated by a card with '/*' in the first two columns. 2.1 PARAMETER Card This parameter card contains 6 parameters: FORM, N, M, PRTOPT, PUNOPT and TIMLIM. Parameter FORM specifies the form (disjunctive form, binary truth table form or hexadecimal truth table form) of the function or functions of the problem. This parameter occupies the first 15 col- umns of this card. There are three options for specifying this param- eter: DISJUNCTIVE, TRUTH TABLE, or HEXADECIMAL. All these three speci- fications must start from the first column of this card. These can be abbreviated as DISJ, TRUT, and HEXA. DISJUNCTIVE specifies that the functions are in disjunctive form. TRUTH TABLE specifies that the func- tions are in binary truth table form. HEXADECIMAL specifies that the functions are in hexadecimal truth table form. Parameter N specifies the number of variables of the problem when the functions are in binary truth table form or in hexadecimal truth table form. When the functions are in disjunctive form, parameter N is ignored (even though it is ignored, its value must be between and 32 if N is specified). If the functions are in binary truth table form, the value of N must be less than or equal to 8. If the functions are in hexadecimal truth table form, the value of N must be greater than or equal to 5 and less than or equal to 10. This parameter occupies columns 16 through 20. The value of N must be right justified in these columns . Parameter M specifies the number of output functions each problem has. It can range from 1 to 10. If no value is specified, M = 1 is as- sumed. The parameter occupies columns 21 to 25. The value specified must be right justified in these columns. Parameter PRTOPT specifies the scope of the printout of each pro- gram. The value of it ranges from 1 up to 9. The higher the value of it is, the more the information is printed. This parameter occupies columns 26 through 30. The value specified for it must be right justi- fied in these 5 columns. The default value of it is 1 if it is not specified. Parameter PUNOPT specifies whether an intermediate result is to be punched if the time specified by the next parameter TIMLIM is ex- ceeded. Value 1 specifies that an intermediate result will be punched when the time limit specified is exceeded, while value specifies that no cards are to be punched. In the case of program MINSUM-CBS, value 2 indicates that each prime implicant table of each problem in the in- put stream is to be punched when the program finishes solving each pro- blem. This parameter occupies columns 31 through 35 and its value must be right justified in these 5 columns. The default value of it is if it is not specified. Parameter TIMLIM specifies the total CPU time for solving each pro- blem in the input stream. The time limit specified is the value of it in seconds. When the total time spent for solving a problem exceeds this time limit, the program will stop solving this problem, provide a solution which may not be minimal, and if the value specified for the parameter PUNOPT is greater than 0, it will punch out an intermediate result. This parameter occupies columns 36 through 40 and its value must be right justified in them. The default value of it is 100 hours, which essentially sets no limit, if no value or a zero value is speci- fied for it. The program checks this time limit only when a feasible solution of the given problem is found. If the value specified for this parame- ter is less than 0, the program will provide the first solution found (which may not be minimal). An example of the PARAMETER card is shown in Figure 2.2. FORM + N 4- M 16 21 26 PUNOPT PRTOPT 4- 4- 31 DISJUNCTIVE TIMLIM 4- 36 41 Column Number 30 Figure 2.2 An example of the PARAMETER card 2.2 FUNCTION Cards The functions of each problem in different forms are prepared in corresponding formats in the FUNCTION cards as described in this sec- tion. 2.2.1 Functions in Disjunctive Form Each disjunct in a disjunctive form of each output function of a 10 problem is placed on one card using the letters A-Z (preferably near the beginning of the alphabet) for literals and a prime after a letter to show the complement of that literal. These must be in the first 72 columns on the card. Spaces can be put between letters and also be- tween letters and primes on each card for each disjunct. The end of the disjunctive form for each output function is indicated by a blank card. For multiple-output functions, the cards for all output func- tions must be placed adjacent to each other, cards for output f. first, cards for output f_ second, and so on. As an example, the 2-output function F defined by *f = abed v abd v abed \/ bed >• bed v abed F: Ir. = acd v acd v be may be prepared on cards as shown in Figure 2.3. 2.2.2 Functions In Binary Truth Table Form Each output function in binary truth table form is represented by N the values for its 2 different combinations of inputs, where N is the number of variables of the function. The value of each output function may be 0, 1, or * (don't care). So each function is represented by a N string of 2 values (0, 1, or *). A function represented in this way N is said to be in binary truth table form. These 2 values are sequen- tially punched on a card (or on cards) in columns 1-72 according to the N increasing order of the 2 different combinations regarding them as binary N numbers. If N <^ 6, all these 2 values must be punched in one card. If N N = 7, all these 2 values must be punched in two cards. If N = 8, all N these 2 -values must be punched in 4 cards. Spaces can be inserted anywhere 11 blank card Figure 2.3 The function cards for a two-output function in disjunctive form in the string to improve the clarity as long as none of the above rules on the number of cards for each N are violated. If there are more than N 2 values on the input card (or cards) , the rightmost extra values will N be ignored. If there are less than 2 values on the input card (or cards), zero values will be added on the right to bring the number of N input values up to 2 . In both cases, a warning message is printed. Figure 2. A shows a binary truth table form for a 2-output switching function. Considering f and f in Figure 2.4 as single output switch- ing functions, f and f may be prepared on the cards as shown in Figure 2.5. 12 X 4 X 3 X 2 x l £ 1 f 2 1 1 1 2 1 3 1 1 1 4 1 1 5 1 1 1 * 6 1 1 1 1 7 1 1 1 1 8 1 1 9 1 1 1 10 1 1 1 11 1 1 1 1 12 1 1 * 13 1 1 1 1 * 14 1 1 1 1 15 1 1 1 1 Figure 2.4 A 2-output function in binary truth table form 0000 0111 1111 0110 (a) The input card for f- 0101 1*10 0000 **00 (b) The input card for f„ Figure 2.5 The function cards for functions f and f For a multiple-output switching function, the input card (or cards) for each of the output functions must be adjacent to each other. As an ex- ample, the two cards for the 2-output switching function in Figure 2.4 must be placed adjacent to each other as shown in Figure 2.6. *. /0101 1*10 0000 **00 ->/' 0000 0111 1111 0110 Figure 2.6 The input cards for a 2-output switching function in binary truth table form 13 2.2.3 Functions In Hexadecimal Truth Table Form When N is greater than 5, it is cumbersome to punch a string of 2 N values on cards for an N-variable switching function. For a completely N specified output function in binary truth table form, the string of 2 bits (0 or 1) can be represented by a shorter string of hexadecimal dig- its by replacing each consecutive 4 bits by a hexadecimal digit. A completely specified function represented in this way is said to be in hexadecimal truth table form. The 16 hexadecimal digits and their cor- responding bits are shown in Figure 2.7. As an example, the 5-variable single-output switching function F, . in binary truth table shown in bin Figure 2.8 can be more easily represented by a hexadecimal truth table form function F. hex Hexadecimal Binary 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 Figure 2.7 The 16 hexadecimal digits and their corresponding binary form 14 X 5 X 4 X 3 X 2 x l bin hex 1 1 1 2 1 1 6 3 1 1 4 1 5 1 1 6 1 1 1 7 1 1 1 1 8 1 1 9 1 1 1 10 1 1 c 11 1 1 1 12 1 1 13 1 1 1 1 14 1 1 1 1 7 15 1 1 1 1 1 16 1 1 17 1 1 1 18 1 1 1 F 19 1 1 1 1 20 1 1 1 21 1 1 1 22 1 1 1 8 23 1 1 1 1 24 1 1 25 1 1 1 26 1 1 1 27 1 1 1 1 28 1 1 1 29 1 1 1 1 1 30 1 1 1 1 5 31 1 1 1 1 1 1 Figure 2.8 Binary and hexadecimal truth table forms A switching function in hexadecimal truth table form is prepared as follows. Starting from column 1 up through column 72, the string of hexadeci- mal digits for a single-output switching function is consecutively punched on a card (or cards) with a space inserted after every 8 hexadecimal dig- its. The number of cards needed for a single-output function depends on the number of input variables of that function. If the number of input 15 variables is smaller than 9, then exactly one card is used to provide a single-output switching function in hexadecimal truth table form. If the number of input variables is 9, then exactly two cards are used. If the number of input variables is 10, then exactly 4 cards are used. For a multiple-output switching function, the function card (or cards) for each of its output functions must be adjacent to each other. As an ex- ample, the function F in Figure 2.8 is prepared on a card as shown in Figure 2.9(a). Another example of the FUNCTION cards for the case of N = 7 is shown in Figure 2.9(b). Col. 1 Col. 8 4- + /I 61C7F805 (a) For a 5-variable switching function Col. 1 Col. 10 Col. 19 Col. 28 Y \ T + 5C441573 81BC94A8 C132EFBD B99E0378 (b) For a 7-variable switching function Figure 2.9 Examples of function cards for functions in hexadecimal truth table form 16 OUTPUT The printed output produced by each of these four programs, ILLOD- MINSUM-CBS, ILLOD-MINSUM-CBSA, ILLOD-MINSUM-CBG, and ILLOD-MINSUM-CBGM is described in this chapter. Because these four programs have the same PHASE I, the first part printouts (output produced by PHASE I) of these four programs are the same. Since these four programs are all using a branch-and-bound algorithm to solve the covering table of the given problem, the second part printouts (output from PHASE II) of these four programs are similar. Since the printouts of these programs are self-explanatory, only information important to the user is explained in this chapter. 3.1 Output Produced By PHASE I At the beginning, the program prints the sequence number I of the problem (in the input stream) , the number of outputs of this single- output or multiple-output function (the value of the parameter M) and the number of variables of the function (the value of the parameter N) as PROBLEM I: N INPUTS AND M OUTPUTS. Then each output function is printed in the same form (disjunctive form, binary truth table form or hexadecimal truth table form) , as was given in the function card (or cards). Then the covering table (prime implicant table) for the problem will be printed if the value specified for PRTOPT is greater than 3. This ta- ble is given in a partially reduced form, i.e., some dominating minterms may already be deleted (a mintern z.z ...z is said to dominate another 1 I n 17 minterm z'z'...z' if z n z_...z is covered by prime implicant p whenever 12 n 12 n z'z*...z' is covered by p). Some dominated prime implicants may also 12 n be deleted. (A prime implicant p. is said to dominate another prime implicant p ? if p, covers minterm z z_...z whenever p„ covers z..z 2 ...z ) The size of this table is given at the top of the table as THE PRIME IMPLICANT TABLE HAS k ROWS AND I COLUMNS, where k is the total number of undeleted prime implicants and I is the total number of undeleted minterms in the table. If the problem is a multiple-output function, an additional message concerning the number of undeleted minterms of each output function is printed as THE COLUMNS ARE PARTITIONED BY OUTPUT INTO GROUPS OF I. , £„, ..., I 12 m where £, , £_, ..., I are the numbers of minterms of each output func- tion. Each prime implicant in the table is given an index number, called the row number of this prime implicant, starting from 1 up through k. Each undeleted minterm is given an index number, called the column number of this minterm, starting from 1 to L Column numbers for the minterms of the first output function f .. are from 1 to £ ; column numbers for the minterms of the second output function f are from L + 1 to £ + £„, and so on. The prime implicant table is given by listing each prime implicant (in literal form) along with the column numbers of the minterms it covers. The number of literals and the row number of each prime implicant are also given in the table. An example of the printout of a covering table (prime implicant table) is shown in Figure 3.1. If the value specified for PRTOPT is less than 4 and greater than 1, then only the table size and the message which appears at the top of the table are printed. 18 THE PRIME IMPLICANT TABLE HAS 21 ROWS AND 31 COLUMNS ROW COST IMPLICANT COLUMN INDICES 1 4 BCEF' 12. 13. 16. 17. 2 4 BCDF» 7. 8. 16. 17. 3 4 BCDE 16. 17. 30. 31. 4 5 B'C'D'E'F' 1. 2. 5 5 BC'D'E'F 19. 20. 6 5 B'C'DE'F 22. 23. 7 4 AD'EF' 9. 10. 11. 13. 8 5 A'C'D'E'F' 1. 3. 9 5 A'CDEF 1 15. 16. 10 5 AC'D'E'F 18. 20. 11 5 A'C'DE'F 22. 24. 12 5 ACDEF 29. 31. 13 4 ABEF' 10. 13. 14. 17. 14 4 ABDF' 6. 8. 14. 17. 15 4 ABDE 14. 17. 28. 31. 16 5 A'B'D'E'F' 1. 4. 17 5 A'BD'E'F 19. 21. 18 4 ABCF' 5. 8. 13. 17. 19 5 AB'C'E'F 18. 23. 20 5 A'BC'E'F 19. 24. - 21 4 AB'C'D' 2. 9. 18. 25. L prime implicant - number of literals -row number column numbers of minterms covered Figure 3.1 A printout of a covering table (prime implicant table) 19 For a completely specified single-output function, PHASE I in the programs MINSUM-CBS or MINSUM-CBSA, will try to find some symmetric properties of the switching function by interchanging each pair of literals of this function. If the value of PRTOPT is greater than 1, then information about this operation will be printed after the cover- ing table. If the symmetric property in literals z.. and z_ is found then a message will be printed as THE INPUT FUNCTION IS SYMMETRIC IN z , z . If no symmetric property is found, then a message showing this fact is printed as THERE ARE NO SYMMETRIC PERMUTATIONS. After the program control returns from PHASE II, the optimal solu- tion will be printed by listing all prime implicants for realizing this function and listing all disjuncts for each output function. If the cov- ering table is not yet solved in PHASE II, the best solution obtained so far will also be printed as in the optimal solution case. In this case, additional information indicating this fact will be printed as THE SOLUTION OBTAINED MAY NOT BE OPTIMAL. Finally, the total time used for processing this function (including PHASES I and II) is given as TOTAL EXECUTION TIME FOR THIS FUNCTION IS xxx SECONDS. 3.2 Output Produced by PHASE II of Program ILLOD-MINSUM-CBS The covering table (i.e., prime implicant table) will be reduced as much as possible at the beginning of PHASE II by considering each prime implicant in the table as a row, each minterm in the table as a column, and by repeatedly applying the following three reduction operations until 20 no operation can be further applied: 1. If column c is dominated by some other column c , then c is deleted from the table. 2. If row y. is dominated by some other row y.» then y. is de- i j i leted from the table. 3. If some column c. is covered by row y, only, then all columns covered by row y are deleted from the table. Cv Then the reduced table size will be printed if the value specified for PRTOPT is greater than 1. It will be printed as *CYCLIC TABLE SIZE AFTER THE FIRST REDUCTION* NO. OF ROWS: k' NO. OF COLUMNS: V where k 1 is the number of undeleted prime implicants and I ' is the num- ber of undeleted minterms of the reduced table. A set of prime impli- cants which can be used in a disjunctive form to realize the given single-output or multiple-output switching function is called a realiza- tion set . When the first realization set or a better realization set (a realization set with fewer prime implicants than those previously found) is found, this realization set is printed if the value specified for PRTOPT is greater than 3. It is printed as REALIZATION SET FOUND j : NUMBER OF IMPLICANTS: t NUMBER OF ITERATIONS: itr TIME USED IN CENTI- SECONDS: t, where j is the sequence number (1st, 2nd, ... etc.) of this realization set, i , i , ..., i are the row numbers of the prime implicants in this realization set, t is the number of prime implicants in this realization 21 * set, itr is the number of iterations when this realization set is found, and tt is the time used in centisecond for finding this realization set starting from PHASE II. If the covering table (prime implicant table) is solved in PHASE II and the value specified for PRTOPT is greater than 1, a message which shows this fact will be printed as PROBLEM HAS BEEN IMPLICITLY SEARCHED THE OPTIMAL REALIZATION SET OBTAINED: i, ± 2 • • • i t where i 1 , i_, ..., i are the row numbers of the prime implicants in the optimal realization set. If the covering table (prime implicant table) has not yet been solved in PHASE II and if the value specified for PRTOPT is greater than 1, a message which shows this fact will be printed as THE TIME LIMIT SPECIFIED IS EXCEEDED THE PROBLEM STATUS AT THE LAST ITERATION IS: AA • • • • A.0.L1 • • • • THE BEST REALIZATION SET OBTAINED: ± 1 ± 2 ... i t where i , i , ..., i mean the same as in the optimal realization case. The problem status shown in the above printing shows subproblems having not been searched yet up to the number of iterations when the program stops. (This number is shown in the algorithm's statistics given later.) See [3] for details. 22 How these subproblems are shown by the current status variables XX and XSL is described in [3]. Then the covering table (prime implicant ta- ble) and all the information needed for PHASE II to resume its opera- tion starting from where it stops will be punched on cards if the value specified for PUNOPT is greater than 0. A user then can continue solv- ing this table by using the program ILLOD-MINIC-BS [3], which is used in PHASE II for solving the covering table. ' Some statistics on the algorithm are also given if the value speci- fied for PRTOPT is greater than 1. They are printed as NUMBER OF ITERATIONS: itr NUMBER OF BACKTRACKS: btk TIME USED IN CENTISECONDS: tt Before control leaves PHASE II, PHASE II will try to transform the optimal realization set or the best realization set found so far into a better form (a realization set S is said to be of better form than another realization set S„ if the number of prime implicants in S.. is less than or equal to the number of prime implicants in S„ and the number of literals in S is less than the number of literals in S ) . The realization set obtained after the transformation is printed if the value specified for PRTOPT is greater than 1. It is printed as THE SOLUTION OBTAINED AFTER THE TRANSFORMATION: X- X • • • 1 12 u 3.3 Output Produced By PHASE II of Program ILLOD-MINSUM-CBSA As with the program ILLOD-MINSUM-CBS, the covering table (i.e, * See [3] for details. ** See [3] for details of the transformation. 23 prime implicant table) , will be reduced at the beginning of PHASE II by the following 2 operations: 1. Delete dominating minterms. 2. Delete all minterms which are covered by essential prime implicants (a prime implicant is essential if it covers a minterm which is covered by it only) . Then the reduced table size is printed if the value specified for PRTOPT is greater than 1. It is printed as *CYCLIC TABLE SIZE AFTER THE FIRST REDUCTION* NO. OF ROWS: k' NO. OF COLUMNS: V where k' is the number of undeleted prime implicants and &' is the number of undeleted minterms in the table. Then, when the first realization set is found, it will be printed as REALIZATION SET FOUND 1: NUMBER OF IMPLICANTS: t NUMBER OF ITERATIONS: itr TIME USED IN CENTISECONDS: tt where i.. , i_, ..., i , t, itr and tt mean the same as in the case of pro- gram ILLOD-MINSUM-CBS. When a better realization set or a realization set comparable to the best realization set found before is found (a realiza- tion set S 1 is said to be comparable to another realization set S„ if the numbers of implicants in both realization sets are the same) , this realization set is printed if the value of PRTOPT is greater than 5. It is printed in the same form as the first realization set is printed. If the value specified for PRTOPT is smaller than 5 but is greater than 3 , then only when a better realization set is found or when a comparable realization set with a different number of literals is found, will it be printed. (PRTOPT > 5 should be used rarely — see APPENDIX III.) 24 If the covering table is solved in PHASE II and if the value speci- fied for PRTOPT is greater than 1, a message which shows this fact will be printed as PROBLEM HAS BEEN IMPLICITLY SEARCHED. If the covering table is not solved in PHASE II and if the value of PRTOPT is greater than 1, a message which shows this fact will be printed as THE TIME LIMIT SPECIFIED IS EXCEEDED THE PROBLEM STATUS AT THE LAST ITERATION IS: jtvA ! • • • XSL: ... where the problem status at the last iteration means the same as in the program ILLOD-MINSUM-CBS case. Then the covering table (prime impli- cant table) and all the information needed for PHASE II to resume its operation starting from where it stops will be punched on cards if the value specified for PUNOPT is greater than 1. A user then can continue solving this table by using the program ILLOD-MINIC-BSA [3], which is used in PHASE II for solving the covering table. Then some statistics on the algorithm are printed if the value of PRTOPT is greater than 1. They are printed as NUMBER OF ITERATIONS: itr» NUMBER OF BACKTRACKS: btk TIME USED IN CENTISECONDS: t. Before the program's control leaves PHASE II, PHASE II will give a summary of best solutions obtained if the value specified for PRTOPT is greater than 2. It prints the total number of best solutions found and classifies these best solutions into different groups according to the number of literals in each solution. Solutions with the same number of 25 literals are In the same group. Then the number of solutions in each group is printed. An example of this summary is shown in Figure 3.2. #####SUMMARY OF OPTIMAL SOLUTIONS##### WITHOUT CONSIDERING THE NO. OF LITERALS, THE TOTAL NO. OF BEST SOLUTIONS FOUND (SOLUTIONS SYMMETRIC TO A SOLUTION ARE CONSIDERED AS ONLY ONE SOLUTION) : 24 =>12 OF THESE BEST SOLUTIONS HAVE 143 LITERALS =>12 OF THESE BEST SOLUTIONS HAVE 142 LITERALS Figure 3.2 A summary of optimal solutions The solution which is passed back to MINSUM is the best solution which has the fewest literals. 3.4 Output Produced by PHASE II Of Programs ILLOD-MINSUM-CBG and ILLOD- MINSUM-CBGM The main difference between programs MINSUM-CBG and MINSUM-CBGM is in assigning a cost for each prime implicant in the covering table. In program MINSUM-CBG, the cost assigned to a prime implicant is the number of literals in it plus 1000, whereas in program MINSUM-CBGM, the cost as- signed to a prime implicant is the number of literals in it plus the num- ber of output functions it is associated with, plus 1000. This difference in assigning a cost for a prime implicant is done in PHASE I, so the out- puts of these two programs in PHASE II are exactly the same. The other difference between MINSUM-CBG and MINSUM-CBGM is that for multiple-output functions, an expanded prime implicant table is used. This table has the same number of columns but more rows than for the table used in MINSUM-CBS , allowing for different associations of prime implicants with output functions. 26 The covering table (prime implicant table) will be reduced as much as possible at the beginning of PHASE II, by considering each prime im- plicant in the table as a row and each minterm in the table as a column and by repeatedly applying the following three reduction operations to it until no operation can be further applied: 1. If c. is dominated by some other column c. then c. is deleted i J J from this table. 2. If row y. is dominated by some other row y. and the cost of i 3 prime implicant i is greater than or equal to the cost of prime implicant j, then y. is deleted from the table. 3. If some column c. is covered by row y, only, then all columns covered by row y. are deleted from the table, k Then the reduced table size will be printed if the value specified for PRTOPT is greater than 1. It is printed as *CYCLIC TABLE SIZE AFTER THE FIRST REDUCTION* NO. OF ROWS: k' NO. OF COLUMNS: V where k is the number of undeleted minterms of the reduced table. In these two programs, the cost of a realization set is the sum of the costs assigned to the prime implicants in that realization set. When the first realization set or a better realization set (a re- alization set with lower cost than those previously found) is found, this realization set is printed in the same way as it is printed in the case of the program ILLOD-MINSUM-CBS , if the value specified for PRTOPT is greater than 1. Whether the covering table is solved by PHASE II is also indicated by the two messages printed in the program ILLOD-MINSUM- CBS. These two messages will be printed if the value specified for 27 PRTOPT is greater than 1 and are interpreted in the same manner as in the case of the program ILLOD-MINSUM-CBS . When the covering table is not solved by PHASE II, the covering table and the information needed for PHASE II to resume its operation starting from where it stops will also be punched on cards if the value specified for PUNOPT is greater than 1. Then the user can continue solving this table by using the program ILLOD-MINIC-BG [3], which is used in PHASE II for solving the covering table. 28 REFERENCES [1] R. B. Cutler, "MINSUM: A Library of Subroutines For Finding Ir- redundant Disjunctive Forms or Minimal Sums for Switching Func- tions — Program Manual," to appear. [2] R. B. Cutler, "MINSUM: A Library of Subroutines for Finding Ir- redundant Disjunctive Forms or Minimals Sums for Switching Func- tions — Subroutine Descriptions," to appear. [3] M. H. Young, "Program Manual for the Programs ILLOD-MINIC-B , ILLOD-MINIC-BP , ILLOD-MINIC-BS , ILLOD-MINIC-BSA, and ILLOD- MINIC-BG for the Minimal Covering Problem," to appear. [4] M. H. Young, Ph.D. Thesis, Department of Computer Science, Uni- versity of Illinois, 1978. 29 APPENDIX I EXAMPLES This appendix shows examples of finding different types of minimal sum using the four programs: MINSUM-CBS, MINSUM-CBSA, MINSUM-CBG and MINSUM-CBGM. Example 1 Suppose the problem is to find an I-minimal sum for the switching function f=FEF7DB6E F69F72C7 in Hexadecimal truth table form. This problem can be solved by using the program MINSUM-CBS. The input data for this problem may be prepared as shown in Figure Al.l. In this input data, parameter PRTOPT is specified to value 1. The printout of the program MINSUM-CBS corresponding to this input data is shown in Figures Al.2. If parameter PRTOPT is specified to value 2, then the printout FEF7DB6E F69F72C7 HEXA 6 11 (FORM) (N) (M) (PRTOPT) Figure Al.l. Input data for Example 1 corresponding to this input data is shown in Figures A1.3(a) and A1.3(b) Example 2 Suppose the problem is to find an (I, L) -minimal sum for the switching function f=FEF7DB6E F69F72C7 in Hexadecimal truth table form. This problem can be solved by using the program MINSUM-CBG. Input data for this problem can be the same as input data for the problem in Ex- ample 1. The printout of the program MINSUM-CBG for this input data is shown in Figure Al . 4 . 30 sc o H EH Oi OtO a 33 sb DO 25U 3JW cuto # * * ♦ * v— Dm a=0 O HEH HH UiC OM ^ H ! asw MS 03H O.EH 1 u CN CO r* H u* td a> F»4 cm VO Q EH Cn H W 3 1 05 O M «C W H r™ -o SB 33 h-1 o a *C H Q r* sc EH 53 tu H r= •4 w 2 -i f*< H o * tn r: V) H 1 s H w Oi 33 SB SB EH H T— << SB vO z 'Si H o H H CO • • £-• ss f T m U O U z. M ss 3 EH 33 H-t 3 n S3 i-4 m W H o M h) a lO a CD CM O t-l MM UJ as, s 33 33 Ml o H fe-t PM » u •» - . PhWPd. (t, . „ - OJt,W- - U ft, W- WW Cm CQB3Q. - C3CQMQUQQ- W - » 03PQU- » «U" CO" CQ- H PL| o H 05 Oh HM O 10 a 0) CO z 3 P5 O > § CO QJ , C5 H X> S3 H M *n U O T3 S3 4-1 to 3 4J 3 EH Pm 3 -H SB O J-i «s to 4-i a, u H •H 1 H 33 H 1 i-3 EH P- 04 13 05 42 03 H O H "H J3" T~ M CN sc rH M < H CO 0) "j; SB 3 •H 33 s W ' EH Cn O 33 M U H 1*4 s p< ►-I w O «n ■J MU H 33 ft 8 VO 31 to Q C/3 as PO U o u 1 to w 35 H S5 o H M H as H 03 e O4 U S oto M Q as ao 03 25 H 1-4 a uo asu Q aw W cu cuto to J3 4-1 * r- r- >s * II II II W ^3 * II II II S3 * II II II H T3 0) 4J * II It %0H vO cn ssrN a, HfH II II < II D to HM II II u II u-3 M l-H On S3 Q H ►J H O H to to 03 u-3 to u -c 00 • • «»S 30 4-) h-) Q Q to eu Q S3 'N10S3CN cfl CX H 23 35 Oh S3 as v£> H IM303 23 W O O ("■3 H O i3* as cy> OO HS3 u T m u > u H #CN r-rtj^T- 1 Q3H w w «C W w S3 as »-03t0*- 1 CjfH to as O to 03 S3 H to Q N H" inas t*s<: rH CN M 03 CN as 23 HtO Q0U03C0 CU t> O M to Cu. (N ft O uas *-«j:h«- rH u t U « *Z • 33 S3 CQ Cu (N O as O to to 3 Q O to S3 «D W CU to r» 03 S3 H 03 DC 03 U4h) «tt—Cn33ro 6H tu IK 03 25 to W O O 03O QOrooiH 33 (T< w m-I «3l '■*! ^3 03 to f-t CJ mw CM \D t-» t-« u a Q as tri 3325 0303 u H Cu ££ i*S as SZ5 H as b<3 0> O tO Cm UHCNWWCN 33 O cu O H H -l as H O ro H IH 03O P3«CrOCQHro "4-I O O H O 1 S3 a. 1 O H H «*!H S3PM 4_) 03 H O fH X3 S3 VO S3 H «S Q Pm . wcq »«: 3 r- U3 O w H (N to H W O t.TOtT>5E CT> O 03 H w m Q H «< 33 to fc-lZsC rn on 4-1 C3 •H Q 33 m S3 03 M 03 03 a. 33 S3 33 >*H uD^tJ Q r- Q O «« O S3 Oh u O 03 IHQO h3W as as Cu < Cm H Q H O ts H W W •3 (N Htor** nr- CX •4 S3 N U' HOHtOO CO O S3 O H En W 33 O u S3 S3 HCmW as^f^En ro ^3 as 05 aa a to 03 H N W tooto UJrlJ <2S rH O CO \D CQ 2 v£ a> w Q> CO M to H H HW kO <: H a -* 33 a J-T ro H- 4 CO O Cu to m «t-t 03 03 --' 03 H^ • • t-t wj Ui *■• (O S3 O PH )-toas lNfcHt-«lN CU u 31 60 (N U CQ H -a to 0Q2SP-I tOHj M«fl as II II II «q U -c«: csj II W II lb K4 m 25 W II W W u 6-1 33S3(N»HHtN •H (Li II OS 1 PU MS U5 H 03 II S3 u- H H) MtNOHII Oh S3 II ■c OC S3 M M MU M-11-M CQ Ul II t-c II U) 05 IF< (A II oa U *i CU CQ fc-< li U4 II m »*t m t*4 ll N t*. U4 H M UM KM oa II 03 II » CQ 93 « □3 II 33 33 03 U H 0333 D33 U4 11 H H n t-» H t-i II in H e *■ ♦ U4fcl 35H 32 II II H II ii ii II II ii ll to o SB O L> W tO \D ft. (-) H *: w 1 o C4 »-l O rf H H 2! 1-3 o «a: CO H JC 03 H H CO 3 5= E-t hJ H 04 O 1 W to H 53 w M X S3 H H «a! 33 o 53 lO ca M H co 33 IQ SB to f o U h-t ii M tr< ll o CJ H n i-i ll VI u ii M U< ii II Q nM M U4 33 ll 33 fc-t n t-t • m ^W^« ft, - • m cqcqq. - ajaawQuttQ- w • - 33CDCJ- •> OU» 35* 33- «:•, SB W • ,Q O w o u E-» XI ' CO II 33 O II fc-t H o- CJ HPM Q r- H- 2 Cn Cm = a «J5 w Q H- Cn H O03 W 1 wj» H H «* r> H *J &l H S3 Si. as>* H H T— •eUSJ H a: O as toss H o HH H S3 10 • • t-> 5= 1 f t— u u,~ u *4 r-iH MS a H » D Uj OH •~3 S3 M"* to W f (J H M a 'jj i/l (-) « U4 M U H m W as D an 33 U4 O HH H Cm Q CmM- -U Cm-WC^WCU q. UQ. UCm- wu- q- caa- - aacQQi-H'M- wuo » CDCQU- - UOCQCQ- • - n i CO 55 H g S rt CO U Q ao as o o CX u CM >, CMsr: Oh • o (1) •-3 tn Ln 4-1 t* IH t c ZW U fN •H HS3 z M 03H a CL Oi E-t n M 1 k3 10 H U SS tn u z tn H a ao tn H 3 1 1 CO 0) I— 1 W Q o 3 r- O a H H ^ •"3 H e ra tn CO H (0 Oj M H H U S H *C HM Q. Q • z o s: 33 tn 33 M o i*i r^ H Z «« CT» T> z W O CN vjO L> H ss «; tn 4J 3 CQ cm 5C O CJ H U r> 1 H M H 33 O « t- f% ^. H w- - en W V «, on iJ H 4-1 Z w er> -3 O W • QWW. «£ • • u WW Oi C << pa ^o + i-5 O- - UU- QUWS 1 D QU » • m uws TZ 03 •H M &-. F^ Q o PQWQCQ- P3U» Q 1 aa. - CQW« » a M o to k en . . CQ- CQ* . CQCQ«- ► uum - Q» cqcqcn U, H H «;u'<<' e C'=J!Ort:«c «t) <«: 03 < < u o «< < =r Q) n -— ■ w Z z ^~ C'3 ,e C4 as c o ac H Ss z t-< • • H t • H M M r- r\i «d z r- E-< i-N C,T H vO ID 5= z tn H 55 SB Z z «fl Z iH O O H O =5 O 33 33 O < H H VJ M (JM H Pu M CD # • C"1 fc-t S*< f t-< t- ' i H u bO » 3 fc-< u 33 Q4 D Oi fc-t u-l •H M- MH LJ n m* t- M-l fc-i (-3 X Hi .-1 Vi S3 a M MM pa fl H o M fc-t o H o o i— ( a E3 sn Q i— > Q © j* • • CO Q SB < O CO © u U3 PQ O SB to H § O H CO H SB 53 H P4 H Oj CJ OCO s Q SB Cfl 33 53 H >-l uo 60 o M 5=U Q DM 03 D- CulO g ai # 4J * W ♦ E ?-, * to H ^3 E © H XI a) 4J u, 10 CO to fN z<_> H 55 r» c o 55 E ►-J u &3k4 * E << CL OSH W w -*1 W w COk-J 55© QJ CUM to 55 O to 03 E H to Q CO 0-4 HO H 1 H 03 b- © H (N o 55 © © to to 0E Q O to E QO a co r* CD w e H w 3C -C W 6h a; H On Oh X 03 2 to X O X 03 • QO n © w 63 «s 63 U3 03 to w O W cu ^ H a H u Q « 55 to HS5 I« E-< Oh ^ S3 ^ 55 55 H O 55 !*3 CT> O HO to JW ^ 3 o cu o H H M 53 H O m H H 03© 03 03 o 4-1 O o H o I 53 Oi • o H O) Hn •43E '--A H =3 5-« 35 e ^O E H •SJ UO Cm W3 4J T~ VC o Q H (N to H H^ toss 3 03 H 63 m Q H < 3 to to 63 O Q X 33 e 03 X eg t*l Ui 33 JC => 33 •• 5M© 4-1 o r» © o o «ai ua e Oh O C 03 to Htoro HP^ 55 Em -J) fe H © H O C5 H W W HO 3 HO M < W W H to 55 03 < EH h3 P4 33 55 03O H=t a Oh PS to H e H Oj w fc-t E 03 hH WW CJ to e 03 w < U U3 EH •• H 01 H &•• 03 03 W U3 a © 03 ^ « fcH H 03© hfeto •-}•• S3 55 w 55 H w W H 09 25 03 O CO m) to HH . M WQ3 iH H o =r D D af n-) 03 n © &J to W lp» 03 W < ♦ • t-> Ui to U t-< crj E o SBpn M M r« «"" U CD H 55 OtO © H tOH 3 5= II II C3 II H 4 V> •* a II M II 03 UH MM 55 M M m fe-"U fe-« 33 Ui bO MH II 05 II MM tx, 03 H 03 W 03 CJH ■B O •H £ II «C II Jt 4 «c E ■4 H -c O* U H E Oh W s II ll O a W U4M H was i-4 M W4 II M »*» HU o M-. M NH ME M M- HW OQ cu II M3 II 03 » Oh 03 03 K4 u «- QJ» O in II M II MM *l MM MM M >*« II W H . H UE 33 o II 33 II 03 33 03 X 33 33 33 II M U H as Ui O • II fc-t II et H fc-i H ft »r« H II W * * U4SB 37 *t -** * *■ *fr <* coin ** m ww * m= «• w w *s 35srz «• w w t-t no *fc Ifi Z !HH * ^O oa O •IflH WW 4» m r- H w a >> =» r— w • H WCOW rfj-al J *■ O w z w < 'JOZ WW -t*= w M 33 ac ZH33 WW 4* Z w H s: HHO 33 T3 -t* w «a o 33 «DU ir « w UJ ** U3 O *K « •» t-l tW 4* II w m *► MO -*» II 33 33 *■* J-£«E !»• II IT" t-t - w » W" • • Pr ( WW • •» • » W- PdW> m W QUW- WWW Q» CJ^U- W» • UWQ» - CQW- • CQQQ03»* WCJWW - 33CQCJ- " U- • CQP3» • Q i<<<:a3rt!0«:«c<:< < o z M • o W CM u H •=!■ w H w W in U3 W © in H • o Z o Q H z t-t •4 U tt z o w 3 o H W fc-t z •03 CO u H w H 33 H W H w a. H ac M W H O w W sf z T - w H S3 H H D H O w M /*ID REGION= // EXEC F0RTLKG0,PARM.F0RT='N0MAP', // LIBFILE= .REGION. G0= //FORT.SYSIN DD *
< Subroutine PATH> /* //GO.SYSIN DD * where include a JOB card, accounting information, and time >_ 10 seconds specifications see region table below where the subroutine library is cataloged
listed above listed above functions to be minimized The region required to run these programs is program ILLOD-MINSUM-CBS 262K ILLOD-MINSUM-CBSA 240K ILLOD-MINSUM-CBG 226K ILLOD-MINSUM-CBGM 224K 41 The general form for the MAIN routine is COMMON A(3,), INDEX (,) CALL MINSUM(0,l,A,INDEX,,) STOP END The values used for and can be specified by the user as long as is less than or equal to 16. In particular, if an error message LENGTH IS TOO SMALL or WIDTH IS TOO SMALL is printed, the function can be rerun with a larger value for or . In particular, must be greater than the number of prime implicants divided by 32. When changes in or are made, corresponding changes in must also be made. For disjunctive form input, it is sometimes better to use the sequence CALL $PI(IN,A,INDEX,&9999) CALL TAG(A, INDEX, &9999) CALL PTRT(A,INDEX,&9999) in place of CALL $PT(IN,A,INDEX,&9999) in subroutine PATH. This sequence is better than $PT when there are many input variables. 42 APPENDIX III REMARK ON DERIVATION OF ALL I-MINIMAL SUMS All minimal sums of a switching function can be found by using the program MINSUM-CBSA and specifying a value greater than 5 for the pa- rameter PRTOPT. Derivation of all I-minimal sums for a switching func- tion in this way is inefficient, since a large number of non-I-minimal realization sets will be generated before an I-minimal sum is found. Usually we will run out of print lines before an I-minimal sum is found. The following is a more efficient way to find all I-minimal sums for a switching function using program MINSUM-CBS and program MINIC-BSA[3] . Using the program MINSUM-CBS, we can first find the number of im- plicants in an I-minimal sum for the given problem. We can also obtain the covering table of the problem in the printout and obtain the cover- ing table and symmetric permutations on it in the card output if we specify the parameter PRTOPT to value greater than 3 and specify the pa- rameter PUNOPT to a value 2 in running the program MINSUM-CBS. The card output obtained in this way from the program MINSUM-CBS is already in the input form for the program MINIC-CBSA. One can add one TITLE card and one parameter card to make it an input card deck for the program MINIC- CBSA. In preparing the parameter card for this input card deck, one can specify the parameter ZBAR to a value equal to the number of implicants in the I-minimal sum obtained from the program MINSUM-CBS. By specify- ing the parameter ZBAR to this value, a large number of non-minimal realization sets are precluded. Thus, we can obtain all I-minimal sums without printing all the non-I-minimal realization sets. 43 In the program MINIC-CBSA, each I-minimal sum is printed by listing only the row numbers of those prime implicants in it. One has to look at the covering table produced by the program MINSUM-CBS in order to find what the actual I-minimal sum is. BLIOGRAPHIC DATA 1EET 1. Report No. UIUCDCS-R-78-926 Title and Subtitle PROGRAM MANUAL FOR THE PROGRAMS ILLOD-MINSUM-CBS , LLOD-MINSUM-CBSA, ILLOD-MINSUM-CBG , AND ILLOD-MINSUM-CBGM TO ERIVE MINIMAL SUMS OR IRREDUNDANT DISJUNCTIVE FORMS FOR SWITCH}* NG FUNCTIONS Author(s) ing Heui Young and Robert Brian Cutler . Performing Organization Name and Address Department of Computer Science University of Illinois Urbana, Illinois 61801 j. Sponsoring Organization Name and Address National Science Foundation 1800 G Street, N.W. Washington, D.C. 3. Recipient's Accession No. 5. Report Date .Tunp Ifi, 1978 8- Performing Organization Rept. No. 10. Project/Task/Work Unit No. 11. Contract /Grant No. MCS-77-09744 13. Type of Report & Period Covered Technical 14. i. Supplementary Notes ). Abstracts Four programs for finding minimal sums for switching functions under different criteria are presented. The functions can be single-output or multiple-output or be completely specified or incompletely specified. These programs use the implicit enumeration algorithm to cover a prime implicant table using some new techniques to improve its efficiency. This report describes the input and output of these pro- grams . 1. Key Words and Document Analysis. 17a. Descriptors Boolean minimization, covering problem, implicit enumeration, logic design, minimal sum, programs (computer) H). Identifiers/Open-Ended Terms Computer-aided-design, backtrack programming, program manual 7c. COSATI Field/Group 8. Availability Statement Release unlimited 19. Security Class (This Report) 20. Security Class (This Page UNCLASSIFIED 21. No. of Pages 47 22. Price ORM NTIS-35 < 10-70) USCOMM-DC 40329-P7 1 \m 30 1979