off HI m ffln I en IttHlWttUUttHiHtftitMlWHt mtfUn mh uuih in? ni fiinvim ? LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN 510.8+ 1KB, no. G6I-666 cop. Z CENTRAL CIRCULATION BOOKSTACKS The person charging this material is re- sponsible for its renewal or its return to the library from which it was borrowed on or before the Latest Date stamped below. You may be charged a minimum fee of $75.00 for each lost book. Unit, mutilation, and underlining of books are reason* 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 AUG 1 4 1996 AUG 8 1996 When renewing by phone, write new due date below previous due date. L162 Digitized by the Internet Archive in 2013 http://archive.org/details/designofnornetwo661legg ->/"•« 7 Report No. UIUCDCS-R-7^-66l THE DESIGN OF NOR NETWORKS UNDER FAN- IN AND FAN-OUT CONSTRAINTS (A PROGRAMMING MANUAL FOR FLFOTRAN-Gl) by Jeffry Garnet Legge June, 197^ iE LIBRARY OF "!> JUL 31 1974 UNIVERSITY OF ILLINOIS AT URI DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN URBANA, ILLINOIS 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 SEP 6 1974 L161 — O-1096 I*> Report No. UIUCDCS-R-7^-661 THE DESIGN OF NOR NETWORKS UNDER FAN- IN AND FAN-OUT CONSTAINTS (A PROGRAMMING MANUAL FOR FIFOTRAN-Gl) by Jeffry Garnet Legge June, 1974 Department of Computer Science University of Illinois at Urbana- Champaign Urbana, Illinois 6l801 This work was supported in part by the Department of Computer Science and submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science, June 197^ • This work was supported in part by the National Science Foundation under Grant No. NSF-GJ-U0221. ^ ACKNOWLEDGMENT The author would like to express his sincere gratitude to his thesis advisor, Professor S. Muroga, for his valuable suggestions and help in the preparation of this paper and more especially for his valuable time spent in the careful reading of this thesis. The author would like to thank Mr. Jay Culliney for his guidance and his indispensable assistance throughout the period of this thesis research and Dr. Y. Kambayashi for many illuminating conversations relevant to this paper. Finally, the author is grateful to his wife, Colleen, for her support and constant encouragement throughout the past months. IV TABLE OF CONTENTS Page 1. INTRODUCTION 1 2. EXPLANATION OF TRANSFORMATIONS 6 3- PROGRAM ORGANIZATION 27 k. STATISTICS AND RESULTS k5 5. CONCLUSIONS . . 61+ APPENDIX 68 LIST OF REFERENCES. . 79 1. INTRODUCTION The design of NOR (NAN!)) networks under fan- in, fan-out constraints is important from the practical point of view. Classical minimization procedures neglect the fan- in and fan-out constraints which are placed upon the logic designer. A simple algorithm which can find minimal NOR* networks while taking into account the fan-in and fan-out constraints of a NOR gate is the topic of this thesis. Some of the published papers in this area that the author is aware of are [l], [2], and [h] . In [l], a computer oriented factoring algorithm generates a subset of common factors, selects optimum factors and indicates a realization for the factored equation. Only single-output, two-level networks with fan-in limited NOR gates are considered. In [2], fan- in limited NAND networks of intermediate to large size are considered. Some factoring techniques are used to construct tree networks with reduced gate count or levels of logic. In [k] , a computer algorithm for the syn- thesis of multiple -output, multilevel NAND networks with fan- in and fan- out constraints is presented. Common factors with the largest figure-of- merit are sought and the network is transformed, if possible, in a manner such that both fan- in and fan-out problems can be resolved simultaneously. Sometimes cascaded NAND gates as shown in Fig. 1 are used to solve fan-in and fan- out problems separately. Recently, the research group led by Professor S. Muroga (consisting of Y. Kambayashi, J. Culliney, H. Lai, and other students) of the * Since NOR and NAND are dual functions, the algorithm can also be used for NAND logic. D- ?=o^>^o x y r>rry X y Fig. 1 Solution of fan- in and fan-out problems by using cascaded NMTO gates. 3 Department of Computer Science at the University of Illinois at Urbana, Illinois, in an attempt to compromise between obtaining guaranteed minimal networks and expending excessive amounts of computation time, has devel- oped some NOR network transformation procedures, called "transduction" (for: trans formation and r eduction ) procedures. Starting with any "non- optimal" network (obtained, for example, by a very simple synthesis algo- rithm), these procedures are intended to obtain a "near- optimal" network. Fortunately, the transduction programs do not exhibit an exponential growth of computation time, as the number of gates involved in a problem in- creases. Thus, even problems involving many gates can be quickly solved. In this paper, the capability of designing NOR networks under fan- in and fan-out constraints is combined with these transduction programs. The procedures for resolving fan- in and fan-out problems include the following transformations: (l) cascaded NOR gates; (2) the parallel duplication of a gate; (3) a composite transformation (resolution of both fan-in and fan- out problems simultaneously); and (h) additional more specialized trans- formations . This paper presents a computer algorithm (contained in the program FIFOTRAN-Gl) that will convert any multiple -output, multilevel NOR network that does not satisfy specified fan- in, fan-out constraints into a network which satisfies the constraints by applying appropriate transformations. Detailed explanations of the individual transformations are given in Section 2 while descriptions of the program's (FIFOTRAN-Gl' s) organization and use are given in Section 3« Statistical results for 60 test functions run on an IBM 360/75 are given and discussed in Section k. In order to describe the transformations in Section 2 some notation and definitions must be introduced: Let n be the number of (independent) external variables. Let R be the number of (non- isolated) gates in the network. Let the set of external variables be x 1} x 2 , . .., x (and x 1} x 2 , .... x when complements are to be available). Let the set of gates in the network be g lf g 2 , ..., g-,-,. Let FI be the upper bound on the allowable fan-in to each gate of the network. Let FOX be the upper bound on the allowable fan-out from each ex- ternal variable (to other gates of the network). Let F00 be the upper bound on the allowable fan-out from each out- put gate of the network. Let FO be the upper bound on the allowable fan-out from each non- output gate of the network. A gate g. is said to be an immediate successor of gate g. (or ex- ternal variable x.) if and only if g. has g. (or x.) assigned as an J- J X J- input . Let IS(g.) (or IS(x.)) be the set of all immediate successors of the gate g. (or external variable x.). A gate g. is said to be an immediate predecessor of gate g. if and only if g i eis(g.) . Let IP(g. ) be the set of all immediate predecessors of the gate g.. A gate g. is said to have a fan- in problem if and only if |lP(g.)| >FI. An external variable x. is said to have a fan-out problem if and only if |lS(x.)| > FOX. An output gate g. is said to have a fan-out problem if and only if |lS(g.)| > F00. A non-output gate g. is said to have a fan-out problem if and only if |lS( gi )| >F0. The label g! (or x! ) indicates gate g. (or x. ) after the set of 1 1 i i immediate predecessors and/or immediate successors of g. (or external variable x. ) has been changed as the result of the application of a particular transformation. 2. EXPLANATION OF TRANSFORMATIONS Any NOR network that does not satisfy the specified fan-in, fan-out constraints can be changed by the network designer into a lowcost network which satisfies the constraints by using the transduction methods in com- bination with certain appropriate additional transformations. A set of six such transformations are proposed in this paper. Transformations Tl, T2, and T3 are used to solve fan-out problems. Transformations Th and T5 are used to solve fan- in problems. Transformation T6 is used to solve the composite problem — resolving fan-in and fan-out problems at the same time. This section explains the transformations and the conditions under which they are applied. 2.1 Transformations Used to Solve Fan-Out Problems Transformations Tl, T2, and T3 are used to solve fan-out problems. CI and C2 are the sets of conditions which must be satisfied in order that Tl and T2 may be applied, respectively. T3 is applied if neither CI nor C2 is satisfied (thus a set of conditions, C3,is not required for T3). 2.1.1 Transformation Tl (Parallel Duplication) This transformation (parallel duplication) is used to solve the fan- out problem of any NOR gate which satisfies the condition set CI. Tl is implemented by subroutine TRANA. When parallel duplication is used, only one gate is added to the net- work while the number of levels remains the same. For example, if non-out- put gate g. in Fig. 2.1.1.1 (a) has a fan-out problem and condition set CI 7 iHs ± ) is(g ± ) (a) IP(g ± ) IS(g ± ) - D D (b) Fig. 2.1.1.1 (a) Gate g. with fan -out problem (b) Gate g. 's fan -out problem is solved by applying Tl. After the transformation, the following relations hold. If |lS(g.)|<2 x FO, then |lS(g.) - D| - FO and |d| < FO. If |lS(g. )| > 2 x FO, then |lS(g. ) - d| > FO and |d| = FO. Here D denotes the set of gates fed by the transferred connections. 8 is satisfied, then transformation Tl is applied as follows: a gate, g., J is added to the network. The immediate predecessors of g. are connected as inputs to g.. As many output connections as necessary. to correct g.'s fan-out problem — up to a maximum number equal to FO — are transferred from g. to g . (let the set of gates fed by transferred connections be designated D) (see Fig. 2.1.1.1 (b)). Thus, in the case when |lS(g.)| is originally greater than two times FO, g. will still have a fan-out problem (although less than the original problem) following the transformation, and further transformations will have to be employed. The case for an output gate g. can be treated similarly. 2.1.2 Condition Set CI The conditions for the application of Tl are checked in subroutine CONDA. The transformation Tl can only be used for gates and not for exter- nal variables. The conditions are listed below; (1) |lS(g.)| > j FO if g. is a non-output gate ^ F00 if g. is an output gate (2) The number of immediate predecessors of the gate g., |IP(g.)|, must be less than or equal to the upper bound on the allowable fan-in of gate g. (Fl); i.e., |lP(g.)| < FI. If this condition were not satisfied, then the new gate g. that would be added to the network, when Tl is applied, J would have a fan- in problem. (3) For every gate g e IP(g.): the number of immediate successors of K. 1 the gate g , |lS(g )|, must be less than FO (or F00 for output gates). For any external variable x^ e IP(g. ): |lS(x^)| must be less than FOX. 2.1.3 Transformation T2 Transformation T2 is implemented by subroutine TRANE. T2 is a special transformation which is used to solve the fan-out problem of an external variable. When T2 is used, one gate is added to the network and the number of levels may be increased by at most one. For example, if gate g. in Fig. 2.1.3.1 has only one external variable, x., as an immediate predecessor and |lS(x.)| already exceeds the fan-out constraint FOX, then the fan-out problem of x. can often be solved as fol- lows: add a new gate, g , as an immediate successor to gate g. and transfer as many output connections (excluding the connection to g. ) as necessary to correct x.'s fan-out problem — up to a maximum number equal to FO — from x. to the outputs of g, (let the set of gates fed by the transferred con- J k nections be designated D). Then, the function x. is available at the out- put of gate g . Thus, in the case when |lS(x.)| is originally greater u than FO + FOX, x. will still have a fan-out problem (although less than J the original problem) following the transformation, and further transfor- mations will have to be employed. 2.1.1* Condition Set C2 The conditions for the application of T2 are checked in subroutine CONDE. These conditions are shown below for an external variable, x., and an immediate successor, g.. (1) |lS(x.)| > FOX (2) There exists a gate g. whose only immediate predecessor is exter- nal variable x.: IP(g. ) = {x . } J l j 10 x ; is(x..) - fg i ) '. is(g.) (a) x' • IS(x.) - D - 3 (g!) 1 "• ^is(g i ) ^E>~ / ^ D 00 Fig. 2olo3»l (a) IS(x.) exceeds the fan-out constraint ("b) After application of T2, x. has only | IS (x.) - D| i immediate successors. However, if | IS(x .) |< FO + FOX originally, then |lS(x.) - D| = FOX and |d| < FO J after the transformation. If IS(x.) > FO + FOX originally, then |lS(x.) - D| > FOX and |D| = FO J after the transformation. 1.1 (3) For this particular gate g. , T „/ \i J FO if g. is a non-output gate I F00 if e - . is an outnut grate? F00 if g. is an output gate 2.1.5 Transformation T3 This transformation is used to solve the fan-out problem of a gate g. (or external variable x. ) when neither condition set CI nor condition set 1 C2 is satisfied. T3 is implemented by subroutine TRANCA. When T3 is used, at least two gates are added to the network and the number of levels may be increased by at most two. There are three general cases (each case will be discussed for a non- output gate, g., but the transformations for output gates and external variables are similar): (1) If gate g. has a fan-out problem and FO < |lS(g.)| : (2 X FO) - 1, then the corresponding transformation results in Fig. 2.1.5.1. An output from gate g. is connected to a new gate, g.. An output from g. in turn is connected to another new gate, g . As many output connections as nec- cessary to correct g.'s fan-out problem are transferred from g. to g (let the set of gates fed by the transferred connections be designated D). (2) If gate g. has a fan-out problem and (2 X FO) - 1 < |lS(g.)| ; F0 P + FO - 1, then the corresponding transformation results in Fig. 2. 1.5- 2. The only difference between this transformation and that shown in Fig. 2.1.5.1 is that gate g now fans out to H newly added gates, g , g , ..., g where I is the smallest integer such that (i + l) X FO - 1 > |lS(g.)|. Output connections are transferred from g^^ to g fc , g fc , ..., g n such that g., g. , g, , .... g, each will have a fan-out of FO I x ! s I - 1 12 IS(g 1 ) - D Fig. 2.1.5.1 Gate g. after application of T3 when FO < | IS ( g . ) I < (2 X FO) - 1. After the transformation: |lS(g.) - D + l| = FO and |d| < FO. 3B(g ± ) -Q D s=l 3 k g- k £ & • Di Dj D A-l D, Fig. 2.1.5.2 Gate g. after application of T3 when (2 X FO) - 1 < |lS(g.)| < FO 2 + FO - 1. After the transformation: |d x | Dj FO, |lS(gp D £-± l = fo, Id J - |is(g.)| - (1 x fo) + 1 < 'I I IS(g.) -\JD I + 1 = FO, and I < FO. s=l 13 while g. will have a fan-out of |lS(g.)| - I X FO + 1 (which will be < FO). Let the sets of connections transferred to g , .... g be designated by ki kg Di, • ••, D*, respectively. (3) If gate g. has a fan-out problem and |lS(g.)| > FO 2 + FO - 1 then the corresponding transformation results in Fig. 2.1.5.3- The only dif- ference between this transformation and that described in Fig. 2.1.5.2 is that gate g. now fans out to I newly added gates, g , g , ..., g , J &1 Kp k^ where & is equal to FO. Output connections are transferred from g. to g , 1 K x g , . . . , g , such that g . , g, , g, , . • . , g, each will have a fan-out kp &£ J Ki K 2 K^ of FO (IDxI = | Dp | = ... = \vA = FO). In this case, g. will still have a fan-out problem (although less than the original problem) following the transformation, and further transformations will have to be employed. 2.2 Transformations Used to Solve Fan- In Problems Transformations ik and T5 are used to solve fan-in problems. Condi- tion set C4 must be satisfied in order that ih may be applied. If C^ is not satisfied, then transformation T5 is used (thus, a set of conditions, C5, is not required for T5). 2.2.1 Transformation T^ Parallel duplication can not be used for solving fan- in problems, but with the help of existing gates it is sometimes possible to solve the fan- in problem of a gate. For example, consider the two gates shown in Fig. 2.2.1.1 in which gate g. has a fan-in problem and there exists a gate g. such that IP(g . ) c IP(g.). If condition set Ch is satisfied, then a new gate g is added as shown in 14 t L IS ^i) -U D s s=l D ki < D- D, Fig. 2.1.5.3 Gate g. after application of T3 when |lS(g.)| > F0 e + FO - 1. After the transformation: |Di| = JD^] = ... = I |dJ, I = FO and |lS(g.) -|Jd | + 1 > F0» s=l 15 IP(g,) j IP( gi ) - IP( gj ) Fig. 2.2.1.1 Gate g. has a fan-in problem and IP(g.) c IP(g.) holds. iPCgi) IP(g,) IP(g.) J Fig. 2. 2c 1.2 The fan-in problem of g. is solved by transformation ik, After the transformation: |lP(g.) - IP(g.)| + 1 < FI. 16 Fig. 2.2.1.2. Gate g 's output is connected as an input to gate g., and K. 1 the output of gate g . is connected as an input to gate g . Finally, every J K connection from an immediate predecessor of g . is removed from g.. 3 i When Tk is used, only one gate is added to the network while the increase in the number of levels is at most two. This transformation is implemented in subroutine TRANDB. 2.2.2 Condition Set C^ The conditions for application of Tk are checked in subroutine CONDDB. These conditions are listed below: (1) |lP(g.)| >FI (2) There exists a gate g. such that: J v l Tn/ \i . FO if g. is a non-output gate a) |IS(g.)| < 4 °j F00 if g . is an output gate J (b) every immediate predecessor of g . is also an immediate pred- ecessor of g. . (3) |lP(g.)| - |lP(g.)| < FI - 1 - J 2.2.3 Transformation T^ This transformation is used to solve the fan- in problem of a gate g. when Tk can not be applied. T5 is implemented by subroutine TRANBB„ When T5 is used, at least two gates are added to the network and the number of levels may be increased by at most two. There are three general cases: (l) If gate g. has a fan-in problem and FI < |lP(g.)| < (2 x Fl) - 1, then the corresponding transformation results in Fig. 2.2.3.1. An output 17 D IS(g.) - D J_ Fig. 2.2.3.1 Gate g. after application of T5 when FI < |lP(g.)| (2 X FI) - 1. After the transformation: |lS(g.) - D + l| = FI and |d| < FI. 18 from a new gate, g., is first connected to g.. As many input connections as necessary to correct g.'s fan- in problem are transferred from g. to a new gate g and then the output of gate g is connected to g . (in Fig. 2.2.3.1 D designates the set of gates whose output connections are trans- ferred). (2) If gate g. has a fan-in problem and (2 x Fl) - 1 < |lP(g. ) | < Fl2 > then the corresponding transformation results in Fig. 2.2.3.2. This trans- formation and that shown in Fig. 2.2.3-1 are similar, but in this case gate g. is fed by I new gates g. , g. , .... g. where I is the smallest integer 1 3 1 32. 3 £ such that I X (FI - l) + FI > I IP(g. ) | . For each gate g . (p = 1, 2, . . . , 1 J P $>) , the output of another new gate, g is connected to g . . Input con- P J P nections are transferred from g. to g. , g, , . . . . g. such that g., g, , & i ki k 2 k» 1' kx' g , . . . , g each will have a fan- in of FI while g will have a fan- k2 ^H - 1 H in of |lP(g.)| - 1 X (FI - 1) (which will be < Fl). Here the set of con- nections transferred from g. to g (s = 1, ..., &) is designated D (s - 1, s . . . , &) , respectively. (3) If gate g. has a fan- in problem and |lP(g. )| > FI 2 , then the cor- responding transformation results in Fig. 2. 2. 3. 3- The only difference between this transformation and that shown in Fig. 2.2.3-2 is that gate g. will still be left with a fan- in problem after the transformation. Out- puts from Hi new gates g. , g. , ..., g. , where & = FI, are connected to g.. 3 1 3b J ^ 1 Again, for each gate g. (p = 1, 2, . . . , I), the output of another new gate, J P g , is connected to g . . Input connections are transferred from g. to P °P g, , g, , . . . , g such that g. , g., , . . . , g.. each will have a fan- in K l K 2 K-ft ki K 2 &£ of FI. In this case, g. will still have a fan- in problem (although less 19 iH& ± ) - U D s=l Fig. 2.2o3 2 Gate g. after application of T5 when (2 X Fl) - 1 < |lP(g.)| < FI 2 . After the transformation: |Di| = |d 2 | D ^1 = FI, \D & \ = |IP(g i )| - J&X (FI - 1) FI 2 . After the transformation: |Di| = |d 2 | = ... = |dJ = FI, I I = FI and |lP(g.p| = |lP(g i ) - IJ D S I + £ = l Ip (gi)l " FI 2 4- FI > FI. S=1 21 severe than the original problem) following the transformation and further transformations will have to be employed. 2. 3 The Composite Problem Transformation T6 is used to solve both fan- in and fan-out problems at the same time. Condition set C6 must be satisfied in order that T6 may be applied. 2.3.1 Transformation T6 This transformation is applied when condition set C6 is satisfied. T6 is implemented by subroutine TRANCC. When T6 is used, at least two gates are added to the network while the number of levels may be increased by at most two. For example, consider the original subnetwork configuration in Fig. 2.3.1.1 in which there exists a set of gates K = { g. , g. , . ... g. } 3-1 12 l k and a set of gates H = {g. , g. , ..., g. } such that the output of each J 1 J2 J^ gate g. is connected to each gate g.. There are two general cases: (1) If the subnetwork in Fig. 2. 3. 1.1 exists and satisfies condition set C6 and h < FO, then the corresponding transformation results in Fig. 2.3.1.2. An output from g. , g. , . ... g. is connected to a new gate g . x i 1 2 i-^. P The output of g in turn is connected to another new gate g . Gate g & p q. 1 then is connected as an input tog. , g. , ..., g. . The h output connec- 3 1 J2 J h tions from each of gates g. , g. , ..._, g. to gates g. , g. , .... g. 3-1 12 1 k Jl J 2 J k are removed. (2) If the subnetwork in Fig. 2. 3-1.1 exists and satisfies condition set C6 and FO < h < FO 2 , then the corresponding transformation results in 22 Fig. 2.3.1.1 Subnetwork structure upon which transformation T6 may "be applied. 23 Fig. 2.3.1.2 Subnetwork structure (Fig. 2.3.1.1) after the application of T6 when h < FO. After the transformation: |lS(g! )| = |lS(g )| + 1 - h, |lS(g! )| = |lS(g )| + 1 - h, ... , |lS(g! )| = |lS(g )| + 1 - h. |lP(g'.)| = |lP(g.)| + 1 - k k J J k, |lP(g'. )| = |lP(g. )| + 1 - k, ... , |lP(g' )| = |lP(g )| + 1 - k. 2k Fig. 2.3.1.3. The only difference between this transformation and that shown in Fig. 2.3.1.2 is that gate g now fans out to £ newly added gates g f § > • • • } g where i is the smallest integer such that I X FO > h. Q.1 0.2 ^l ~ Output connections from each of g , g , . . . , g will be fed to FO qi q 2 ^ _ 1 of the g.'s (i.e. g will feed g. , g. , ..., g. ; g will feed J qi Ji J 2 JpQ q2 g. > g- t •••> g- j etc.). Gate g will fan-out to the J F0 + 1 J F0 + 2 J 2F0 ^ h - (<# - l) FO gates: g. , •••; g- • The h output connections 3 (£ - 1) FO + 1 J h from each of gates g. , g. , . .., g. to gates g. , g. , . .., g. are 1 i 1 2 1 lc J 1 J2 k removed. After Tb is applied at least one of the gates in Fig. 2. 3. 1.1 has its fan- in or fan-out problem completely solved while the fan- in and fan-out problems of the rest of the gates may only be partially solved. 2.3.2 Condition Set 06 The conditions for the application of T6 are checked in subroutine CONDCC. A subnetwork of gates (or gates and external variables) having the generalized structure shown in Fig. 2. 3. 1.1 is sought which satisfies the following conditions: (1) There exists a set of gates and/or external variables K = { x. , . .., x. , g. , '••) g- ) (t may be or t may equal K in some cases) X t X t + 1 \ and a set of gates H={g. , g. , .... g. } such that for every g. £ H, IP(g. ) 5? K holds , for every g. e K, IS(g. ) =•> H holds, and for every J r x s x s x e K, IS(x. ) 5> H holds, r r (2) 2 < k < PI. (3) 2 < h < FO 2 . 25 J (£-1)F0 + 1 Fig. 2.3.1.3 Subnetwork structure (Fig. 2.3«l«l) after the application of T6 when FO < h < FO 2 . After the transformation: |lS(g' )| = |lS(g )| + 1 - h, |lS(g! )| = |lS(g )| + 11 11 i 2 12 1 - h, ... , |lS(g! )| = |lS(g. )| + 1 - h. |lP(g' )| = x k \ Dl IP(g, )| + 1 - k, |lP(g« )| = |lP(g )| + 1 - k, ... , J2 Jl 32 |lP(g» )| = |lP(g, )| + 1 - k. J h 26 (h) The number of gates in K with fan-out problems plus the number of gates in H with fan- in problems must be at least 2. (5) At least one fan-in or fan-out problem must be completely resolved by the transformation. 27 3. PROGRAM ORGANIZATION This program consists of two major parts controlled by a main program (referred to as FIFOTRAN-Gl). The first part (Part A) consists of 9 sub- routines, MAIN, CONCCO, ELANDO, MINI2, NORNET, OUTPUT, PROCII, RNONES, SUBNET, (written by Culliney, Lai, and Kambayashi) which read in a given function or set of functions, synthesize an initial network to realize the given function(s) using a simple algorithm, and attempt to minimize the number of gates without regard to fan- in and fan-out constraints. The sec- ond part (Part B), consisting of 16 subroutines, takes the "reduced" net- work derived by Part A and solves the fan- in and fan-out problems of all gates that exceed the constraints specified by the user. All subroutines were written in FORTRAN IV, compiled by the FORTRAN H (opt 2) compiler, and executed on the IBM 360/75J. 3.1 Flowchart Description of Entire Program The general organization and linkages between the main program and the subroutines of Part A and Part B are shown in the flow diagram in Fig. 3.1.1, and the functions of the various blocks are described as follows: (1) The given functions to be realized and constraints are read in by the program. (2) The subroutine NORNET (programmed by Y. Kambayashi) synthesizes the original network to realize the given function (s). There are many other subroutines that can be used to synthesize the original network but none of them were used in FIFOTRAN-Gl. (3) Subroutine PROCII (programmed by J. Culliney) is executed repeatedly 28 c START } JL I Read in func- tion^) and constraints. 2. Call NOREET IE i = i = i+1 Call PR OCII repeatedly to reduce the network cost. Did ^PROCII improve the cost of the net- work? k. Part B Call JEFF to resolve fan-in, fan-out problems . Fig. 3.1.1 General program flow diagram. 29 to reduce the cost of the current network, without regard to fan- in, fan- out constraints, until no further net savings (i.e., reduction in cost) can be obtained. The cost of the network is defined as follows: Cost= A X (no. of gates in network) + B X (no. of interconnections) where A and B are positive integral weights. In this program, A = 100 and B = 1. (k) Subroutine JEFF solves the fan- in and fan-out problems of the network, attempting to add as few additional gates as possible to the network. (5) If the number of iterations of the entire fan-in, fan-out solving procedure is less than MXCALL, then the program returns to (3), otherwise it continues to (6). MXCALL is the lower limit on the number of iterations which the program in Fig. 3«1-1 is required to execute. In other words, the' program is required to iterate MXCALL times regardless of the network cost. After the procedure has iterated MXCALL times, the program continues to iterate until there is no further reduction in the cost of the network. The parameter MXCALL is easily adjusted by the programmer. (6) If the cost of the current network derived by JEFF is less than the cost of the previous network derived by JEFF, then return to step (3) f otherwise stop. 3.2 Subroutine Descriptions and Flowchart for Part B of the Program The controlling subroutine in Part B is subroutine JEFF. Part B con- sists of 16 subroutines: CHGATE, CONTJA, CONLCC, CONDDB, CONDE, FDGATE, FDSUB, JEFF, PSORT, SSORT, TRANA, TRANBB, TRANCA, TRANCC, TRANTJB, and TRANE. A brief description of each of these subroutines is given below. 30 CHGATE: This subroutine updates certain necessary parameters whenever subroutine JEFF adds new gates to the network. CONDA, CONDCC, CONDDB, COKDE: These subroutines test condition sets CI, C6, Ck, and C2 respectively. (see Section 2) FDGATE: This subroutine constructs a list of available gates, i.e., all the "isolated gates" (i.e., unused gates which have been discon- nected from previously existing networks) which have not been used in the network most currently derived by PROCII. This list is constructed every time block k in Fig. 3«1»1 is executed. A maximum of 80 gates plus external variables is allowed. FDSUB: This subroutine locates all gates with fan- in and fan-out problems. This subroutine and CONDCC are used to select the particular fan- in or fan-out problem to be solved next. JEFF: This subroutine controls the general order of execution of most of the other subroutines. All error messages and printing are generated in this subroutine. A flowchart of JEFF is shown in Fig. 3*2.1 and is explained later in this section. PSORT: This subroutine sorts the immediate predecessors of gate g. accord- ing to level number and puts them in descending order. For example, the network in Fig. 3«2.2 illustrates the numbering of levels with the output gate(s) in level one. For g. = g 1 in this network, PSORT would construct a list which looks like that in Fig. 3.2.3. SSORT: This subroutine sorts the immediate successors of gate g. according to level number and puts them in ascending order. TRANA: This subroutine implements transformation Tl which is used to solve the fan-out problem of a specified gate by parallel duplication of 31 C START } Call FDGATE O Yes ■^- Call FDSUB Apply T6 (Call TRANCC) Select a gate with a fan-in or fan -out problem. Apply TU (Call TRAMDB) 7. Apply T5 (Call TRAKBB) Apply Tl (Call TRAM) 2^ Apply T3 (Call TRANCA) Apply T2 (Call TRANE) Fig. 3.2.1 Flowchart for subroutine JEFF (Part B). 32 H CM H !> a A HC\] CO XX X CO H a A M n< CO -* X X _=t- 5 in X A cy in X X LT\ H 3 A ■* in X X CD -p cS in -P w CO •H EH g AJ ?H O CD d a5 ch O w H CD !> CD CD -p o $0 a •H Sh CD CD EH OJ CJ oo tJb •H F-4 33 li gl4 g2 g3 glO ► level 3 gates > level 2 gates > empty Fig. 3» 2. 3 The immediate predecessors of gi in Fig. 3-2.2 are sorted into descending order according to level number. This gate has 7 immediate predecessors. 3h the gate. TRANBB: This subroutine implements transformation T5 which is used to solve the fan-in problem of a specified gate. TRANCA: This subroutine implements transformation T3 which is used to solve the fan-out problem of a specified gate. TRANCC: This subroutine implements transformation T6 which is used to solve the composite problem (i.e., it solves fan- in and fan-out problems simultaneously). TRANDB: This subroutine implements transformation ik which is used to solve the fan- in problem of a specified gate. TRANE: This subroutine implements transformation T2 which is used to solve the fan- in problem of a specified gate. The program which controls Part B of the program FIF0TRAN-G1 is sub- routine JEFF. The flowchart for JEFF shown in Fig. 3.2.1 is explained below: (1) The subroutine FDGATE constructs a list of available gates which can be used for subsequent transformations. (2) The subroutine FDSUB locates all gates with fan-in and/or fan-out problems . (3) The subroutine CONDCC searches for gate configurations of the type shown in Fig. 2. 3. 1.1 and after having found one checks to see if condition set C6 is satisfied. If c6 is not satisfied, then go to (5), otherwise continue to (k) . (k) The subroutine TRANCC applies transformation T6 to the network and the program goes to (1^). 35 (5) The highest level gate with a fan-in or fan-out problem to be resolved is selected next. If this selected gate has a fan-in problem, then go to (6). If the selected gate is really an external variable, then go to (9), otherwise go to (ll). (6) The subroutine CGNDDB checks to see if condition set Ck is satisfied. If yes then go to (8), otherwise continue to (7). (7) Subroutine TRANBB applies transformation T5 to the selected gate with the fan- in problem. (8) Subroutine TRANDB applies transformation T^ to the selected gate with the fan- in problem. (9) The subroutine CONDE checks to see if condition set C2 is satisfied. If yes, then go to (10), otherwise to to (13). (10) The subroutine TRANE applies transformation T2 to the selected gate with the fan-out problem. Go to (1^). (11) The subroutine CONDA checks to see if the condition set CI is sat- isfied. If yes, then go to (12), otherwise go to (13 ). (12) The subroutine TRANA applies transformation Tl to the selected gate with the fan-out problem. Go to (l^-). (13) The subroutine TRANCA applies transformation T3 to the selected gate with the fan-out problem. Go to (1^). (14) If there are any more gates with a fan-in or fan-out problem, then go to (2), otherwise return. 3.3 Flowchart Description of FDSUB and CONDCC Subroutine FDSUB is responsible for determining which gates have fan- in and/or fan-out problems and deciding in which sequence these problems 36 will be corrected. Based upon this gate, a subnetwork of connected gates is selected from the existing network, and the number of fan- in and fan- out problems among gates within this subnetwork are determined. This subnetwork is then examined by subroutine CONDCC in order to see if it con- tains a smaller subnetwork which satisfies condition set C6. If C6 is not satisfied by any smaller subnetwork, then the fan- in or fan-out problem of the selected gate will be solved alone by one of the transformations T 2 , T 2 , T 3 , T 4 , or T 5 . 3.3.1 Subroutine FDSUB The flowchart for subroutine FDSUB is shown in Fig. 3 • 3. 1.1 and is explained below: (1) A list of all the gates and external variables with fan-out problems and a list of all the gates with fan- in problems is constructed. The search for gates (or external variables) with fan-in and/or fan-out problems pro- gresses from the highest level to the lowest level (i.e., the output level) of the current network and the gates are listed in the order encountered. (2) If there are no fan- in or fan-out problems in the given network, then this subroutine returns control to MAIN. Otherwise, it continues to (3). (3) The level of the first element in the list of gates with fan-in problems is compared with the level of the first element in the list of gates with fan-out problems. If the level of the gate with a fan-out problem is greater than or equal to the level of the gate with a fan- in problem, then the program goes to (5), otherwise it goes to (k) . The gate "selected" in this step is designated g.. 37 C START ^ 1. ! Find gates with fan-in and/or fan-out problems. d Return to JEFF D Find all the immediate suc- cessors of gate g. and then find all the immediate pred- ecessors of these immediate successors of g.. Find all immediate prede- cessors of gate g. and then find all the immediate suc- cessors of these immediate predecessors of g.. 6. Return to JEjp — r~ m Construct subnetwork. Eliminate all prede- cessors and then all successors that are only connected to one gate in the subnetwork. Find the number of gates in the subnetwork that have fan-in or fan-out problems. Fig. 3o3°lol Flowchart for subroutine FDSUB, 38 (U) All the immediate predecessors of gate g. are found. All the immediate successors of these immediate predecessors of g. are found. These sets of gates will be used in (6). Go to (6). (5) All the immediate successors of the gate g. are found. All the immediate predecessors of these immediate successors of g. are found. These sets of gates will be used in (6). Go to (6). (6) Using the sets of immediate predecessor and immediate successor gates found in either (k) or (5), eliminate all IP(g. ) (or IP(lS(g.))) with only one immediate successor and then eliminate' all IS(lP(g.)) (or IS(g.)) with only one immediate predecessor. From this "reduced" set of immediate predecessor and successor gates, is found the number of gates which have a fan- in problem and the number of gates which have a fan-out problem. Note: The intersection of the set of immediate predecessor gates and the set of immediate successor gates is empty (i.e., the possibility of having a gate that is both an immediate predecessor and an immediate suc- cessor has been precluded by appropriate programming). 3.3.2 Subroutine CONDCC This subroutine uses the initial subnetwork derived in subroutine FDSUB and searches for the largest contained "K X H" configuration (See Fig. 2.3.1.1) satisfying condition set C6. The flowchart for subroutine CONDCC is shown in Fig. 3-3.2.1 and is explained below: (l) A "K X H" configuration satisfying condition set C6 is found by applying an algorithm (that is not given here) in which criterion for select- ing this "K X H" configuration are included. This is saved. 39 C START 3 1. Find a "K X H" configura- tion which satisfies con- dition set C6. Solution S 2. -^ Find another "K X H" con- figuration satisfying condition set C6. Solution S J Keep Solution S J Are ^ there anymore possible solutions? Yes Save Solution S 1 . Solu- tion S is renamed So- lution S J . Q Return to JEFF k. 5 Determine if Solution S J is satisfactory and set a, flag appropriately. Fig. 3.3.2.1 Flowchart for subroutine CONDCC. (2) Another "K x H" configuration satisfying condition set C6 is found by applying the same algorithm referred to in (l). (3) Compare the number of gates in the "K X H" configuration found in (2) with the number of gates in the saved "K X H" configuration. Save the configuration with the largest number of gates. If the configurations have the same number of gates then save the configuration in which the num- ber of "immediate predecessor" gates with a fan-out problem plus the number of "immediate successor" gates with a fan- in problem is greater. If both configurations also have the same number of gates with fan- in and fan-out problems, then keep the configuration that is already "saved". If there still exists a "K X H" configuration which could have a "solution" that is better than the "saved" solution, then go to (2), otherwise go to (k) . (h) The saved "K X H" configuration is checked to see if at least one fan- in or fan-out problem will be solved after application of T6. If so, then this "K x H" configuration satisfies condition set C6. Return control to JEFF. 3-h How to Use the Program 3.^-.l General Description Given the program source deck and data deck which will be described in Section 3.^-3, this program reads in a Boolean function or set of functions, finds an initial network, reduces the network, and then solves all the fan- in and fan-out problems that exist in the reduced network by using the trans- formations described in Section 2 according to the algorithm described in Section 3.1. 1+1 3.1+.2 Limitations (1) Networks generated employ all NOR gates (NAND-gate networks can easily be obtained by considering the dual of the desired function to be implemented). (2) Maximum number of gates plus external variables is 80. (3) Maximum number of external variables is 5« (h) "Don't cares" are currently not allowed in the Boolean functions read in by the program. (5) Both complemented and uncomplemented variables are allowed. (6) Currently, no restrictions on the number of levels are permitted. (7) Maximum number of output functions is 80 minus the number of exter- nal variables specified. 3.^-.3 Source and Data Deck A typical program deck is shown in Fig. 3«^«3.1. This program deck consists of several JCL cards, a source deck, and a data deck. The source deck includes the main program, Part A subroutines, and Part B subroutines. The data deck is shown in Fig. 3«^«3«2 in more detail and consists of one or more consecutive sets of cards — one set for each network to be synthe- sized. The set of cards for each network is organized as follows: (1) Card #1 is the heading card. Any labeling or descriptive informa- tion may be given and will be reproduced in the print out. For example, "**** 5 VAR, EXAMPLE 28" (2) Card #2 specifies 8 parameters as follows: k2 Fig. 3A.3.I Typical Program Deck J Data Deck J Source Deck ) JCL Cards *3 00111001010101110010001011001101 5 5 1 100 1 2 2 2 2 **** 5 VAR, EXAMPLE 28 3 "blank cards Fig. 3.U.3.2 Sample Data Deck I* (a) Columns 1-k: The number of external variables. (b) Columns 5-8: The number of output functions to be realized by the network. (c) Columns 9-12: The weight A assigned gates in the network cost function. (d) Columns 13-16: The weight B assigned connections in the network cost function. (e) Columns 17-20: Any symbol punched here causes the complements of the external variables to be available during the design and transformation procedures. The fan-in constraint for all gates (Fl). The fan-out constraint for non-output gates (F0). The fan-out constraint for external variables (f) Columns 21-24 (g) Columns 25-28 (h) Columns 37-^0 (FOX), (i) Columns kl-kk: The fan-out constraint for output gates (F00). (3) Card # 3 contains the function to be realized, beginning in column 1. (See Section h on how functions are expressed hexadecimally) (h) Cards #h, #5, and #6 are blank cards. Groups (3) and (k) must be repeated for each desired output function of a multiple- output network. k. STATISTICS AND RESULTS Thirty ^--variable test functions (Group I) and thirty 5-variable test functions (Group II ) were selected randomly. Each function in Group I was fed to the program under six different sets of constraints: (1) FI=F0=F0X=F00=2 (2) FI=F0=F0X=F00=3 (3) FI=10; F0=F0X=F00=2 (k) FI=2; F0=F0X=F00=10 (5) FI=10; F0=F0X=F00=3 (6) FI=3; FO=FOX=FOO=10 Similarly, each function in Group II was fed to the program under the fol- lowing different sets of constraints: (1) FI=F0=F0X=F00=3 (2) FI=FO=FOX=FOO=^ (3) FI=10; F0=F0X=F00=3 (k) FI=3; F0=F0X=F00=10 In addition to the functions in Group I and Group II a special problem taken from [h] was also tested by the program. Su and Nam's two-level NAND network which realizes the h functions given in Table I of their paper [k] is duplicated here in Fig. U.l.l. The network realization which they achieved by the use of their fan- in, fan-out problem resolving algorithm is shown in Fig. U.1.2. The following alterations were made in order that the current program FIF0TRAN-G1 could be used to solve the same problem: (l) Since the current version of FIFOTRAN-Gl is unable to handle incom- pletely specified functions, several possible combinations of l's and O's were substituted for the "don't cares" of Table I of [k] — 8 different sets k6 xj?_r x 9 £0-i - xi— i x 2 — x. O Xi~ X2 x/3_} X2 — o zi Z2 L> Fig. U.l.l Su and Nam's two-level NAM) network which realizes the k f 'unctions given in Table I of their paper [k]. hi x 2 Xo -J x 2 _J X 3 _ Xl - Xa - X 2 - Zl Z2 Fig. if. 1.2 Su and Nam's NAND synthesis of the functions in Table I of [k]. (FI = FO = FOX = F00 = 2) 48 of completely specified functions resulted. (2) Since FIF0TRAN-G1 employs NOR gates rather than NAND gates, net- works were synthesized for the duals of these 8 sets of functions. (See Table 4.1.1) Each of the 8 different sets of functions in Table 4.1.1 was fed to the program under the same constraints, FI=F0=F0X=F00=2, used in [4]. All test functions are represented here in truth table form using a hexadecimal notation. For example, Fig. 4.1.3 shows the output values of a certain 4- variable function f, corresponding to every possible combina- tion of input values (x 1} x 2 , x 3 , x 4 ). Note that the input combinations considered as binary numbers (i.e., 2 3 X x;l + 2 2 X x 2 + 2 1 X x 3 + x 4 ) start with zero and ascend to 16 in counting order, i.e., 0000, 0001, 0010, ..., 1111. The first four output values (f ) that correspond to the first four combinations of input values are used to form the first hexadecimal digit of the hexadecimal representation of the function f as shown in Fig. 4. 1.3* Continuing in this manner the resultant hexadecimal representation is found to be 4AF.1. (See Fig. 4.1.3) Table 4.1.2 contains the hexadecimal representations of the test func- tions in Group I while Table 4.1.3 contains the hexadecimal representations of the functions in Group II. This section describes the statistics obtained and discusses the results. 4.1 Statistical Analysis Table 4.1.4 is a table of the statistics compiled for the test functions in Group I with FI=F0=F0X=F00=2. The table consists of 12 columns and ^9 xi x 2 x 3 x 4 c 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > A > F > 1 Fig. ^.1.3 Hexadecimal representation of kAFl. #1 #2 #3 ^ Zl z 2 Z 3 z 4 Zi z 2 z 3 Z 4 Zi Z 2 Z 3 Z 4 Zi z 2 2 50 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 #5 #6 #7 #8 Zi Z 2 Z 3 Z 4 Zi z 2 z 3 z 4 Zi z 2 z 3 Z 4 Zl z 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Table l|-.l.l Eight dual functions for NOR network synthesis corresponding to Su and Nam's NAND network synthesis. 51 1 ' 4 A F 1 2 F 6 F E 3 A c 6 E k 2 D 8 6 5 9 D A 5 6 5 F 1 2 7 F 1 F 4 8 6 8 3 9 9 4 8 10 E A 9 B 11 6 8 F 5 12 4 6 E 8 13 B 8 6 14 E 1 3 9 15 7 C F 16 F 3 D 17 B C 7 A 18 F 6 A E 19 D E 8 4 20 6 7 7 7 21 c 1 1 B 22 6 C F 23 D 3 7 9 24 A E 1 F 25 A 8 4 9 26 B 8 9 6 27 9 B C B 28 5 7 1 29 6 4 3 3 30 9 9 3 1 k F A 2 9 5 F 6 2 A 6 C D D F 1 8 3 F F 6 8 -A 1 F 3 4 1 E E 6 5 2 k 5 9 E 6 3 B E 7 F 6 A 8 8 8 1 3 7 4 9 F 3 6 3 C D 8 8 B 5 8 9 F 9 B F D 6 c 6 D A 10 C 6 E 7 l 3 E 11 7 A 8 7 l C 7 1 12 A E k 7 B F 9 F 13 A B 9 5 6 9 A 2 14 8 8 B 7 k 9 B 4 15 k 9 C 1 3 3 1 16 9 6 B 3 6 A 5 17 6 8 6 F 2 7 1 F 18 5 B 2 3 D 7 6 3 19 8 5 8 E C 1 C B 20 D 5 k 2 D A 8 6 21 1 1 3 E 5 2 C 2 22 9 6 D 6 5 C 8 23 1 D 4 C 2 2 D 24 A 6 8 E 9 8 6 6 25 A 8 A A 5 C E 8 26 B 4 2 A 9 7 A 8 27 D 5 8 A 9 F 1 1 28 k D 1 6 B 4 1 k 29 D A 1 8 2 E 5 1 30 3 9 5 7 2 2 C D Table 4.1.2 Hexadecimal repre- Table 4.1.3 Hexadecimal representation sentation of the test of the test functions in functions in Group I. Group II. 52 30 rows — one row for each test function. Since there are totally 10 sets of constraints placed on the network synthesis problems for functions in Group I and Group II, there are 10 tables like Table 4.1.4 in the Appendix. The description of each column of Table 4.1.4 is as follows: Column 1: The number of the test function being used is given here (see Tables 4.1.2 and 4.1.3 to obtain the corresponding hexadecimal repre- sentation). Column 2: A number s in this column indicates that FIF0TRAN-G1 made s iterations of the program loop starting at block 2 in Fig. 3«1«1- During each iteration, FIFOTRAN-Gl takes either the initial network derived by NORNET (if the iteration is the first) or the network derived by JEFF on the previous iteration (otherwise); reduces, without regard to fan-in or fan-out restrictions, the number of gates and connections as far as possible by PROCII; and, finally, uses JEFF to transform the resultant network into one which satisfies the fan-in, fan-out constraints. The algorithm stops looping (i.e., terminates) when the costs of two networks derived by JEFF on consecutive iterations fail to show any improvement (i.e., when the cost of the former is less than or equal to the cost of the latter network). For example, consider function number 5 which had 3 iterations. The cost of the network derived by PROCII and JEFF after each iteration is given in Table 4.1.5. In the first iteration, PROCII reduced the network derived by NORNET and the resultant network cost was 820. JEFF resolved the fan- in, fan-out problems of the reduced network derived by PROCII and the resultant expanded network cost was 2233. In the second iteration, PROCII reduced the previous network derived by JEFF and the resultant network 53 § G G tween rk ; •H O O CD O P •H •H £> £ a P EH P P h S cd !=> cS p p G G P CD to N cd H U O U w to •H O co G G p 1 CD 1 p <4-t G CO rd a •H d ^i a) S cd •*H CD • to • co CD CD <+H •H fn o5 G o •H CD co •rl CO p co O s O s G G •H CD CD ct3 •H Ch 4^> +=> 'H P «H •H G CD G CD d -ss. ft in P O •H P P H P H H • H • O g » G d G • rO • rO M a5 p . p G bO £ O CD ^ (D O !> o O i> ^ > 5h in •H O t> O fn 6 S <^ ft-—" < — E-)w CD 0) (D +3 £3 T3 C 'O •H (D CD tH O ■H O -H o Ph M ■P CD -p CD • Ul T3 ra t3 o O o S o o 1 820 2233 2 920 2131 3 920 2131 Table k.1.5 Network costs derived by PR0CII and JEFF after each iteration for function number 5 of Table k.l.k. 55 cost was 920. JEFF resolved the fan-in, fan-out problems of this network and the resultant network cost was 2131. In the third iteration, PROCII derived a network (from the previous network derived by JEFF) whose cost was 920. JEFF resolved the fan-in, fan-out problems of this network and the resultant cost was 2131. Since the cost of the networks derived by JEFF on consecutive iterations were equal, the algorithm stops looping. Since the last iteration in the algorithm only causes the termination of the algorithm and is not a part of the sequence leading to the fan-in, fan- out restricted network of least cost, it is excluded from consideration in obtaining most of the statistical results in the table. Column 3: The average execution time per iteration in subroutine JEFF is given in centiseconds for each function. It is found by dividing the sum of the execution times of JEFF per iteration (excluding the last step) required for that function: *j- L=l 1 1=. / (s-1) where t T denotes the average execution time per iteration in JEFF and t T i denotes the execution time in centiseconds for JEFF in the ith iteration. Column k: The average execution time (t.) per iteration for each function is given in centiseconds. Let t^ and t T denote the execution 1 1 times in centiseconds for PROCII and JEFF, respectively, in the ith iteration. Thus for a function requiring totally s iterations, the average execution time per iteration is defined as: 56 *A- "s-1 1 1 / (s-1) Column 5: The total execution time for each function (t ) is given in centiseconds: *T = ) (t P. + t J. ) Column 6: For each function, the average number of fan-in problems per iteration is given. In each iteration, JEFF can be thought of as resolv- ing the fan-in and fan-out problems of a "new network" (derived by PROCIl), and each "new network" has a certain number of gates with fan- in problems. Summing these numbers, for all except the last iteration, and dividing by the number of iterations minus one gives what is defined as the average number of fan-in problems per iteration. Column 7: The average number of fan-out problems per iteration is given for each function. It is the sum of the number of fan-out problems per iteration, for all except the last iteration, divided by the number of iterations minus one. Column 8: The cost of the first network derived by PROCII is given. (See Section 3.1) Column 9: The cost of the final network derived in the second to the last iteration by JEFF is given. (See Section 3.1) 57 Column 10: The difference between the final network cost and the original network cost is given for each function — Column 9 minus Column 8. Column 11: For each function the average increase in network cost per iteration is expressed as a percentage. For the ith iteration (i = 1, 2, ..., s), let C„ and C be the costs of the network derived by PROCII and 1 1 JEFF, respectively. Then the average percent increase in cost per iteration expressed in this column is defined as: / ;-l 1=1 (0 j. - c p. i i )/ X 100 /(s-1) Column 12: The percentage increase between the original and final network costs is given for each function and is equal to: s-1 x X 100 4.2. Summary of Results Table 4.2.1 shows the "final averages of the averages" for the test functions in Group I and Group II. Each of the column entries in rows 1-10 of Table 4.2.1 is an average computed from Table 4.1.1. Each of the columns in Table 4.2.1 is averaged and the resultant "final averages of the averages" is given in row 11 of Table 4.2.1. The expression "average average" fol- lowed by some quantity indicates that an average was taken over a set of 58 s g c P H H C a •H co co 1 O 1 O C o in 3 <; -p fe CO !3 -H •H C o O CO ?-) CD P> •H O • O ave. time lr Iteration biseconds) . ave. time iteration ntiseconds) . total time ntiseconds) . ave. no. 0: blems per it' . ave. no. blems per it . ave. <$> inc t per iterat !. <$> increase ,ween orig. a •work P> w CD • CD > CD M CD > CD O CD !h CD > CD O < ft — CD CD CD > to < ft CD > to < ft' cd ra i> O < CD -H -P > CD CD EH < < ft — 4(2,2) 2.7 49.0 161.4 445.0 4.0 2.3 133.9 125.5 M3,3) 2.3 17.8 109.6 192.5 1.2 0.7 32.4 28.0 4(10,2) 2.6 13.5 102.0 214.5 0.0 2.7 51.3 47.8 4(2,10) 2.4 18.2 114.9 259.0 4.1 0.0 110.8 107.9 Mio,3) 2.2 6.6 93.4 134.4 0.0 0.7 11.7 10.3 M3,io) 2.1 7-9 98.0 147.1 1.2 0.0 24.6 22.9 5(3,3) 2.9 92.2 788.1 1855.8 5.6 4.1 102.7 94.2 5(M) 2.3 to. 3 814.8 1190.8 1.6 2.0 37.1 35.0 5(10,3) 2. 4 35-2 766.5 1287.6 0.0 4.2 44.4 to.o 5(3,10) 2.5 34.4 741.0 1295.9 5-7 0.0 79-9 71.9 Ave. 2.4 31.6 379-0 702.3 2.3 1-7 62.9 58.4 Table 4.2.1 Summary table containing all the averages of the 10 tables in the Appendix. The expression in column one indicates (column 1, row 1 for example) that the 4-variable test functions in Group I are tested by the program under the constraints FI=2 and F0=F00= F0X=2. The general expression is a(b,c) where a, b, and c are positive integers and a represents the number of variables in the test function, b represents the fan- in constraint, and c represents the fan-out constraint for all gates and external variables. 59 quantities that were averages. For example, the heading for column 3 of Table 4.2.1 is "Average Average Time In JEFF Per Iteration". This means that the entries in column 3 are averages of the average time in JEFF per iteration. Each of the tables in the Appendix has a row of averages (i.e., row 31) • These rows (l from each of the 10 tables in the Appendix) are simply gathered here in one table. Table 4.2.2 indicates the number of times a particular transformation was used during a complete run of the test functions in Group I and Group II for a given set of constraints and the total number of all transformations used. For example, when the functions in Group I were run with the con- straints FI=F0=F0X=F00=2, Tl was used 3 times (Col. l) while the total number of all transformations used was 279. The entries in Table 4.2.3 indicate the percentage of the number of times a transformation was used during a complete test run. In other words, if a. . represents the ith row and jth column entry of Table 4.2.2, the ith row and jth column entry of Table 4.2.3 (b. .) is: a. . b. . = ij 6 Z a ik k=l x 100 where i =1, 2, . . . , 10 and j =1, 2, . . . , 6o w C o •rH •p •H a o o ■p w EH H EH CM EH m En -H- EH EH vo • EH H -p o EH M2,2) 3 15 58 15^ h9 279 M3,3) 1 6 8 1 3^ 16 66 Ml0,2) 1 19 68 20 108 M2,io) 9 127 29 165 Mio,3) 1 11 11 7 30 ^(3,10) 1 h 32 5 1+2 5(3,3) 1 ^3 77 6 135 135 397 5(M) 11 10 2 hk 3^ 101 5(10,3) ^5 55 61 161 5(3AO) 21 110 78 209 Table h-,2.2 This table gives the number of times each transformation (T1-T6) was used during a test run. 6i CO C O •H -P •H •a c o o •P 03 ty H C\J ro _h- lt\ vo Eh EH Eh EH Eh Eh EH 4(2,2) 1.1 3.k 20.8 0.0 55.2 17.6 4(3,3) 1.5 9-1 12.1 1.5 51.5 24.2 4(10,2) 0.9 17.6 63.0 0.0 0.0 18.5 4(2,10) 0.0 0.0 0.0 5.4 77.O I7.6 4(10,3) 3.3 36.7 36.7 0.0 0.0 23.3 4(3,1°) 0.0 2.4 0.0 9.5 76.2 11.9 5(3,3) 0.2 10.8 19.4 1.5 34.0 34.0 5(4,4) 0.0 10.9 9.9 2.0 43.6 33-7 5(10,3) 0.0 28.0 34.2 0.0 0.0 37.9 5(3,10) 0.0 0.0 0.0 10.0 52.6 37.3 Average 0.7 12.1 19.6 3.0 39-0 25.6 Table 4.2.3 The percentage of the number of times a transformation was used during a complete test run. 62 4.3 Su and Nam's Problem As discussed in the introduction to Section 4, Su and Nam's problem (i.e., the NAND network synthesis of the set of 4 incompletely specified functions in Table I of [4] for the case when FI=2 and F0=F00=F0X=2) was converted so that it could be treated as a NOR network synthesis problem. Since this program currently can not handle incompletely specified functions, it was necessary to completely specify all functions before FIF0TRAN-G1 could be used. Eight different sets of completely specified functions (See Fig. 4.1.1) were tested, although other completions were also possible. Networks for each of the 8 sets of completely specified functions were synthesized and all fan-in and fan-out problems were resolved. The best result (i.e., the result which realizes the duals of the 4 functions of Table I of [4] with the fewest number of gates and also satis- fies all fan-in and fan-out constraints) is shown in Fig. 4.3.1- This result which is converted into NAND gate form in Fig. 4.3« 1 has 19 gates and 33 connections. This shows a 2h°J improvement over the result obtained by Su and Nam in Fig. 4.1.2: a 25 gate, 33 connection network. Since the external variable x 3 has only one immediate successor (i.e., |lP(x 3 )| = l) it is possible to replace gate g g by x 3 , thus, an 18 gate, 32 connection network is possible. It should be noted that Su and Nam's network has 6 levels while the network in Fig. 4.3.1 has 10 levels. Also, Su and Nam's output gates are all in level 1 while the output gates in Fig. 4.3.1 are allowed to feed other gates in the network and thus not every output gate is in level 1. 63 CM Pn 00 oO H fclD -h Aj 1 O ■s Eh 6 0) H ft a o3 CQ o -p S3 o •H ■s H o 'd ra C O OJ -p II o Q) O gp, O II COX co o a? ii -p a! O ON II H H <; Ps CO tab •H H H H O O O O O O O O H r-j O O o o H H H O H O O O H O H O O H CVJ Ph P-H 3 d o o o o CO -=f Ph Pq 6k 5. CONCLUSIONS A computer program (FIFOTRAN-Gl) was presented that will synthesize an initial network to realize a given function or set of functions using a simple algorithm, attempt to minimize the number of gates without regard to fan-in and fan-out constraints, and then take the "reduced" network and solve the fan-in and fan-out problems of all gates that exceed the con- straints specified by the user. FIFOTRAN-Gl' s statistics and results for 60 test functions (30 k- variable functions and 30 5-variable functions) run on an IBM 360/75J (all of FIFOTRAN-Gl' s subroutines were written in FORTRAN IV and compiled by the FORTRAN H (opt 2) compiler) under a variety of fan- in, fan-out constraints were given. In general, the number of gates in a network that realizes a particular function (without regard to fan-in, fan-out constraints) increased approximately 58.^$ after using the fan-in, fan-out resolving procedure. (See row 11, column 9 of Table U.2.1) The greatest average percentage increase (for a group of functions) in the number of gates in a network, 125.5$. occurred when the ^--variable test functions in Group I were tested under the constraints FI=2 and F0=F00= F0X=2. (See row 1, column 9 of Table U.2.1) The smallest average percent- age increase (for a group of functions) in the number of gates in a network, 10.3$, occurred when the ^--variable test functions in Group I were tested under the constraints FI=10 and F0=F00=F0X=3. (See row 5, column 9 of Table 4.2.1) Comparing results for the k- variable functions with those for the 5-variable functions under the same constraints, it can be seen from Table 4.2.1 (column 9) that in general, the percentage increase in cost 65 between the original network and the final network for the 5-variable functions was about 3 to 4 times greater than that for the ^- variable functions. Computation times were given for all the test runs. The average total time (for 30 randomly selected test functions) needed to obtain the final fan- in, fan-out constrained network from the initial "reduced" network derived by PROCII was 7-02 seconds. The longest average total time (See row 7> column 5 of Table 4.2.1) 18.55 seconds, occurred when the 5-variable functions were tested under the fan-in, fan-out constraints FI=3 and F0= F00=F0X=3. The shortest average total time (See row 5 , column 5 of Table 4.2.1), 1.3^ seconds, occurred when the 4-variable functions were tested under the fan- in, fan-out constraints FI=10 and F0=F00=F0X=3. Each average total time (See column 5 of Table 4.2.1) is generally related to the average of the average number of fan- in and fan-out problems per iteration that exist in the network (i.e., column 6 plus column 7)« For example, for the two cases just mentioned (i.e., the longest and short- est average total times) the shortest total time corresponds to the "reduced" networks derived by PROCII which have the least average of the average total number of fan-in and fan-out problems (.7) while the longest average total time corresponds to those which have the greatest average of the average total number of fan-in and fan-out problems (9«T)« Comparing results for the 4-variable functions with those for the 5-variable functions under the same constraints, it can be seen from column 5 of Table 4.2.1 that in general, the average total time for 5-variable functions was about 8 to 9 times greater than that for 4- variable functions. 66 From Table 4.2.3 it can be seen that transformation T5 was used in a greater percentage of cases (39°/0 than any other transformation. Since Tl and ih (the special transformations, i.e., parallel duplication of a gate and the transformation requiring the existence of a gate whose imme- diate predecessors are a subset of the immediate predecessors of a gate with a fan- in problem) were used in only .7% and 3-0% of the total number of transformations used, respectively, it can be concluded that these two transformations are not very useful as fan-in, fan-out resolving trans- formations. These transformations were not used very often since the special conditions which must first be satisfied were not often satisfied. Either these conditions must be relaxed or situations in which these con- ditions are frequently satisfied must be discovered. However, transforma- tion T2 which solves the fan-out problem of an external variable only was quite useful (representing 12% of the total number of transformations used). Su and Nam's problem (the problem corresponding to Table I of [k-]) was tested by FIF0TRAN-G1 and a network (See fig. 4.3.1) of 19 gates and 33 connections was obtained. FIF0TRAN-G1 includes every type of trans- formation that Su and Nam's algorithm employs, and it is felt that the fan- in, fan-out resolving transformations are possibly more efficient (i.e., add fewer gates to the network). In addition, FIF0TRAN-G1 has 3 special transformations, of which only one proved to be useful. However, Su and Nam can synthesize larger networks; the current implementation of FIFOTRAN-Gl can not handle functions of more than 5-variables because the transduction procedures can not handle more than 5-variables. The trans- duction programs can be easily extended such that more variables may be 67 used. This extension is currently underway. Thus only one of Su and Nam's examples was tested by FIF0TRAN-G1. 68 APPENDIX STATISTICS FOR ALL TEST FUNCTIONS IN GROUP I AND GROUP II In this appendix, tables of statistics like that shown in Table k.l.k are given for the test functions in Group I and Group II when run under the 10 sets of constraints given in section k. There are 10 tables — one for each set of constraints. a fl tween rk ■H CD -P •H •H & & _ -P S a3 Ej -P b o3 -p -p fl £ -p -P CD w in CD H U O fn ra w •H O ui C S3 in -P 1 CD 1 CD O ■H O O 3 •H S -P S3 -P CD CD -P H •H l"0 '—"■ * N ' «« £ CD •H CD • w • w CD CD

« rO bD ct3 -P • -P C faO C • CD ?-l CD CD CD -P CD CD O CD O •H sd ra CD W •H -H 3 X) |> 0) o >. ° O £ ^ >. h U •H O S> O !h S s < ft^ <*»-' E-i'-- ' < ft < ft O fe O < O ^bS- 1 3 46.5 126.0 371 5.0 4.0 821 1930 1109 141.3 135.1 2 2 24.0 123.0 170 2.0 0.0 612 1218 606 99.0 99.0 3 2 54.0 199.0 383 4.0 2.0 920 2334 1414 153.7 153.7 l| 3 120.0 421.0 1342 6.5 4.0 1131 3146 2015 206.6 178.2 5 3 49.5 139.0 422 5.0 2.5 820 2131 1311 152.O 159.9 6 2 20.0 130.0 174 2.0 0.0 713 1117 404 56.7 56.7 7 2 32.0 139.0 218 3.0 1.0 714 1421 707 99.0 99.0 8 4 51.7 132.2 638 3.7 3.0 925 1829 904 121.5 97-7 9 3 63.5 174.5 511 4.5 4.0 822 2132 1310 163.8 159.4 10 3 49.5 148.0 383 4.0 1.5 720 1625 905 175.7 125.7 11 2 57.0 122.0 336 5.0 4.0 721 2132 1411 195.7 195.7 12 2 80.0 210.0 614 4.0 4.0 924 3044 2120 229.4 229.4 13 5 48.2 156.5 695 3.5 2.2 822 1321 499 109.0 60.7 14 3 77-0 242.5 787 6.0 4.0 1028 2538 1510 156.5 146.9 15 3 34.0 79.5 225 3.0 1.0 614 1421 807 115-3 131.4 16 2 15.0 l4o.o 194 2.0 0.0 714 1118 404 56.6 56.6 17 2 55-0 174.0 345 5.0 4.0 822 2436 1614 196.4 196.4 18 3 43.5 110.5 330 4.0 1.5 718 1827 1109 146.0 154.4 19 3 63.5 182.0 522 5.0 2.0 923 2536 1613 175-3 174.8 20 2 14.0 4i.o 77 1.0 0.0 510 914 4o4 79-2 79.2 21 2 49.0 98.0 210 6.0 4.0 720 1930 1210 168.0 168.0 22 2 37.0 94.0 168 5.0 2.0 617 1423 806 130.6 130.6 23 3 88.0 340.5 900 5.0 4.0 927 2233 1306 147.2 140.9 24 3 35.5 91.5 244 4.0 1.5 717 1220 503 119.6 70.2 25 5 72.5 240.2 1193 4.5 2.8 927 2336 1409 140.4 152.0 26 3 88.5 379.0 1058 5.5 4.5 1231 2235 1004 169.8 81.6 27 3 37.0 123.0 328 5-0 2.5 820 1726 906 105.2 110.5 28 2 12.0 117.0 168 1.0 0.0 714 1118 404 56.6 56.6 29 3 28.0 72.5 195 2.0 1.0 614 1219 605 84.7 98.5 30 2 24.0 96.0 148 3-0 1.0 614 1017 403 65.6 65.6 ve. 2.7 49.0 161.4 445 4.0 2.3 133.9 125.5 69 Table 1 Statistics for the test functions in Group I for the case when FI=F0=F00=F0X=2. CD CD c a P IH CD ■H •H •H £> £ ti sl EH P b a? p p c c p P 0) c r-y. Fh u w w •H O w C r T J5 CD O -H • X> bO cd P • P C bO • 0) Jh 0> 0) 0> CJ > > u >: ^ u «H O £ ° !h fe a < ft— ' U •H CO -P •H •H rO ^ ri -p EH P 1 +3 ?H S a3 b a3 -p -p sd -P Q) h CU R ?h O fn ra ra id w fd ra g P 1 0) 1 CD O O •H -H a •H S -P £3 -^ (U -P H o h> -> ^"*s * — ^ <; -h <+-! ra •H ra p> ra O s 2 £ £ id •rH •H 0) 0) a3 •H -P -P «H -p -H •H id a) id -P H -e H H • H ■^9. O • o O O • a a3 a • & • rQ M a3 ■p -P id hO Sd a> ^ a> QJ 0) -p CD a> •H a ra > u > u U •H O >: ° m (in S < ft^- <;-~- EH^ < ft < ft O R O < ^^ 1 2 1^.0 11U.0 199 0.0 k.O 821 11+26 605 73.7 73.7 2 2 5.0 125.0 135 0,0 0.0 612 612 0.0 0.0 3 2 12.0 166 „0 210 0.0 2.0 920 1122 202 22.0 22.0 fc 3 32.5 192.5 570 0.0 fc.5 1131 2138 1007 90.5 89.O 5 3 15.5 72.5 187 0.0 2o5 820 1223 1+03 53.^ 1+9.1 6 2 k.O 126.0 137 o 0.0 713 713 0.0 0.0 7 2 k.O 118.0 23k 0.0 1.0 711+ 815 101 ll+.l ll+.l 8 3 21.0 128.5 373 0.0 k.O 925 1527 602 73.6 65.1 9 2 22.0 ite.o 231 0.0 k.O 822 1628 806 98.0 98.0 10 k 8.0 66.3 217 0.0 1.0 720 717 -3 28.1 -.k 11 2 17.0 87»0 166 0.0 k.O 721 1325 60^ 83.8 83.8 12 2 22.0 169.O 300 0.0 k.O 92k 2035 1111 120.2 120.2 13 3 17.0 123.0 323 OoO k.O 822 1528 706 86.0 85.9 lU 1* 19.3 125.3 U38 0.0 k.O 1028 1326 298 1+8.2 29.0 15 3 8.0 1*3-5 117 0.0 1.0 Glk 815 201 23.5 32.7 16 2 k.O 121.0 137 0.0 1+.0 71^ 711+ 0.0 0.0 17 3 13.0 101.5 250 0.0 3.5 822 1325 503 58.6 61.2 18 3 8.5 55.5 138 0.0 1.5 718 919 201 3^.3 28.0 19 3 11.0 101.0 214-8 0.0 2.0 923 1324 1+01 5^.8 1+3.1+ 20 2 k.O 31.0 1+2 OoO 0.0 510 510 0.0 0.0 21 2 15.0 69.O 122 0.0 U-.0 720 1321* 60U 83.9 83.9 22 3 8.5 56.0 152 0.0 1.5 617 1020 1+03 32.8 65.3 23 2 29.0 107.0 276 0.0 6.0 927 2239 1312 11+1.5 llfl.5 2^ 3 8.0 51.5 13^ 0.0 1.5 717 817 100 30.1+ 13.9 25 3 22.5 133.0 360 0.0 5.0 927 1630 ^33 103.5 1+6.7 26 2 29.0 161+.0 298 0.0 7.0 1231 23i+0 1109 90ol 90.1 27 3 12.5 72.0 191 0.0 2.5 820 1223 U03 53.!+ 1+9.1 28 2 k.O 106.0 121 0.0 0.0 71^ 71^ OoO 0.0 29 3 7.0 16.5 12*+ 0.0 1.0 6lk 815 201 23.5 32.7 30 2 7.0 77.0 101+ 0.0 1.0 6lk 715 101 i6.k 16.1+ Ave. 2.6 13.5 102.0 21k 5 0.0 2.7 51»3 U7.8 Table 3 Statistics for the test functions in Group I for the case when Fl=10 and F0=F00=F0X=2. 72 c a) :-■ ft o l> o -: Pi ^-^ < •3 0 C o (U Sh (DO (DO 'H P W 0) w -H-H O !> (D O > O O V i> U > U U -H O > O Sh £ $=5 . o 1 2 17.0 lOl+.O 171 5.0 o 821 1728 907 110.5 110.5 2 9.0 ni.o 1I+9 2.0 o 612 1218 6o6 99.0 99.0 3 2 20.0 159.0 26k k.O 0.0 920 2132 1212 131.7 131.7 1+ 3 38.0 21+9.0 716 6.5 0.0 1131 251+0 11+09 128.0 12I+.6 5 2 19.0 88.0 166 5.0 0.0 820 1829 1009 123.0 123.0 6 2 10.0 125.0 156 2.0 0.0 713 1117' hok 56.7 56.7 7 2 ll+.o 121.0 162 3.0 0.0 71^ 1320 606 8I+.9 8l+. 9 8 k 17.0 136.3 1+70 3.7 0.0 925 1526 601 95.2 65.0 9 3 20.0 1070O 271 k.5 0.0 822 1526 70I+ 106.1+ 85.6 10 3 19.5 93.0 267 h.5 0.0 720 1727 1007 15^.6 139.9 11 2 20.0 82 o 177 5.0 0.0 721 1728 1007 139.7 139.7 12 2 22.0 151.0 302 i+.o 0*0 921+ 203I+ 1110 120.1 120.1 13 3 19.5 1H.5 297 U.5 0.0 822 1830 1008 110.6 122.6 Ik 3 29.5 157.5 ^79 6 o 0.0 1028 2539 1511 1^1.3 1^7.0 15 2 11+.0 68.0 111 3.0 0.0 61k 1220 606 98.7 98.7 16 2 10.0 125.0 169 2.0 0.0 71k 1118 kok 56.6 56.6 17 2 20.0 139.0 303 5.0 0.0 822 2235 1^13 171.9 171.9 18 2 15.0 82.0 lk2 k.O o 718 1727 1009 11+0.5 1^0.5 19 2 22.0 151.0 263 5.0 0.0 923 2033 1110 120.3 120.3 20 2 9.0 34.0 63 1.0 0.0 510 9ll+ kOk 79.2 79.2 21 2 19.0 69.O 139 6.0 0.0 720 1728 1008 ll+O.O lUO.O 22 2 17.0 81+. ll+o 5.0 0.0 617 1221 60I+ 97.9 97.9 23 2 35.0 112.0 3I+I 6.0 0.0 927 271+3 1816 195.9 195.9 2k 3 lk.5 75.0 200 k.O 0.0 717 1220 503 105.6 70.2 25 1+ 23.0 160.7 601+ 5.3 0.0 927 2133 1206 108.2 130.1 26 3 32.0 222.5 67^ 6.0 0.0 1231 2I+39 1208 131.3 98.1 27 2 ll+.o 93.O 157 5.0 0.0 820 1626 806 98.3 98.3 28 2 7.0 111.0 ll+3 1.0 0.0 TLk 1118 kOk 56.6 56.6 29 2 10.0 61+. 102 2.0 0.0 6ll+ 1018 kOk 65.8 65.8 30 3 10.0 62.0 173 2.5 0.0 6ll+ 1016 1+02 5^.0 65.5 Ave. 2.1+ 18.2 111+.9 259J3 k.l 0.0 ZL0.8 107.9 Table 1+ Statistics for the test functions in Group I for the case when FI=2 and F0=F00=F0X=10. a G 1 CD CD o c a -P ?H •H CD -p •H •H & £ a3 -P S o3 EH -p b o5 -p -p £ £ -P -P CD ra JH (D h y* O in w M •H O ra C fl in -P 1 CD 1 CD O •H O o 3 •H ^ +> s -p O CD CD -p H ■H -3 ^~- ' — s — < -H o B v -p -P CH £ ra ^ a •i-i £ ?-i CD S cu •H CD • ra . ra CD CD <+-H •H !h oj a o HOW •H ra -P W O g s a £ •H CD CD 03 •H « U £ ° O !> ^ > !h In •H !> O ^ P^ S3 =H ft--- < •— EH^-- < ft < ft O fe < ^ 1 2 ij-.O 93.0 in 0.0 0.0 821 821 0.0 0.0 2 2 if.O 108.0 123 0.0 0.0 612 612 0.0 0.0 3 2 14-.0 148.0 164 0.0 0.0 920 920 0.0 0.0 4 5 lij-,2 84.0 382 0.0 2.8 1131 1229 98 27.7 8.7 5 2 5.0 75.0 93 0.0 0.0 820 820 0.0 0.0 6 2 4.0 118.0 130 0.0 0.0 713 713 0.0 0.0 7 2 7.0 112.0 125 0.0 0.0 714 714 0.0 0.0 8 2 12.0 127.0 141 0.0 2.0 925 1228 303 32.8 32.8 9 2 12.0 119.0 170 0.0 2.0 822 1226 4o4 49.1 49.1 10 2 4.0 79.0 95 0.0 0.0 720 720 0.0 0.0 11 2 9-0 73.0 104 0.0 1.0 721 923 202 28.0 28.0 12 2 12.0 137.0 188 0.0 3.0 924 1327 403 43.6 43.6 13 2 7.0 114.0 163 0.0 1.0 822 1024 202 24.6 24.6 1^ 3 6.5 82.0 182 0.0 1.0 1028 1025 -3 9.8 -.3 15 2 4.0 59-0 71 0.0 0.0 614 614 0.0 0.0 16 2 4.0 119.0 134 0.0 0.0 714 714 0.0 0.0 17 2 4.0 121.0 135 0.0 0.0 822 822 0.0 0.0 18 2 5.0 74.0 85 0.0 0.0 718 718 0.0 0.0 19 2 7.0 136.0 183 0.0 2.0 923 1124 201 21.8 21.8 20 2 5.0 29.0 4o 0.0 0.0 510 510 0.0 0.0 21 2 9.0 59.0 88 0.0 1.0 720 922 202 28.0 28.0 22 2 4.0 63.0 74 0.0 0.0 617 617 0.0 0.0 23 3 12.0 71.0 181 0.0 2.0 927 1229 302 31.6 32.6 21+ 2 4.0 63.0 81 0.0 0.0 717 717 0.0 0.0 25 2 10.0 117.0 171 0.0 3.0 927 1230 303 32.7 32.7 26 3 9-5 99.0 240 0.0 1.5 1231 1332 101 21.2 8.2 27 2 4.0 83.0 99 0.0 0.0 820 820 0.0 0.0 28 2 4.0 108.0 121 0.0 0.0 714 714 0.0 0.0 29 2 4.0 59.0 72 0.0 0.0 6l4 614 0.0 0.0 30 2 4.0 74.0 87 0.0 0.0 614 614 0.0 0.0 ve. 2.2 6.6 93.4 134.^ -0.0 0.7 11.7 10.3 73 Table 5 Statistics for the test functions in Group I for the case when FI=10 and F0=F00=F0X=3. ik 0) O C C -^ Jn •H O O £ 0J -p EH -P _ . -P wfe a; \-\ u o u v> v> 'Howe cE-p i aJ i aJ o o »h o O W -H (2J P fe P O O 0) (DP OH +3 CwJhW wfx, Pih ^i^ a CCifH CG cd c o-d flJTi -d $h Jh *h ^ O Sh t- 1 -P o th P (UaJocuoSo p P H G . p< $_, PO -H -p -p H P H H • H O • « G • G ai C • p • ,Q M a3 P • P CM G • (D£h O O O i> ?h >^H jn -H O > O Sh fc & < p<^^ £ cc5 to S Ifi EH -P b ri -p -p a c -P -P CD w JH 0) H !h O to co CO •H co C c | -P 1 CD 1 CD O •H o •H ■5 H° S P V CD CD -p H •H ~0 '""^ •• — ■> — > a • C ctf £ « rQ « rQ W a5 ■p ♦ -P C hD £< • CD ^ CD (D CD -p CD CD O CD O •H C co CO •H -H y ,0 > CD O £ ° O O >. u > ?H to •H !> O k s =H ft^ < — EH v- * < ft <; ft O fr < ■^ 1 2 109.0 1274.0 1712 7.0 6.0 1443 3158 1715 118.8 118.8 2 2 159.0 1722.0 2495 8.0 6.0 1648 3967 2319 140.7 140.7 3 2 84.0 793.0 1142 6.0 5.0 IO36 2041 1005 97.0 97.0 4 3 88.0 745.5 1658 3.0 4.0 1234 2038 804 98.2 65.2 5 3 87.0 612.0 1572 7-0 3.5 1237 2445 1208 114.0 97.6 6 3 4o.o 4l4.0 932 2.5 1.5 931 1330 399 47.2 42.8 7 2 89.0 797.0 1179 8.0 7.0 1342 2854 1512 112.7 112.7 8 3 79-5 678.0 1689 4.0 3.0 1235 2l4l 906 77.6 73.3 9 3 • 106.0 851.5 2139 7-0 4.5 1444 2850 i4o6 115.6 97.4 10 2 95.0 103.9 1453 6.0 5.0 1337 2748 l4ll 105.5 105.5 11 3 • 128.5 769.5 2232 9-0 6.0 1550 3462 1912 130.4 123.4 12 2 70.0 412.0 709 7.0 5.0 1036 2243 1207 116.5 116.5 13 3 . L23.0 980.5 2379 8.0 6.0 1548 3565 2017 117.0 130.3 14 5 ■ L10.2 797.0 3483 6.2 3.0 1747 2240 493 102.5 28.2 15 2 37.0 748.0 919 2.0 2.0 1029 1432 403 39.2 39.2 16 3 89.5 660.0 I809 6.0 3.0 1344 3057 1713 116.6 127.4 17 5 . LO9.8 518.5 2659 6.0 6.0 1245 2750 1505 153.0 120.9 18 2 67.O 602.0 886 6.0 3.0 1237 2244 1007 81.4 81.4 19 3 44.5 518.5 1157 3.0 0.5 1129 1732 603 62.7 53.4 20 3 : L01.0 868.0 2043 7.0 6.5 1545 3157 1612 107.6 104.3 21 3 76.0 771.0 1938 2.5 3.0 1437 2445 1008 82.4 70.1 22 2 LOO.O 1210.0 1713 8.0 5.0 1647 3461 1814 110.1 110.1 23 3 60.0 823.5 1942 2.0 4.0 1543 2246 703 70.6 45.6 24 2 . L29.0 1216.0 1757 6.0 3.0 1339 3053 1714 128.0 128.0 25 3 51.0 755.5 1653 3.0 2.5 1131 1834 703 69.2 62.2 26 3 . L45.0 1199.5 3242 7.0 4.0 1548 3664 2116 124.1 136.7 27 3 64.0 493.5 1241 4.0 2.0 1136 2039 903 88.6 79-5 28 5 87.8 563.2 2533 4.8 3.0 1442 2140 698 92.3 48.4 29 2 L34.0 953.0 1739 7.0 7-0 1346 3565 2219 164.8 164.8 30 5 L03.2 793.0 3668 4.8 4.2 1546 3160 1614 96.2 104.4 we. 2.9 92.2 788.1 1855.8 5.6 4.1 102.7 94.2 75 Table 7 Statistics for the test functions in Group II for the case when FI=F0=F00=F0X=3. § •H c a etween ork -P •H •H •° ^ -P S cd H -P -p •p G G -p -P CD w Cr. cd !> O !> *H > U ^H •H > ^ fi s CD O -H CD -p tS O CD O S p P Ch d W T3 a •H (D ^ (D £ CD •H CD • w • w CD CD <+H •H in 0J d o g CD CQ iH (0 P W s s d d •H CD CD 03 •rl (U O > O O > ^ > M fn •H O t> O ^H 6 s ri -p 0) o c c -P ^ •H O O j; O M +3 EH -P +2 S HfnO^M W -HOWC p l CJ l 0) O O -HO .h s p S -p o o o a; -p oh ,Jj C x-n *— > •— n 2 .h 2 -H o wed cd £ rwShW w E-m fa J»4 -« c # ft cc o S-H-HCftC .. S^S^hojo o ft ft -p M 4n O P o o p cy aj o a> o Q) .p O O to -5 w pwOSOSC C -H « ^ a3 O .hpp>H-P H H • H O . a • C ri a • ,a • ,a hO o3 -P • -P CM . w th -h _p O > O O O > ^ >• fH ^H -H O j> O ft 1 2 37.0 lOOl+.O 1291 7.0 0.0 ll+l+3 2856 1^13 97.9 97.9 2 1+7.0 IO99.O 1506 8.0 0.0 161*8 3261 1613 97.9 97.9 3 2 30.0 693.0 932 6.0 0.0 1036 1737 701 67.7 67.7 1* 2 30.0 IOII4.O 1156 1+.0 0.0 1231+ 19^0 706 57.2 57.2 5 3 1*9.5 14-38.5 1180 7.0 0.0 1237 2750 1513 136.3 3^2.3 6 3 19.0 1+03.0 897 2.5 0.0 931 1330' 399 36.3 1*2.8 7 2 3I+.0 7U2.O 1016 8.0 0.0 131*2 2551 1209 90.1 90.1 8 3 32.0 609.O 1355 1*.0 0o0 1235 1939 701* 61.3 57.0 9 1* 39.0 538.3 1786 6.3 0.0 ll*l*l* 2ll*3 699 77.9 ^8.1* 10 3 33o5 652.O 1503 6.0 0.0 1337 2ll+2 805 78.1 60.2 11 2 50.0 769.O 1266 10.0 0.0 1550 3061 1511 97.5 97o5 12 2 30.0 365.0 61+1* 7.0 0.0 1036 201+2 1006 97.1 97.I 13 2 1*1*. 1009.0 1326 8.0 0.0 151*8 3160 1612 ioi*.i ioi.1 ll* 5 1+1.5 677.2 29I+7 7.0 0.0 17I+7 2651 901+ 86.0 51.7 15 2 19.0 722.0 821 2.0 o 1029 1330 301 29.2 29.2 16 2 1*5.0 81+3.0 1131+ 6.0 0.0 13I+I+ 2757 11+13 105.1 105.1 17 3 38.5 325.5 882 6.0 0.0 121+5 21+50 1205 98.2 96.8 18 2 30.0 531.0 776 6.0 0.0 1237 201+3 806 65.2 65.2 19 2 2l*.0 76O.O 89I+ 3.0 0.0 1129 1735 606 53.7 53.7 20 3 36.5 736.0 1711+ 7.5 0.0 15I+5 2855 1310 82.3 81+. 8 21 3 23.5 687.0 I609 2.5 0.0 11+37 211+2 705 51+.9 !+9.1 22 2 1+2.0 111+6.0 1583 8.0 0.0 161+7 3262 1615 98.0 98.O 23 3 20.0 582.0 1381 2.0 0.0 151+3 211+8 605 50.8 39.2 21+ 2 39.O 1060.0 1332 6.0 0.0 1339 251+7 1208 1+7.1+ 1+7.1+ 25 2 25.0 1231+.0 1362 3.0 0.0 1131 1837 706 62.1+ 62.1+ 26 3 38.5 708.0 1730 6„5 0.0 15I+8 23I+6 798 77.0 51.5 27 3 27.0 1*18.5 979 l+.O 0.0 1136 1838 702 61+. 1+ 61. 8 28 2 32.0 971.0 12I+5 6.0 0.0 il*l*2 2552 1110 77.0 77.0 29 2 1+0.0 872.0 1172 7.0 0.0 131*6 2759 11+13 105.0 105.0 30 3 31+.5 619.5 11+58 5.5 0o0 15I+6 211+2 596 82.2 38.6 Ave. 2,5 31+.1+ 71+1.0 1295.9 5.7 0.0 79.9 71.9 Table 10 Statistics for the test functions in Group II for the case when FI=3 and F0=F00=F0X=10 . 79 LIST OF REFERENCES [l] D.L. Dietmeyer and P.R. Schneider, "A computer-oriented factoring algorithm for NOR logic design/' IEEE Trans. Electron. Comput., Vol. EC-14, pp. 868-87^, Dec. I965. [2] D.L. Dietmeyer and Y.H. Su, "Logic design automation of fan-in limited NAND networks/' IEEE Trans. Comput., Vol. C-l8, pp. 11-22, Jan. I969. [3] Y.H. Su, "Multiple -output NAND networks," Electronic Design 23, pp. 98-IO5, Nov. 8, 1973 . [U] Y.H. Su and C.W. Nam, "Computer-aided synthesis of multiple- output multi-level NAND networks with fan- in and fan-out constraints," IEEE Trans. Comput., Vol. C-20, pp. Ikk5-lk55, Dec. 1971. IBLIOGRAPHIC DATA HEET 1. Report No. UIUCDCS-R- 7^-661 3. Recipient's Accession No. Title and Subtitle ' THE DESIGN OF NOR NETWORKS UNDER FAN- IN AMD FAN-OUT CONSTRAINTS ( PROGRAMMING MANUAL FOR FIFOTRAM-Gl) 5. Report Date June, 1974 Author(s) Jeffry Garnet Legge 8. Performing Organization Rept. No. Performing Organization Name and Address Department of Computer Science University of Illinois at Champa ign-Urb ana Urbana, Illinois 6l801 10. Project/Task/Work Unit No. 11. Contract /Grant No. NSF Grant No. NSF-GJ-^0221 2. Sponsoring Organization Name and Address National Science Foundation 1800 G. Street, N.W. Washington, D.C. 20550 13. Type of Report & Period Covered Technical Report 14. i. Supplementary Notes Abstracts This report presents a simple algorithm (contained in the program FIFOTRAN-Gl) which can find minimal NOR (NAND) networks while taking into account the fan- in and fan-out constraints of a NOR (NAND) gate. The capability of designing NOR networks under fan-in and fan-out constraints is combined with transduction programs (written by S. Muroga's research group). FIFOTRAN-Gl can convert any multiple -output, multi- level NOR network that does not satisfy specified fan-in, fan-out constraints into l network which satisfies the constraints by applying appropriate transformations. This report serves as a programming manual for FIFOTRAN-Gl. 1. Key Words and Document Analysis. 17a. Descriptors fan- in; fan-out; transduction; transformations; constraints; multiple-output; multi- level networks; NOR (NAND) network synthesis. 1). Identifiers /Open-Ended Terms 1.. COSATI Field/Group 1 Availability Statement r, 'M NTIS-35 ( 10-70) 19. Security Class (This Report) UNCLASSIFIED 20. Security Class (This Page UNCLASSIFIED 21. No. of Pages 83 22. Price USCOMM-DC 40329-P7I *c, J ^ Ball m TOmgHHmtfflwni»trt^m»mitmi»HH»tMi Bi i iwiu uu uwHHW