AUTOMATED LOGIC DESIGN TECHNIQUES APPLICABLE TO INTEGRATED CIRCUITRY TECHNOLOGY R. Waxman, M. T. McMahon, B. J. Crawford and A. B. DeAndrade IBM Components Division, East Fishkill Facility Hopewell Junction, New York INTRODUCTION a non-iterative machine function point of view), the more part numbers are required. The most versatile package is a simple logic connective for exa.mple a NAND; however, the pin-to-circuit ratio is unacceptably high. A way must be found to obtain complex logic packages which do not require an infinite variety of package types. A possible solution to the problem is to use Large Scale Integration (LSI), letting most packages be customized and still large enough to reduce the quantity of packages in any machine. The customization of each part leads to inventory problems at the place of manufacture. In addition, the complexity of each part may lead to many wiring layers which may be inaccessible for engineering changes. If an error is discovered during the fabrication process, the part may have to be scrapped. This delays delivery and increases cost of an acceptable part. Another possible solution is the utilization of chips or cells having a certain defined logical complexity, flexibility, and acceptable pin-to-circuit ratio. This would enable engineering changes and modifications at the chip or cell level, thus making engineering changes of the interconnections between cells possible. The proposed approach described in this paper is a compromise between a fixed interconnection pattern and entirely discretionary wiring between Rapidly advancing integrated circuit technology has placed many new and often unforeseen demands on logic packaging techniques and, .hence, is also impacting traditional computer design concepts. For instance, one of the most pertinent and immediate requirements is the. optimum utilization of input/ output (I/O) connections since the package size is strongly dependent on such connections. The package efficiency is measured in part by the I/O pin-tocircuit ratio, assuming the circuits in a package are connected in a way to provide an optimum logic function. Another potential problem to be considered is power dissipation, since integrated circuits may be contained in extremely small areas. Consequently, it is imperative for a logic designer to interconnect .many circuits within a package, thereby reducing I/O pins, yet' not overburden a package with more heat than it can safely dissipate by the cooling provided. The above considerations are further impacted by the fact that integrated circuit technology inherently should provide inexpensive circuits. Thus the logic can be reasonably redundant to accomplish the minimum I/O pin-tocircuit objective as well as to minimize package types. The more versatile a package, the fewer types are required; the /more functional a package (from 247 From the collection of the Computer History Museum (www.computerhistory.org) 248 PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1966 cells on a wafer. That is, the interconnection of optimized fixed pattern logic arrays may be programmed to nbtain varinus logic functions. Some related work has been done in this area. For instance, an array of logical elements which are interconnected in a specific pattern has been suggested. 1 Each logical element may be programmed to perform one nf several two-variable functinns by cutting certain interconnections within each cell. A similar approach has also been repnrted by AFCRL.2 In that study it was proposed that each element be a NOR with possible interconnections to' any or all eight neighbor NOR's. The interconnectinn pattern thus determines the functinn that is to be obtained. The work leads to' speculation that a computerized approach might lend more sophistication to the synthesis procedure. TRADITIONAL COMPUTER DESIGN PROCEDURE The traditional procedure in designing a computer is first to define its major logical sections. The data flow paths are usually designed initially since they are generally well defined. Controls and non-iterative sections are determined last since they are heavily dependent on data flow organization. In recent years, the controls have become more organized through use of read-only memories (i.e., microprogramming) . The read-O'nly memory replaced much isolated and non-iterative hardware. The various parts of the computer are still packaged in much the same way as they were first organized on paper. That is, the adders, registers, shifters,and other iterative networks are packaged to take advantage of their repetitive occurrence within the machine. The non-iterative sections are added without apparent organization. How is the designer using integrated circuits presently? He is packaging iterative logical networks in an attempt to make efficient use of integrated circuits: These adders, registers, etc. have a high circuit density relative to the input/output connections to an integrated circuit element. He is packaging unit logic on integrated circuit elements to satisfy the non-iterative logical sections of a machine. These elements have a low circuit density relative to the input/output connections to' an integrated circuit element. In other words, his design philosophy has not changed but succeeded in locking him into a pattern that will not permit efficient use of monolithic technology. How can the designer break out of this pattern? He is starting to change the pattern by packaging highly dense one-of-a-kind integrated circuits. This is efficient from the technology point of view, but creates inventory problems as well as greater fabrication cost due to the singularity of each part. Large Scale Integration (LSI) is being used in a manner which may reduce total parts, but not necessarily total part types. Problems of inventory and engineering change capability must be overcome. Also being investigated are the use of logical arrays in matrix form. Each cell at present is usually a simple logical connective, which results in an inefficient use of the elements because of interconnection limitations on the matrix. To summarize, the relatively high cost of a component with discrete elements has never permitted the reduction of total part numbers by designing with a reasonable amount of redundancy. Although cost criteria and packaging techniques have changed today, logic design techniques have not kept pace. Economy now requires a reduction in parts, but not necessarily a reduction in logical elements. In fact, logical element redundancy can be a big factor in cost reduction if used properly. Efficient packaging today demands high circuit densities to take advantage of monolithic technology. MULTIPURPOSE LOGIC CELLS AS A SOLUTION An approach adding sophistication to the above ideas will be described in this study. Engineers already have taken the first step by proposing logical elements of the AND-OR variety (i.e., AND's feeding OR's). The limitation is that many a designer has been trained to see AND-OR groupings on the logic sheet, and that he imposes this AND-OR restriction on logic wherever permissible. He unfortunately is unable to see more complex functions that are not in the form (AND-OR), used in several equivalent forms. If he could, he would have available multiple-purpose logic blocks with an efficient circuit density relative to input! output ports. In an LSI application, he would have an array with complex yet versatile cells. Wiring of the final interconnection between cells could be one of the last 'steps of the process, perhaps allowing all personality wiring to be accessible for engineering change. Person- From the collection of the Computer History Museum (www.computerhistory.org) AUTOMATED LOGIC DESIGN TECHNIQUES ality wiring is the wiring of interconnections between cells which establishes the desired function of the LSI wafer. A cellular array built on Large Scale Integration (LSI) principles would achieve the following objectives: 1. By making each cell a complex function, a large percentage of the wiring (the wiring of each element) could be completed before committing the package to its ultimate functional use. 2. By making each cell with a favorable pin-to-circuit ratio (where pin means I/O ports from each cell), the final personality wiring complexity may be reduced. This enables all personality wiring to be done on "outside" layers. 3. Reduce the inventory of different parts (since personality is the last step of the process) . 4. Throughput to the user is faster since impersonalized arrays are available "off the shelf." 5. A mixture of fixed pattern wiring of cells with discretionary wiring between cells would result. This would provide a compromise between long computertime high-wafer yield discretionary wiring between every circuit, and short computer-time low-wafer yield fixedpattern wiring between every circuit. The problem then is this: What logical functions should complex cell elements generate? This study describes a tool to aid in determining an optimum set of multipurpose logic blocks, personalized to a given computer or set of computers. 249 at the output of this block. For the same input variables, two different functions are available at the output-the true and complement function. Now if the input variables are; permuted (i.e., ordered differently on the input leads), it is possible to change both the output function and the complementary function into other functions which are, by definition, in the same equivalence class. That is, the internal circuitry of the block has not changed, but a different logical function has been obtained simply by permuting the input variables. If, in addition, both true and complement are available to the input (not both at the same time, but whichever one is needed), more functions both in true and complement form are available at the output. This last freedom of both true and complementary variables available at the input (one or the other, but not both) is reasonable since we are allowing both true and complement of every function to be available at the output of the logical block (see Fig. 1). DESCRIPTOR PROGRAMS The equivalence class descriptor program generates an identical octal number for any function in a particular equivalence class. The program is limited to functions of six variables or less. The input to the descriptor program is the octal number representation of the function column generated from a NAND BLOCKS A THEORY OF EQUIVALENCE CLASSES The basic theory to be applied to the automated design procedure proposed in this study is that of equivalence classes. Another approach might be that of pattern recognition of logic clusters. However, the pattern recognition approach lacks the ability to detect logically equivalent functions that have been laid out in different patterns. Suppose a logic block existed which could implement a particular function with a given set of variables at its input. Suppose also that both the true and the complement of that function were available OR 12: BF IF B: C THEN '2 : F : A E : D :. INVERT + SF + E ~ THE TWO FUNCTIONS ARE IN THE SAME EQUIVALENCE CLASS Figure 1. Example of equivalence class theory. From the collection of the Computer History Museum (www.computerhistory.org) 250 PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966 6-variable truth table. Both the truth table and descriptor programs are written in FORTRAN and must be run separately due to the limited core storage capabilities of the 1620 computer. Once a logic cluster has been partitioned out, the computer running time to obtain the descriptor for the cluster is one to two minutes. The output of the system is a list of 22-digit octal numbers which represent the output function for every cluster partitioned out of the original logic. By comparing the numbers in the list, it is possible to obtain the quantity of each equivalence class required to reimplement the original logic. One of the major constraints of the system is its limitation of function size to six variables or less. With the present technique for generating a descriptor by manipulation of truth tables, it is not economical, time-wise, to handle larger functions. A 6-variable true table has 64 rows and 6 columns. For each additional variable, the size of the truth table matrix doubles in length and increases one column. In order to handle a 12-variable function, the truth table and descriptor programs would have to manipulate a matrix with 12 columns and 4096 rows. The octal descriptor would have 1366 digits. Even on a very large computer, the running time for descriptor generation and comparison would be in the order of hours for a 100 cluster partitioning. Also, a 1366 digit descriptor is not the ideal input to the logic designer who is asked to implement the function. Storage of a reference table of all functions with their descriptors is not practical since there are 2n 2 functions of n variables. To overcome these limitations, the following technique to generate an equivalence class type descriptor will be incorporated into the system. Descriptors for functions of greater than 12 variables can be realized. The descriptor is quite short and its length is not directly dependent on the number of variables in the function. There is also a correlation between the descriptor and the physical implementation of the logic (see Fig. 2). The steps for obtaining the descriptor are as follows: 1. Calculate the Boolean expression for the output of the logic cluster that has been partitioned out of the original logic. The expression should be calculated in sum of products form. Either the true or inverse form of the output A F = ABC + BDEF + AB DESCRIPTOR = 432 TWO LEVEL IMPLEMENTATION AND A AND OR ,B Figure 2. Descriptor example. expression can be used, depending on which gives the sum of products form having the least number of terms. 2. Assign to each term in the expression a number corresponding to the number of variables in the term. An illustration is given below: Function Descriptor = ABC 3 + DEBF + AG 4 2 3. Permute the digits to give the largest number; i.e., largest digit first, smallest digit last. The descriptor resulting from the function shown in the illustration will be 432. Since we are allowing both true and complement outputs of every function, the bars appearing over the variables in the Boolean expression do not have to be accounted for. If an inverted signal is required, the complemented output of the logic block generating the .signal is used. In the case of the example given, the physical implementation of the function could be a 4-way AND, a 3-way AND and a 2-way AND, all connected to a 3-way OR block. Thus it is a very simple matter to go from the descriptor to an actual implementation. From the collection of the Computer History Museum (www.computerhistory.org) AUTOMATED LOGIC DESIGN TECHNIQUES 251 It is possible that two functions in the same equivalence class (by the classical definition of equivalence) could have different descriptors. In actual practice, however, this would occur only a small fraction of the time. An important advantage of a descriptor of this type is that many equivalence classes can be implemented from one descriptor. To realize this advantage, the logic described by the descriptor would have to be implemented in two levels of logic. In the case of the descriptor 432, all functions having a descriptor of 3 digits, the first digit being 4 or less, the second digit being 3 or less and the third being 2 or less, could be realized by the logic used to implement the 432 example. THE SYSTEM HARDWARE An IBM 1620 Mod II Data Processing System coupled to a 4554 Video Display unit was used to implement the automated technique. The display has its own buffer, making it independent of the 1620 as far as maintaining the visual pattern on the CRT. The logic designer may. communicate with the display unit by use of a light pen or through two sets of pushbutton switches. The program and data may be read into the 1620 from cards, or it may be stored on a disk pack and called by name into the 1620 core storage. Because of core memory limitations, all programs are stored on the disk and called into core storage by the main program when needed. MAN-MACHINE PARTITIONING TECHNIQUE The automated technique consists of a general man-machine interaction program to aid the designer in partitioning logic to a useful set of multipurpose logic blocks. It is in a form compatible with a logic designer's present partitioning method-that is, it allows a designer to cull out of larger sections of logic, small partitions that have meaning to him. The advantage of the automated synthesis technique is that it results in computer building blocks consistent with technology requirements of Large Scale Integration without mushrooming part numbers. A typical application of the system will be described. Reference to Fig. 3 will aid in understanding the flow through the system. Figure 4 illustrates the IBM 1620 Mod. II system employed in the automated partitioning technique described in this section. The first step in the procedure is to generate the GOOD It UNPARTITION LOGIC itlNDICATES LIGHT PEN COMMANDS Figure 3. Flow chart of logic partitioning. logic preliminary to partitioning it. Initially, the program is ready for a light-pen interrupt. At this point the designer sees an array of 7 X 7 diamond shaped dots on the screen. At the bottom of this array is a set of instructions, as shown in Fig. 5. By firing the light pen at the touch point adjacent to each instruction, the designer may choose the desired action. In designing logic, the first step could be to activate the touch point adjacent to the type of logic block the designer wished to draw, for example "AND." Once this has been done, the light pen may be pointed to any of the diamonds in the 7 X 7 array. As each diamond in the array is addressed by the light pen, a logic block will be drawn around it and labeled as the particular logic function corresponding to the instruction touch point previously activated (see Fig. 6.). The logic on the screen may be designed by interspersing AND's, OR's and INVERTERS, or the designer may work from a pencil sketch and is able to put on the screen all the AND's followed by all the OR's, followed by all the INVERTERS, in any sequence desired. Once all the logic blocks are on the screen, as shown in Fig. 7, the designer can point the light pen at the instruction entitled "DRAW LINES." He may From the collection of the Computer History Museum (www.computerhistory.org) 252 PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966 Figure 4. The IBM 1620 Mod. II Data Processing System, coupled to an IBM 4554 Video Display Unit, used to implement the automated logic partitioning technique. then connect the logic blocks in the desired pattern by pointing to the end point of each line he wants drawn (see Fig. 8). The computer program then draws the lines. When the logic is completely interconnected (Fig. 9), the designer may then point to the instruction label entitled "LABELS." A box with labels of one letter will appear on the bottom of the screen. The initial letter in the box is "A." The designer may then point to each input he wishes to label "A." If he wishes to label an input "B," he points the light pen to the block with the "A." The label changes to "B" and all inputs subsequently addressed by the pen will be labeled "B" (see Fig. 10). He may then continue to label all inputs down through "z" (Fig. 11). Should the designer make an error in drawing the blocks, lines, or labels, there are instruction touchpoints for erasing blocks, lines, and labels. He may then go back and draw in the correction by the appropriate light-pen procedure. In place of a manual input, the system is capable of accepting into the disc file up to several thousand blocks of interconnected logic. Up to 49 blocks of this stored logic may be placed on the screen at any one time. When the logic has been placed on the screen, the designer may point at the instruction touchpoint entitled "FUNCTION." When the program is in this mode, pointing at any block output will . result in the Boolean function being printed out on the screen for up to three prior levels of logic; i.e., anylabeled inputs up to three prior levels, as well as the designation numbers of any blocks feeding the third level of logic, will appear in the Boolean expression. The number of variables in the function mode of operation is not limited (Fig. 12). If the designer desires to partition the logic into smaller segments, he may point his light pen at the instruction touchpoint labeled "PARTITION." Then, by pointing the light pen at the connected logic blocks which he· desires to partition from the overall cluster on the screen, he directs the computer which blocks are to be partitioned. The next operation is to energize the instruction touchpoint labeled "DRAW PARTITION." All logic then disappears from the screen, except for the blocks that were partitioned out, as shown in Fig. 13. If the function is limited to six input variables, the touchpoint labeled "TRUTH TABLE" may be energized. When the output for the point at which the truth table is desired is· activated by the light pen, the octal number representing the truth table will be recorded on a punched card. This information may then be fed into another program which will deter- From the collection of the Computer History Museum (www.computerhistory.org) AUTOMATED LOGIC DESIGN TECHNIQUES mine the classical equivalence class descriptor of that function. The function routine may also be used (Fig. 14). The other approach mentioned earlier will enable us to obtaIn a descriptor which is not limited to six variable functions. This unlimited variable descriptor will be incorporated into the system represented in Fig. 3. In order to give the designer some idea of how this partitioning is progressing, he may touch the instruc- 253 tion point labeled "UNPARTITIONED LOGIC." This restores on the screen all the logic which has not been partitioned, minus those positions which have been partitioned out, as shown in Fig. 15. If for some reason the designer needs to refer to the overall cluster of logic, he may energize the instruction touchpoint labeled "REDRAW LOGIC." This will draw all the logic blocks back on the screen with the partitioned section showing in its original posi- Figure 5. Light-pen instructions (bottom) and touch points. From the collection of the Computer History Museum (www.computerhistory.org) 254 PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966 tion but disconnected from the rest of the logic as indicated in Fig. 16. If the partition does not meet some arbitrarily established criteria, the designer may energize the instruction touchpoint labeled "UNPARTITION." He may then point his light-pen at Figure 6. Logic block generated by firing light-pen at touch point. each of the blocks that have been partitioned out, energize the instruction touchpoint labeled "REDRAW LOGIC," and the logic will then appear on the screen with the section that had been partitioned, reconnected as it was originally displayed. The designer then continues to partition the logic, calling out the instruction, "UNPARTITIONED LOGIC" until all the logic on the screen has been partitioned (Fig. 17). The designer may operate on larger sections of logic by means of the touchpoint labeled "SHIFT LOGIC." The CRT then acts as a window through which the designer may look at any section of 49 blocks or less of the entire logic stored on the disk. Once "SHIFT LOGIC" is activated, another set of instructions appear at the bottom of the screen (see Fig. 18) which enables the designer to shift the logic on the screen, to the right or the left the number of blocks specified. Figure 18 shows the shifting instructions on the bottom of the CRT coupled with the logic as yet unpartitioned. Figure 19 shows this logic shifted three columns to the right. The logic for a complete computer can be visualized as being stored on a "scroll" which is seven logic blocks high by a couple thousand logic blocks wide. All inputs to a 49-block cluster are either labeled as a primary input with letters or with the designation number of the logic blocks that feed the cluster (Le., logic blocks on the part of the "scroll" not visible on the screen). The designer may then go through the partitioning technique for the cluster which is being viewed. After partitioning a 49-block cluster, there will be individual logic blocks around the edges of the screen (Fig. 20). These were not partitioned out but are connected to logic appearing other places upon the logic "scroll." He may then shift the logic and include these stragglers in partitions with logic blocks to which they are connected (Fig. 21). Using the above technique, several hundred partitions may be taken out of the overall machine logic, their function described by the appropriate descriptor and the total number of function types thus greatly reduced. This process may be repeated by the same designer or by other designers in order to obtain an optimum set of logical elements to be used in the implementation of the computer being designed. An important advantage of this approach from the designer's point of view is that it enables the indi- From the collection of the Computer History Museum (www.computerhistory.org) AUTOMATED LOGIC DESIGN TECHNIQUES Figure 7. Complete logic block array generated by light pen. From the collection of the Computer History Museum (www.computerhistory.org) 255 256 PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966 vidual engineer to design as efficiently as possible. He is not restricted by package limitations or cell function constraints in his "raw" logic design. The functions partitioned out by one or more designers may be evaluated, compared and combined into efficient multipurpose cells or Universal Logic Blocks. The cells may then be replaced into the logic, where the original partitions were removed, and connected as determined by the descriptor program which is now under development. APPENDIX LIBRARY SUBROUTINES The library subroutines used to change the contents of the buffer, thus changing the pattern on the CRT, are CHAR and VECT. CHAR (NX, NY, N, NALPHA, J, L) NX,NY x, N number of characters to be displayed NALPHA name of the array which contains the message an index which is incremented by the amount of buffer positions used to store message buffer position where message is started J L Y coordinates of first character of message VECT (NX, NY, NXE, NYE, J, L) NX, NY NXE, NYE J, L coordinates of start of vector coordinates of end of vector as explained for CHAR The other library subroutines used are: WAIT ACT INACT CORDNT CONR 2 Figure 8. Two logic blocks connected by a light-pen using "DRAW LINES" routine. Causes machine to stop processing until there is a light-pen interrupt. Turns off the mask on the 1620 so that information from the light-pen can enter the processor. Turns the mask on so information from the light-pen won't interfere with· the processor. Determines the x and y coordinates of the character the light-pen is firing on. This subroutine is used by CORDNT to transfer one word of information from the display memory to the From the collection of the Computer History Museum (www.computerhistory.org) AUTOMATED LOGIC DESIGN TECHNIQUES DTOC FEINT processor memory. The word that is transferred depends on the character that the light-pen is firing at. Is a decimal to octal conversion subroutine. This is another subroutine used by CORDNT. It provides the processor with the display memory ad- 257 dress and other information (such as which character is a narrative word) when there is a light-pen interrupt. RESUME Returns processor control to IR 1. When there is a light-pen interrupt control is transferred to IR 3. When the processor is under con- Figure 9. Complete logical array interconnected. From the collection of the Computer History Museum (www.computerhistory.org) 258 QUINK DISCR DISCW PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966 trol of IR 3 it cannot accept another light-pen interrupt. Permits programs stored on the disc in core image to be loaded into storage much more quickly than the conventional FORTRAN 'LINK' statement. Reads information from disk. Writes information on disk. Figure 10. One logic block ACKNOWLEDGMENTS The authors wish to thank Messrs. T. Kameda and Y. N. Patt for their assistance during the summer of 1965 in obtaining an understanding of the classification of Boolean functions. REFERENCES 1. D. Slepian, "On the Number of Symmetry Types of Boolean Functions of n Variables," label~d using "LABELS" routine. From the collection of the Computer History Museum (www.computerhistory.org) AUTOMATED LOGIC DESIGN TECHNIQUES Canadian Jour,nal of Mathematics, vol. 5, pp. 18593, 1953. 2. S. W. Golomb, "On the Classification of Boolean Functions," IRE Transactions on Circuit Theory, vol. 6 (Special Supplement), pp. 176-86 (May 1959). 3. R. C. Minnick, "Cutpoint Cellular Logic," IEEE Transactions on Electronic Computers, Dec. 1964. 259 4. W. F. King III, and A. Guisti, "Can Logic Arrays be Kept Flexible?" AFCRL Report No. 65547 (Aug. 1965). 5. I. E. Sutherland, "Sketchpad; A Man-Machine Graphical Communications System," MIT Technical Report No. 296 (Jan. 30, 1963). 6. D. T. Ross, "Implications of Computer-Aided Design for Numerically Controlled Production," MIT Report ESL-TM-212 (Sept. 1964). Figure 11. Completed logical array labeled. From the collection of the Computer History Museum (www.computerhistory.org) 260 PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966 Figure 12. Example of a three-level function from unpartitioned logic. From the collection of the Computer History Museum (www.computerhistory.org) AUTOMATED LOGIC DESIGN TECHNIQUES Figure 13. Partitioned-out cluster of logic. From the collection of the Computer History Museum (www.computerhistory.org) 261 262 PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966 Figure 14. Partitioned-out cluster of logic with output function. From the collection of the Computer History Museum (www.computerhistory.org) AUTOMATED LOGIC DESIGN TECHNIQUES Figure 15. Unpartitioned logic with one partitioned cluster missing. Figure 16. Logical array with partitioned cluster disconnected. From the collection of the Computer History Museum (www.computerhistory.org) 263 264 PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966 Figure 17. Unpartitioned logic with several partitioned clusters missing. Figure 18. Logical array shown with "SHIFT" instructions shown at bottom of CRT. From the collection of the Computer History Museum (www.computerhistory.org) AUTOMATED LOGIC DESIGN TECHNIQUES Figure 19. Logical array shifted three columns to the right. Figure 20. Logic blocks remaining on screen after partitioning. Figure 21. Logic shifted to the right of screen. From the collection of the Computer History Museum (www.computerhistory.org) 265 From the collection of the Computer History Museum (www.computerhistory.org)
© Copyright 2026 Paperzz