Technology Mapping for VLSI Circuits Exploiting Boolean Properties and Operations

Automatic synthesis of digital circuits has gained increasing importance. The synthesis process consists of transforming an abstract representation of a system into an implementation in a target technology. The set of transformations has traditionally been broken into three steps: high-level synthesis, logic synthesis and physical design. This dissertation is concerned with logic synthesis. More specifically, we study technology mapping, which is the link between logic synthesis and physical design. The object of technology mapping is to transform a technology-independent logic description into an implementation in a target technology. One of teh key operations during technology mapping is to recognize logic equivalence between a portion of the initial logic description and an element of the target technology. We introduce new methods for establishing logic equivalence between two logic functions. The techniques, based on Boolean comparisons, use Binary Decision Diagrams (BDDs). An algorithm for dealing with completely specified functions is first presented. Then we introduce a second algorithm, which is applicable to incompletely specified functions. We also present an ensemble of techniques for optimizing delay, which rely on an iterative approach. All these methods have proven to be efficient both for run-times and quality of results, when compared to other existing technology mapping systems. The algorithms presented have been implemented in a technology mapping program, Ceres. Results are shown that highlight the apllication of the different algorithms.

[1]  Robert K. Brayton,et al.  The use of observability and external don't cares for the simplification of multi-level networks , 1991, DAC '90.

[2]  William R. Heller,et al.  The Planar Package Planner for System Designers , 1982, DAC 1982.

[3]  Sharad Malik,et al.  Delay computation in combinational logic circuits: theory and algorithms , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[4]  Alfred V. Aho,et al.  Optimal code generation for expression trees , 1975, STOC.

[5]  P. G. Paulin,et al.  Logic decomposition algorithms for the timing optimization of multi-level logic , 1989, Proceedings 1989 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[6]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[7]  E. F. Girczyc,et al.  HAL: A Multi-Paradigm Approach to Automatic Data Path Synthesis , 1986, 23rd ACM/IEEE Design Automation Conference.

[8]  Robert W. Floyd,et al.  An algorithm for coding efficient arithmetic operations , 1961, CACM.

[9]  Robert W. House,et al.  Gimpel's Reduction Technique Extended to the Covering Problem with Costs , 1967, IEEE Trans. Electron. Comput..

[10]  John P. Hayes,et al.  Layout Optimization of CMOS Functional Cells , 1987, 24th ACM/IEEE Design Automation Conference.

[11]  D. Bochmann,et al.  A new decomposition method for multilevel circuit design , 1991, Proceedings of the European Conference on Design Automation..

[12]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[13]  P. B. Coaker,et al.  Applied Dynamic Programming , 1964 .

[14]  D. Brand,et al.  Technology Adaptation in Logic Synthesis , 1986, 23rd ACM/IEEE Design Automation Conference.

[15]  Louise Trevillyan,et al.  Logic Synthesis Through Local Transformations , 1981, IBM J. Res. Dev..

[16]  G. DeMicheli,et al.  Automatic layout and optimization of static CMOS cells , 1988, Proceedings 1988 IEEE International Conference on Computer Design: VLSI.

[17]  D. Gregory,et al.  SOCRATES: A System for Automatically Synthesizing and Optimizing Combinational Logic , 1986, 23rd ACM/IEEE Design Automation Conference.

[18]  Alfred V. Aho,et al.  Efficient Tree Pattern Matching: An Aid to Code Generation. , 1985 .

[19]  Richard M. Karp,et al.  Minimization Over Boolean Graphs , 1962, IBM J. Res. Dev..

[20]  K. Keutzer DAGON: Technology Binding and Local Optimization by DAG Matching , 1987, 24th ACM/IEEE Design Automation Conference.

[21]  Tsutomu Sasao MACDAS: Multi-level AND-OR Circuit Synthesis Using Two-Variable Function Generators , 1986, 23rd ACM/IEEE Design Automation Conference.

[22]  Alberto Sangiovanni-Vincentelli,et al.  Logic synthesis for vlsi design , 1989 .

[23]  Robert B. Hitchcock,et al.  Timing Analysis of Computer Hardware , 1982, IBM J. Res. Dev..

[24]  Stanley L. Hurst,et al.  Spectral techniques in digital logic , 1985 .

[25]  C. Leonard Berman,et al.  The fanout problem: from theory to practice , 1989 .

[26]  Daniel Gajski,et al.  Knowledge Based Control in Micro-Architecture Design , 1987, 24th ACM/IEEE Design Automation Conference.

[27]  Robert K. Brayton,et al.  MIS: A Multiple-Level Logic Optimization System , 1987, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[28]  Robert K. Brayton,et al.  Observability relations and observability don't cares , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[29]  Nripendra N. Biswas,et al.  An algorithm for multiple output minimization , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[30]  C. Y. Lee An Algorithm for Path Connections and Its Applications , 1961, IRE Trans. Electron. Comput..

[31]  H. Allen Curtis A Generalized Tree Circuit , 1961, JACM.

[32]  Ronald E. Prather,et al.  Elements of discrete mathematics , 1986 .

