reed_muller-saul.pdf - Logic Synthesis Based on the Reed-Muller Representation Jonathan Saul A thesis submitted to the University of Bristol in

reed_muller-saul.pdf - Logic Synthesis Based on the...

This preview shows page 1 out of 171 pages.

Unformatted text preview: Logic Synthesis Based on the Reed-Muller Representation Jonathan Saul A thesis submitted to the University of Bristol in accordance with the requirements for the degree of Doctor of Philosophy in the Faculty of Engineering, Department of Electrical and Electronic Engineering. November 8, 1991 Abstract There has been recent interest in using Reed-Muller equations as a way of representing and manipulating switching functions, and as a means of designing circuits based on exclusiveOR gates. Analysis of existing algorithms suggests the need for work in three areas: improving two-level minimization algorithms; developing algorithms for multi-level minimization; and then using the new algorithms to verify the usefulness of Reed-Muller equations in practical applications. A new algorithm for the two-level minimization of Reed-Muller representations of switching functions has been developed, in which new heuristics are used to determine the best application of previously known rules for minimizing single output equations; new rules are used to link multiple output functions and to minimize incompletely speci ed functions. This algorithm has been implemented and benchmark comparisons with a well known minimization method shows that the new method is faster and results in smaller representations. A procedure for multi-level Reed-Muller minimization has been developed, which introduces a Reed-Muller factored form, and uses algebraic algorithms for factorization, decomposition, resubstitution, collapsing, and extraction of common cubes and sub-expressions. The procedure has been implemented in C as a series of packages which have been added to MisII, and benchmark comparisons with two-level representations show that the multi-level form is considerably more compact. Some of the MCNC PLA benchmarks were translated to Reed-Muller equations and then minimized using the two-level minimizer described earlier. The exclusive-OR PLA was found to be more economical than a conventional PLA for some functions, but the large size of exclusive-OR gates with many inputs make it impractical for many functions. The multi-level Reed-Muller minimizer described earlier was used to design two circuits that would be expected to have a good exclusive-OR structure | a counter and an adder | and these circuits were compared with circuits designed using MisII. The Reed-Muller based circuits were considerably more economical and faster. Translation from hardware description languages is of great importance in commercial design automation systems. During translation functions must be represented in a way that allows their complement to be computed easily. The Reed-Muller representation is more appropriate for this application than the sum of products representation which is commonly used. Translators using both of these representations have been implemented in ADA, and comparisons show that the Reed-Muller translator is much faster. i Declaration No portion of the work referred to in this thesis has been submitted in support of an application of another degree or quali cation of this or any other university or institution of learning. Jonathan Saul ii Acknowledgements This work was jointly funded by Plessey Research and Technology, and the Science and Engineering Research Council. It bene tted from the ideas and suggestions of Ed Pitty and Martin Abrahams at Roke Manor Research (formerly Plessey), Martin Bolton at SGSThomson, and Erik Dagless at Bristol University. Thanks also to John Hopkins, James Pardey and Maureen Pearce, who gave technical advice and encouragement. iii Contents 1 Introduction 1 2 Background 6 1.1 Logic synthesis : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1.2 The Reed-Muller representation : : : : : : : : : : : : : : : : : : : : : : : : : 1.3 Organisation of this thesis : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2.1 The Reed-Muller representation : : : : : : : : : : : : : : 2.2 Two-level minimization of Reed-Muller representations : 2.2.1 Graphical methods : : : : : : : : : : : : : : : : : 2.2.2 Algorithms to nd the exact minimal sum : : : : 2.2.3 Heuristic algorithms : : : : : : : : : : : : : : : : 2.3 Multi-level logic synthesis : : : : : : : : : : : : : : : : : 2.3.1 Conventional logic synthesis techniques : : : : : 2.3.2 Multi-level Reed-Muller Logic Synthesis : : : : : 3 Heuristic Two-level Minimization 3.1 Introduction : : : : : : : : : : : : : : : : : : 3.2 Previous work : : : : : : : : : : : : : : : : : 3.2.1 Even, Kohavi, and Paz : : : : : : : : 3.2.2 Helliwell and Perkowski : : : : : : : 3.2.3 Comparison of these two algorithms 3.3 Minimization algorithm : : : : : : : : : : : 3.3.1 Overview : : : : : : : : : : : : : : : iv : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 2 3 6 10 10 11 12 13 13 14 16 16 17 17 19 21 23 23 3.3.2 Single output functions : : : : : : : : : : : : : : : : : 3.3.3 Choice of cubes to be linked : : : : : : : : : : : : : : : 3.3.4 Multiple output functions : : : : : : : : : : : : : : : : 3.3.5 Incompletely speci ed functions : : : : : : : : : : : : : 3.3.6 Veri cation : : : : : : : : : : : : : : : : : : : : : : : : 3.4 Results : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3.4.1 Comparison with previous algorithms : : : : : : : : : 3.4.2 Comparison with theoretical limits : : : : : : : : : : : 3.4.3 Comparison with the sum of products representation : 3.5 Conclusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 Multi-level Minimization 4.1 Introduction : : : : : : : : : : : : : : 4.2 Background : : : : : : : : : : : : : 4.3 Multi-level minimization operations : 4.3.1 Decomposition : : : : : : : : 4.3.2 Extraction : : : : : : : : : : : 4.3.3 Factorization : : : : : : : : : 4.3.4 Substitution : : : : : : : : : : 4.3.5 Collapsing : : : : : : : : : : : 4.4 The Reed-Muller factored form : : : 4.5 Basic operations : : : : : : : : : : : 4.5.1 Algebraic algorithms : : : : : 4.5.2 Algebraic division : : : : : : 4.5.3 Kernels : : : : : : : : : : : : 4.5.4 Substitution : : : : : : : : : : 4.5.5 Collapsing : : : : : : : : : : : 4.6 Factorization and decomposition : : 4.6.1 Factorization : : : : : : : : : 4.6.2 Decomposition : : : : : : : : 4.7 Extraction : : : : : : : : : : : : : : : v : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 24 29 30 34 37 38 38 39 40 40 42 42 43 44 44 45 45 46 46 47 48 48 49 50 52 53 54 54 54 55 4.8 4.9 4.10 4.11 4.7.1 Common cube extraction : 4.7.2 Common kernel extraction : Node minimization : : : : : : : : : Implementation : : : : : : : : : : : Results : : : : : : : : : : : : : : : : Conclusions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 Evaluation of the use of Reed-Muller Equations : : : : : : : : : : : : : : : : : : 5.1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : 5.2 Program Use : : : : : : : : : : : : : : : : : : : : : : : 5.2.1 Two-level Minimization : : : : : : : : : : : : : 5.2.2 Multi-level Minimization : : : : : : : : : : : : : 5.3 Two-level circuit design : : : : : : : : : : : : : : : : : 5.3.1 Introduction : : : : : : : : : : : : : : : : : : : 5.3.2 Design of the XPLA : : : : : : : : : : : : : : : 5.3.3 Results : : : : : : : : : : : : : : : : : : : : : : 5.4 Multi-level circuit design : : : : : : : : : : : : : : : : : 5.4.1 Introduction : : : : : : : : : : : : : : : : : : : 5.4.2 Design strategy : : : : : : : : : : : : : : : : : : 5.4.3 Results : : : : : : : : : : : : : : : : : : : : : : 5.5 Functional representation during HDL translation : : 5.5.1 Introduction : : : : : : : : : : : : : : : : : : : 5.5.2 HDL translation : : : : : : : : : : : : : : : : : 5.5.3 Experiments using the di erent representations 5.5.4 Results : : : : : : : : : : : : : : : : : : : : : : 5.6 Conclusions : : : : : : : : : : : : : : : : : : : : : : : : 6 Conclusions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6.1 Algorithm development : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6.2 Practical uses for the Reed-Muller representation : : : : : : : : : : : : : : : 6.3 Future work : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : vi 55 58 61 62 63 64 66 66 67 67 67 69 69 69 72 73 73 74 74 85 85 87 88 88 89 91 91 92 92 A Two-level Minimization Example A.1 Speci cation : : : : : : : : : : : : : : A.2 Single Output Minimization : : : : : A.2.1 Output 0 : : : : : : : : : : : A.2.2 Output 1 : : : : : : : : : : : A.2.3 Output 2 : : : : : : : : : : : A.2.4 Output 3 : : : : : : : : : : : A.3 Multiple output minimization : : : : A.4 Multiple Output Secondary Xlinking A.5 Single Output Minimization : : : : : A.5.1 Output 0 : : : : : : : : : : : A.5.2 Output 1 : : : : : : : : : : : A.5.3 Output 2 : : : : : : : : : : : A.5.4 Output 3 : : : : : : : : : : : A.6 Multiple Output Minimization : : : A.7 Final output : : : : : : : : : : : : : B Two Level Minimizer Code B.1 Data Structures : : : : : : : : : : : : B.2 Multiple Output Minimization : : : B.3 Single Output Minimization : : : : : B.4 Primary Xlinking : : : : : : : : : : : B.5 Secondary Xlinking : : : : : : : : : : B.6 Multiple Output Secondary Xlinking B.7 Unlinking : : : : : : : : : : : : : : : B.8 Don't Care Minimization : : : : : : B.9 Miscellaneous : : : : : : : : : : : : : B.10 Set Package Documentation : : : : : C Analysis of 9sym : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 94 94 96 96 108 109 109 111 113 114 114 115 116 116 118 120 121 121 122 126 127 131 134 137 141 142 143 146 C.1 Notation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 146 vii C.2 Analysis : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 146 viii List of Figures 2.1 2.2 2.3 2.4 2.5 2.6 Positive polarity implementation. : : : : : Fixed polarity implementation. : : : : : : Mixed polarity implementation. : : : : : : Minimization on a Karnaugh Map : : : : 4 bit Parity Function : : : : : : : : : : : : All cubes can be expanded to the 1 term. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 8 8 9 11 11 12 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 Merging. : : : : : : : : : : : : : : : : : : : : : : : Exclusion : : : : : : : : : : : : : : : : : : : : : : Increase of order. : : : : : : : : : : : : : : : : : : Bridging. : : : : : : : : : : : : : : : : : : : : : : Even, Kohavi and Paz's minimization algorithm : Xlinking rules. : : : : : : : : : : : : : : : : : : : Helliwell and Perkowski's minimization algorithm Example where Exorcism does well. : : : : : : : Example where Exorcism does badly. : : : : : : : Function with a redundant input. : : : : : : : : : Linking algorithm : : : : : : : : : : : : : : : : : Unlinking algorithm : : : : : : : : : : : : : : : : Unlinking. : : : : : : : : : : : : : : : : : : : : : : Single output minimization algorithm. : : : : : : Single output minimization. : : : : : : : : : : : : Poor choice of linking. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 17 17 18 18 18 19 20 22 22 24 25 26 27 27 28 29 ix : : : : : : : : : : : : : : : : : : : : : : : : : : : 29 30 34 35 35 36 37 38 38 4.1 Algebraic division algorithm : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.2 Simple factorization : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.3 Minimization script : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 49 54 64 An Example of the Two-level Input Format : : : : : : : : : : : : : : : : A Typical Synthesis Strategy. : : : : : : : : : : : : : : : : : : : : : : : : Series (a) and tree (b) implementations of n-input EXOR gate. : : : : : Script used for Reed-Muller restructuring : : : : : : : : : : : : : : : : : Script used for sum of products restructuring : : : : : : : : : : : : : : : IWLS Gate Library : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 8 bit counter after Reed-Muller restructuring : : : : : : : : : : : : : : : 8 bit counter after Reed-Muller and then sum of products restructuring 8 bit counter after sum of products restructuring : : : : : : : : : : : : : 4 bit adder after Reed-Muller restructuring : : : : : : : : : : : : : : : : 4 bit adder after Reed-Muller and then sum of products restructuring : 4 bit adder after sum of products restructuring : : : : : : : : : : : : : : 68 70 72 75 76 77 77 78 78 82 83 83 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 Algorithm to choose which cubes to link. : Blocking matrix. : : : : : : : : : : : : : : Multiple output minimization algorithm. : Multiple output minimization. : : : : : : : Unxlinkable don't-care representations. : : Don't-care minimization algorithm. : : : : Don't-care minimization. : : : : : : : : : : Zero function with many product terms. : Veri cation algorithm. : : : : : : : : : : : x : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : List of Tables 3.1 Heuristic two-level minimization results. : : : : : : : : : : : : : : : : : : : : 39 3.2 Comparison of Exorcism and Hermes with Even, Kohavi and Paz's algorithm. 40 4.1 New MisII commands for Reed-Muller equations : : : : : : : : : : : : : : : 4.2 Multi-level minimization results. : : : : : : : : : : : : : : : : : : : : : : : : 5.1 5.2 5.3 5.4 5.5 5.6 Comparison of PLA and XPLAs for MCNC benchmarks. Gate summaries for 8 bit counter. : : : : : : : : : : : : : : Arrival times at output of 8 bit counter. : : : : : : : : : : Gate summaries for 4 bit adder. : : : : : : : : : : : : : : : Arrival times at output of 4 bit adder. : : : : : : : : : : : Translator experiment results. : : : : : : : : : : : : : : : : xi : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 62 63 73 81 82 86 86 89 List of Terms ON-set OFF-set DC-set Representation that de nes when a function is TRUE Representation that de nes when a function is FALSE Representation that de nes when a function has an unspeci ed output value Cube DAG MIS Product term Directed Acyclic Graph Multilevel Interactive Synthesis { a logic synthesis system Linking rule Xlinking Rule that joins two cubes using overlapping terms One type of linking rule Kernel Cube-free primary divisor Cube-free An expression that cannot be divided evenly by any cube Primary divisor The primary divisor of a function f is f=c where c is a cube xii Chapter 1 Introduction Logic synthesis is the process of producing a logic-level circuit design from a register-transfer level description. This chapter reviews the way logic synthesis ts into the process of VLSI design, and then introduces the Reed-Muller representation | a way of representing logic functions as an exclusive-OR sum of AND product terms. It concludes with a description of the organization of this thesis. 1.1 Logic synthesis The design of integrated circuits is becoming more complex as VLSI technology allows increasing numbers of transistors on a single chip. The complexity of the level of integration has grown at an exponential rate for some time. Consequently the development of computer aided design tools to improve the designer's productivity has been of growing importance. Initially these packages were concerned with the analysis of circuits that had been manually designed. This included tools for manually entering a design and then modifying it, and tools for verifying its functional and timing characteristics. More recently synthesis systems have been developed, which automate part of the design process. The bene ts of using these systems are not only improved design times; they also increase reliability and allow the designer to focus on the design process at a higher level of abstraction. Synthesis tools which automate the stages in the physical design of integrated circuits | such as placement and routing, and design rule checking | are now in common use. The 1 Chapter 1 Introduction main focus of recent research has been to automate the next level of abstraction: the design of a logic-level circuit from a description of the storage elements and functional blocks (a register-transfer level speci cation). This step is known as logic synthesis. Usually t...
View Full Document

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture