- •INTRODUCTION TO ASICs
- •1.1 Types of ASICs
- •1.2 Design Flow
- •1.3 Case Study
- •1.4 Economics of ASICs
- •1.5 ASIC Cell Libraries
- •1.6 Summary
- •1.7 Problems
- •1.8 Bibliography
- •1.9 References
- •CMOS LOGIC
- •2.12 References
- •2.1 CMOS Transistors
- •2.2 The CMOS Process
- •2.3 CMOS Design Rules
- •2.4 Combinational Logic Cells
- •2.5 Sequential Logic Cells
- •2.6 Datapath Logic Cells
- •2.7 I/O Cells
- •2.8 Cell Compilers
- •2.9 Summary
- •2.10 Problems
- •2.11 Bibliography
- •ASIC LIBRARY DESIGN
- •3.1 Transistors as Resistors
- •3.3 Logical Effort
- •3.4 Library-Cell Design
- •3.5 Library Architecture
- •3.6 Gate-Array Design
- •3.7 Standard-Cell Design
- •3.8 Datapath-Cell Design
- •3.9 Summary
- •3.10 Problems
- •3.11 Bibliography
- •3.12 References
- •PROGRAMMABLE ASICs
- •4.1 The Antifuse
- •4.2 Static RAM
- •4.4 Practical Issues
- •4.5 Specifications
- •4.6 PREP Benchmarks
- •4.7 FPGA Economics
- •4.8 Summary
- •4.9 Problems
- •4.10 Bibliography
- •4.11 References
- •5.1 Actel ACT
- •5.2 Xilinx LCA
- •5.3 Altera FLEX
- •5.4 Altera MAX
- •5.5 Summary
- •5.6 Problems
- •5.7 Bibliography
- •5.8 References
- •6.1 DC Output
- •6.2 AC Output
- •6.3 DC Input
- •6.4 AC Input
- •6.5 Clock Input
- •6.6 Power Input
- •6.7 Xilinx I/O Block
- •6.8 Other I/O Cells
- •6.9 Summary
- •6.10 Problems
- •6.11 Bibliography
- •6.12 References
- •7.1 Actel ACT
- •7.2 Xilinx LCA
- •7.3 Xilinx EPLD
- •7.4 Altera MAX 5000 and 7000
- •7.5 Altera MAX 9000
- •7.6 Altera FLEX
- •7.7 Summary
- •7.8 Problems
- •7.9 Bibliography
- •7.10 References
- •8.1 Design Systems
- •8.2 Logic Synthesis
- •8.3 The Halfgate ASIC
- •8.3.4 Comparison
- •8.4 Summary
- •8.5 Problems
- •8.6 Bibliography
- •8.7 References
- •9.1 Schematic Entry
- •9.3 PLA Tools
- •9.4 EDIF
- •9.5 CFI Design Representation
- •9.6 Summary
- •9.7 Problems
- •9.8 Bibliography
- •9.9 References
- •VHDL
- •10.1 A Counter
- •10.2 A 4-bit Multiplier
- •10.3 Syntax and Semantics of VHDL
- •10.5 Entities and Architectures
- •10.6 Packages and Libraries
- •10.7 Interface Declarations
- •10.8 Type Declarations
- •10.9 Other Declarations
- •10.10 Sequential Statements
- •10.11 Operators
- •10.12 Arithmetic
- •10.13 Concurrent Statements
- •10.14 Execution
- •10.15 Configurations and Specifications
- •10.16 An Engine Controller
- •10.17 Summary
- •10.18 Problems
- •10.19 Bibliography
- •10.20 References
- •IEEE Language Reference Manual project
- •VERILOG HDL
- •11.1 A Counter
- •11.2 Basics of the Verilog Language
- •11.3 Operators
- •11.4 Hierarchy
- •11.5 Procedures and Assignments
- •11.6 Timing Controls and Delay
- •11.7 Tasks and Functions
- •11.8 Control Statements
- •11.9 Logic-Gate Modeling
- •11.10 Modeling Delay
- •11.11 Altering Parameters
- •11.12 A Viterbi Decoder
- •11.13 Other Verilog Features
- •11.14 Summary
- •11.15 Problems
- •11.16 Bibliography
- •11.17 References
- •12.2 A Comparator/MUX
- •12.3 Inside a Logic Synthesizer
- •12.6 VHDL and Logic Synthesis
- •12.8 Memory Synthesis
- •12.9 The Multiplier
- •12.10 The Engine Controller
- •12.13 Summary
- •12.14 Problems
- •12.15 Bibliography
- •12.16 References
- •SIMULATION
- •13.1 Types of Simulation
- •13.3 Logic Systems
- •13.4 How Logic Simulation
- •13.5 Cell Models
- •13.6 Delay Models
- •13.7 Static Timing Analysis
- •13.8 Formal Verification
- •13.9 Switch-Level Simulation
- •13.11 Summary
- •13.12 Problems
- •13.13 Bibliography
- •13.14 References
- •TEST
- •14.1 The Importance of Test
- •14.2 Boundary-Scan Test
- •14.3 Faults
- •14.4 Fault Simulation
- •14.6 Scan Test
- •14.7 Built-in Self-test
- •14.8 A Simple Test Example
- •14.10 Summary
- •14.11 Problems
- •14.12 Bibliography
- •14.13 References
- •15.1 Physical Design
- •15.3 System Partitioning
- •15.4 Estimating ASIC Size
- •15.5 Power Dissipation
- •15.6 FPGA Partitioning
- •15.7 Partitioning Methods
- •15.8 Summary
- •15.9 Problems
- •15.10 Bibliography
- •15.11 References
- •16.1 Floorplanning
- •16.2 Placement
- •16.3 Physical Design Flow
- •16.4 Information Formats
- •16.5 Summary
- •16.6 Problems
- •16.7 Bibliography
- •16.8 References
- •ROUTING
- •17.1 Global Routing
- •17.2 Detailed Routing
- •17.3 Special Routing
- •17.5 Summary
- •17.6 Problems
- •17.7 Bibliography
- •17.8 References
- •A.2 VHDL Syntax
- •A.3 BNF Index
- •A.5 References
- •B.2 Verilog HDL Syntax
- •B.3 BNF Index
- •B.4 Verilog HDL LRM
- •B.5 Bibliography
- •B.6 References
12.15 Bibliography
One way to learn more about logic synthesis is to obtain a copy of misII or sis (or their newest derivatives) from the University of California at Berkeley (UCB). These tools form the basis of most commercially available logic-synthesis software. Included with the sis distribution is a PostScript copy of a tutorial paper (available also as ERL Memorandum UCB/ERL M92/41) on logic synthesis by the UCB synthesis group. The internal help in sis explains the theory and purpose of each command. In addition each logic-synthesis step is available separately so it is possible to see the logic being synthesized, optimized, and mapped.
Programmable ASIC vendors, Xilinx, Altera, and Actel have each produced reports explaining how to use Synopsys, Mentor, Cadence, and other synthesis tools with their products. These are available on these companies Web sites.
Brayton [ 1984] describes the detailed operation of espresso , one of the first logic-minimization programs, and the foundation of most modern commercial logic-synthesis tools. Edited books by Birtwistle and Subrahmanyam [1988] and Dutton [ 1991] contain a collection of papers on logic synthesis. The book by Thomas et al. [1990] describes an early logic-synthesis system. A tutorial paper by Brayton, Hachtel, and Sangiovanni-Vincentelli [ 1990] is an advanced description of multilevel logic optimization. In this chapter we have focused on RTL synthesis; the edited books by Camposano and Wolf [1991]; Walker and Camposano [1991]; and Michel, Lauther, and Duzy [1992] contain papers on higher-level, or behavioral-level synthesis. Edwards provides an overview of synthesis including references to earlier work [ 1992]. Gebotys and Elmasry [1992] cover system-level synthesis. Sasao [ 1993] is a selection of papers from a conference on logic synthesis. Kurup and Abbasi [ 1995] describe the Synopsys logic-synthesis tools. The book by Murgai et al. [ 1995] focuses on logic synthesis for FPGAs. De Micheli s book [1994] is a detailed work on logic-synthesis algorithms. Ashar et al. [ 1992] and Lavagno and Sangiovanni-Vincentelli [1993] cover sequential logic synthesis in their books. The book by Airiau, Berge, and Olive [1994] covers VHDL-93 from the perspective of logic synthesis. A book by Knapp [1996], describing the Synopsys behavioral compiler, is the closest to this book s treatment of logic synthesis, and includes several practical examples.
I have included references for a number of books (some not yet published) that I was unable to obtain before this book went to press including titles by Rushton [1995] on logic synthesis using VHDL; Saucier [1995] on architectural synthesis;
Hachtel and Somenzi [1996] on verification; Romdhane, Madisetti, and Hines [1996] on behavioral synthesis; and Villa et al. [1997] on FSM synthesis. I have included as much information as possible for these references including the LOC catalog information (it is possible to obtain an ISBN before publication).
12.16 References
Airiau, R., J.-M. Berge, and V. Olive. 1994. Circuit Synthesis with VHDL. Boston, 221 p. ISBN 0792394291. TK7885.7.A37.
Ashar, P. et al. 1992. Sequential Logic Synthesis. Norwell, MA: Kluwer, 225 p. ISBN 0-7923-9187-X. TK7868.L6.A84.
Birtwistle, G., and P. A. Subrahmanyam (Ed.). 1988. VLSI Specification, Verification, and Synthesis. Boston: Kluwer, 404 p. ISBN 0898382467. TK7874.V564. A collection of papers presented at a workshop held in Calgary, Canada, Jan. 1987.
Brayton, R. K. 1984. Logic Minimization Algorithms for VLSI Synthesis. Boston: Kluwer, 193 p. ISBN 0-89838-164-9. TK7868.L6L626. Includes an extensive bibliography. A complete description of espresso, the basis of virtually all commercial logic-synthesis tools. Difficult to read at first, but an excellent and clear description of the development of the algorithms used for two-level logic minimization.
Brayton, R. K., G. D. Hachtel, and A. L. Sangiovanni-Vincentelli. 1990.Multilevel logic synthesis. Proceedings of the IEEE, Vol. 78, no. 2, pp. 264 300
Camposano, R., and W. Wolf (Ed.). 1991. High-level VLSI Synthesis. Boston: Kluwer, 390 p. ISBN 0792391594. TK7874.H5243.
De Micheli, G. 1994. Synthesis and Optimization of Digital Circuits. New York: McGraw-Hill, 579 p. ISBN 0070163332. TK7874.65.D4.
Dutton, R. W. (Ed.). 1991. VLSI Logic Synthesis and Design. IOS Press. ISBN 905199046-4.
Edwards, M. D. 1992. Automated Logic Synthesis Techniques for Digital Systems. New York: McGraw-Hill, 186 p. ISBN 0-07-019417-3. TK7874.6.E34. Also Macmillan Press, Basingstoke, England, 1992. Includes an introduction to logic minimization and synthesis, and the topic of synthesis and testing.
Gebotys, C. H., and M. I. Elmasry. 1992. Optimal VLSI Architectural Synthesis: Area, Performance, and Testability. Boston, 289 p. ISBN 079239223X. QA76.9.A73.G42.
Hachtel, G. D., and F. Somenzi. 1996. Logic Synthesis and Verification Algorithms. Boston: Kluwer, 564 p. ISBN 0792397460. TK7874.75.H33.16 pages of references.
Knapp, D. W. 1996. Behavioral Synthesis: Digital System Design using the Synopsys Behavioral Compiler. Upper Saddle River, NJ: Prentice-Hall, 231 p. ISBN 0-13-569252-0. A description of the Synopsys software. Includes the following code examples: FIR and IIR filters; Inverse Discrete Cosine Transform; random logic for a Data Encryption Standard ( DES ) ASIC; and a packet router. Appendix A contains a description of the details of creating DesignWare components. Appendix B describes the subsets of VHDL and Verilog that are understood by the Synopsys compiler. Includes a diskette containing the code from the book.
Kurup, P., and T. Abbasi. 1995. Logic Synthesis Using Synopsys. Boston: Kluwer, 304 p. ISBN 0-7923-9582-4. TK7874.6.K87. Hints, tips, and problems with Synopsys synthesis tools. Synopsys has a technical support site on the World Wide Web for registered users of their tools. See also 2nd ed., 1997 ISBN 079239786X.
Lavagno, L., and A. Sangiovanni-Vincentelli. 1993. Algorithms for Synthesis and Testing of Asynchronous Circuits. Boston: Kluwer, 339 p. ISBN 0792393643. TK7888.4 .L38.
McCluskey, E. J. 1965. Introduction to the Theory of Switching Circuits. New York: McGraw-Hill, 318 p. TK7888.3.M25.
Michel, P., U. Lauther, and P. Duzy (Ed.). 1992. The Synthesis Approach to Digital System Design . Norwell: Kluwer, 415 p. ISBN 0792391993. TK7868.D5.S96. Includes 30 pages of references.
Murgai, R., et al. 1995. Logic Synthesis for Field-Programmable Gate Arrays. Boston: Kluwer, 427 p. ISBN 0-7923-9596-4. TK7895.G36M87.
Romdhane, M. S. B., V. K. Madisetti, and J. W. Hines. 1996. Quick-Turnaround ASIC Design in VHDL: Core-Based Behavioral Synthesis. Boston: Kluwer, 180 p. ISBN 0792397444. TK7874.6.R66. Includes 6 pages of references.
Rushton, A. 1995. VHDL for Logic Synthesis: An Introductory Guide for Achieving Design Requirements. New York: McGraw-Hill, 254 p. ISBN 0077090926. TK7885.7.R87.
Sasao, T. (Ed.). 1993. Logic Synthesis and Optimization. Boston: Kluwer. ISBN 0-7923-9308-2. TK7868.L6 L627. Papers from the International Symposium on Logic Synthesis and Microprocessor Architecture, Iizuka, Japan, July 1992.
Saucier, G. 1995. Logic and Architecture Synthesis. New York: Chapman & Hall. ISBN 0412726904. Not cataloged by the Library of Congress at the time of this book's publication.
Thomas, D. E., et al. 1990. Algorithmic and Register-Transfer Level Synthesis: The System Architect's Workbench. Boston: Kluwer. ISBN 0792390539. TK7874.A418.
Villa, T., et al. 1997. Synthesis of Finite State Machines: Logic Optimization. Boston: Kluwer. ISBN 0792398920. TK7868.L6.S944. In Library of Congress catalog, but was not available at the time of this book s publication.
Walker, R. A., and R. Camposano (Ed.). 1991. A Survey of High-Level Synthesis Systems. Boston: Kluwer, 182 p. ISBN 0792391586. TK7874.S857.