[33]  Ted Williams Latency and throughput tradeoffs in self-timed speed-independent pipelines and rings , 1990 .

[34]  David C. Ku Constrained synthesis and optimization of digital integrated circuits from behavioral specifications , 1992 .

[35]  Alberto Sangiovanni-Vincentelli,et al.  Automatic Layout of Integrated Circuits , 1987 .

[36]  Alfred V. Aho,et al.  Code Generation for Expressions with Common Subexpressions , 1977, J. ACM.

[37]  Saburo Muroga,et al.  Threshold logic and its applications , 1971 .

[38]  Ulrich Lauther,et al.  A Min-Cut Placement Algorithm for General Cell Assemblies Based on a Graph Representation , 1979, 16th Design Automation Conference.

[39]  John L. Bruno,et al.  Code Generation for a One-Register Machine , 1976, J. ACM.

[40]  K. Ishida,et al.  A rule based logic reorganization system LORES/EX , 1988, Proceedings 1988 IEEE International Conference on Computer Design: VLSI.

[41]  Alfred V. Aho,et al.  Code generation using tree matching and dynamic programming , 1989, ACM Trans. Program. Lang. Syst..

[42]  Takao Sugimoto,et al.  TRIP: An Automated Technology Mapping System , 1987, 24th ACM/IEEE Design Automation Conference.

[43]  Ikuo Nakata,et al.  On compiling algorithms for arithmetic expressions , 1967, CACM.

[44]  Alberto L. Sangiovanni-Vincentelli,et al.  Multiple Constrained Folding of Programmable Logic Arrays: Theory and Applications , 1983, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[45]  Willard Van Orman Quine,et al.  The Problem of Simplifying Truth Functions , 1952 .

[46]  M. Fujita,et al.  Boolean technology mapping for both ECI and CMOS circuits based on permissible functions and binary decision diagrams , 1990, Proceedings., 1990 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[47]  Robert K. Brayton,et al.  Extracting local don't cares for network optimization , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[48]  Robert K. Brayton,et al.  Timing analysis and delay-fault test generation using path-recursive functions , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[49]  Tso-Kai Liu Synthesis of Feed-Forward MOS Networks with Cells of Similar Complexities , 1977, IEEE Transactions on Computers.

[50]  Robert K. Brayton,et al.  Performance-oriented technology mapping , 1990 .

[51]  R. Keith Treece,et al.  Increased CMOS IC stuck-at fault coverage with reduced I/sub DDQ/ test sets , 1990, Proceedings. International Test Conference 1990.

[52]  Daniel L. Ostapko,et al.  MINI: A Heuristic Approach for Logic Minimization , 1974, IBM J. Res. Dev..

[53]  Louise Trevillyan,et al.  LSS: A system for production logic synthesis , 1984, IBM Journal of Research and Development.

[54]  Stephen C. Johnson Code generation for silicon , 1983, POPL '83.

[55]  Reinaldo A. Bergamaschi Automatic synthesis and technology mapping of combinational logic , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[56]  Robert K. Brayton,et al.  Consistency and observability invariance in multi-level logic synthesis , 1989, 1989 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[57]  Peter Marwedel,et al.  The MIMOLA Design System: Detailed Description of the Software System , 1979, 16th Design Automation Conference.

[58]  Joseph Sifakis,et al.  Automatic Verification Methods for Finite State Systems , 1989, Lecture Notes in Computer Science.

[59]  Utz G. Baitinger,et al.  CARLOS: an automated multilevel logic design system for CMOS semi-custom integrated circuits , 1988, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[60]  T. E. Williarns,et al.  A Zero-overhead Self-timed 160ns 54b CMOS Divider , 1991, 1991 IEEE International Solid-State Circuits Conference. Digest of Technical Papers.

[61]  David L. Dill,et al.  Automatic synthesis of locally-clocked asynchronous state machines , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[62]  Roman R. Redziejowski On arithmetic expressions and trees , 1969, CACM.

[63]  Douglas W. Brown,et al.  A State-Machine Synthesizer -- SMS , 1981, 18th Design Automation Conference.

[64]  Giovanni De Micheli,et al.  The Olympus synthesis system , 1990, IEEE Design & Test of Computers.

[65]  Edward J. McCluskey,et al.  Detection of group invariance or total symmetry of a Boolean function , 1956 .

[66]  Robert K. Brayton,et al.  Timing optimization of combinational logic , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[67]  H. A. Curtis,et al.  A new approach to The design of switching circuits , 1962 .

[68]  Fabio Somenzi,et al.  An iterative algorithm for the binate covering problem , 1990, Proceedings of the European Design Automation Conference, 1990., EDAC..

[69]  Donnamaie E. White,et al.  Advanced logical circuit design techniques , 1979 .

[70]  Mark Horowitz,et al.  A zero-overhead self-timed 160-ns 54-b CMOS divider , 1991 .

[71]  S. R. Cray,et al.  A progress report on computer applications in computer design , 1956, AIEE-IRE '56 (Western).

[72]  C. Leonard Berman,et al.  Circuit width, register allocation, and ordered binary decision diagrams , 1991, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[73]  Donald L. Dietmeyer,et al.  An Algorithm for Synthesis of Multiple-Output Combinational Logic , 1968, IEEE Transactions on Computers.

[74]  Alberto L. Sangiovanni-Vincentelli,et al.  A heuristic algorithm for the fanout problem , 1991, DAC '90.

[75]  H. De Man,et al.  Automated synthesis of a high speed Cordic algorithm with the Cathedral-III compilation system , 1988, 1988., IEEE International Symposium on Circuits and Systems.

[76]  Steven M. Burns,et al.  The design of an asynchronous microprocessor , 1989, CARN.

[77]  Nripendra N. Biswas,et al.  Minimization of Boolean Functions , 1971, IEEE Transactions on Computers.

[78]  F. Brglez,et al.  McMAP: a fast technology mapping procedure for multi-level logic synthesis , 1988, Proceedings 1988 IEEE International Conference on Computer Design: VLSI.

[79]  Giovanni De Micheli,et al.  Observability don't care sets and Boolean relations , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[80]  Stephen A. Cook,et al.  The complexity of theorem-proving procedures , 1971, STOC.

[81]  Per Asbjørn Holst Bibliography on Switching Circuits and Logical Algebra , 1961, IRE Trans. Electron. Comput..

[82]  Michel Dagenais,et al.  McBOOLE: A New Procedure for Exact Logic Minimization , 1986, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[83]  Alice C. Parker,et al.  MAHA: A Program for Datapath Synthesis , 1986, DAC 1986.

[84]  Jeffrey D. Ullman,et al.  The Generation of Optimal Code for Arithmetic Expressions , 1970, JACM.

[85]  Sze-Tsen Hu ON THE DECOMPOSITION OF SWITCHING FUNCTIONS , 1961 .

[86]  Robert K. Brayton,et al.  Sequential circuit design using synthesis and optimization , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[87]  A. Richard Newton Symbolic Layout and Procedural Design , 1987 .

[88]  Gary D. Hachtel,et al.  BOLD: The Boulder Optimal Logic Design system , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume 1: Architecture Track.

[89]  Edward J. McCluskey,et al.  Logic design principles - with emphasis on testable semicustom circuits , 1986, Prentice Hall series in computer engineering.

[90]  Teresa H. Y. Meng,et al.  Automatic synthesis of asynchronous circuits from high-level specifications , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[91]  Brian W. Kernighan,et al.  An efficient heuristic procedure for partitioning graphs , 1970, Bell Syst. Tech. J..

[92]  James P. Anderson A note on some compiling algorithms , 1964, CACM.

[93]  Robert K. Brayton,et al.  Implicit state enumeration of finite state machines using BDD's , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[94]  Malgorzata Marek-Sadowska,et al.  A fast and efficient algorithm for determining fanout trees in large networks , 1991, Proceedings of the European Conference on Design Automation..

[95]  Tso-Kai Liu Synthesis of Multilevel Feed-Forward MOS Networks , 1977, IEEE Trans. Computers.

[96]  Robert K. Brayton,et al.  Performance enhancement through the generalized bypass transform , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[97]  Yu-Chin Hsu,et al.  An efficient layout style for 2-metal CMOS leaf cells and their automatic generation , 1991, 28th ACM/IEEE Design Automation Conference.

[98]  Robert K. Brayton,et al.  Multi-level logic minimization using implicit don't cares , 1988, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[99]  Randal E. Bryant,et al.  Efficient implementation of a BDD package , 1991, DAC '90.

[100]  Louise Trevillyan,et al.  Global Flow Analysis in Automatic Logic Design , 1986, IEEE Transactions on Computers.

[101]  Reinaldo A. Bergamaschi,et al.  The effects of false paths in high-level synthesis , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[102]  Zosimo Arevalo,et al.  A Method to Simplify a Boolean Function into a Near Minimal Sum-of-Products for Programmable Logic Arrays , 1978, IEEE Transactions on Computers.

[103]  Yahiko Kambayashi,et al.  The Transduction Method-Design of Logic Networks Based on Permissible Functions , 1989, IEEE Trans. Computers.

[104]  Wolfgang Rosenstiel,et al.  Synthesizing circuits from behavioural descriptions , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[105]  Bruce B. Winter,et al.  Automated Technology Mapping , 1984, IBM J. Res. Dev..

[106]  Chih-Jen Lin,et al.  Enhanced controllability for IDDQ test sets using partial scan , 1991, 28th ACM/IEEE Design Automation Conference.

[107]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[108]  Takao Uehara,et al.  Optimal Layout of CMOS Functional Arrays , 1978, 16th Design Automation Conference.

[109]  A. Hashimoto,et al.  Wire routing by optimizing channel assignment within large apertures , 1971, DAC '71.

[110]  Saburo Muroga,et al.  SYLON-DREAM: a multi-level network synthesizer , 1989, 1989 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[111]  Chingwei Yeh,et al.  A general purpose multiple way partitioning algorithm , 1991, DAC '91.

[112]  Donald E. Thomas,et al.  The system architect's workbench , 1988, DAC '88.