throbber
Field-Programmable
`Gate Arrays
`
`Intel Exhibit 1011
`Intel v. Iida
`
`

`

`THE KLUWER INTERNATIONAL SERIES
`IN ENGINEERING AND COMPUTER SCIENCE
`
`VLSI, COMPUTER ARCIllTECfURE AND
`DIGITAL SIGNAL PROCESSING
`Consulting Editor
`Jonathan Allen
`
`Latest Titles
`Microwave Semiconductor Devices, S. Yngvesson
`ISBN: 0-7923-9156-X
`A Survey of High-Level Synthesis Systems, R. A. Walker, R. Camposano
`ISBN: 0-7923-9158-6
`Symbolic Analysis for Automated Design of Analog Integrated Circuits,
`G. Gielen, W. Sansen,
`ISBN: 0-7923-9161-6
`High-Level VLSI Synthesis, R. Camposano, W. Wolf,
`ISBN: 0-7923-9159-4
`Integrating Functional and Temporal Domains in Logic Design: The False Path
`Problem and its Implications, P. C. McGeer, R. K. Brayton,
`ISBN: 0-7923-9163-2
`Neural Models and Algorithmsfor Digital Testing, S. T. Chakradhar,
`V. D. Agrawal, M. L. Bushnell,
`ISBN: 0-7923-9165-9
`Monte Carlo Device Simulation: Full Band and Beyond, Karl Hess, editor
`ISBN: 0-7923-9172-1
`The Design of Communicating Systems: A Sygem Engineering Approach,
`C.J. Koomen
`ISBN: 0-7923-9203-5
`Parallel Algorithms and Architectures for DSP Applications,
`M. A. Bayoumi, editor
`ISBN: 0-7923-9209-4
`Digital Speech Processing: Speech Coding, Synthesis and Recognition
`A. Nejat Ince, editor
`ISBN: 0-7923-9220-5
`Sequential Logic Synthesis, P. Ashar, S. Devadas, A. R. Newton
`ISBN: 0-7923-9187-X
`Sequential Logic Testing and Verification, A. Ghosh, S. Devadas, A. R. Newton
`ISBN: 0-7923-9188-8
`Introduction to the Design of Transconductor-Capacitor Filters,
`J. E. Kardontchik
`ISBN: 0-7923-9195-0
`The SynthesisApproach to Digital SygemDesign, P. Michel, U. Lauther, P. Duzy
`ISBN: 0-7923-9199-3
`Fault Covering Problems in Reconfigurable VLSI Systems, R.Libeskind-Hadas,
`N. Hassan, J. Cong, P. McKinley, C. L. Liu
`ISBN: 0-7923-9231-0
`High Level Synthesis of ASICs Under Timing and SynchronizPtion Congraints
`D.C. Ku, G. De Micheli
`ISBN: 0-7923-9244-2
`The SECD Microprocessor, A Verification Case Study, B.T. Graham
`ISBN: 0-7923-9245-0
`
`

`

`
`Field-Programmable Field-Programmable
`
`Gate Arrays Gate Arrays
`
`
`Stephen D. Brown Stephen D. Brown
`
`University о/ Toronto University о/ Toronto
`
`
`Robert J. Francis Robert J. Francis
`
`University o/Toronto University o/Toronto
`
`
`Jonathan Rose Jonathan Rose
`
`University o/Toronto University o/Toronto
`
`
`Zvonko G. Vranesic Zvonko G. Vranesic
`
`University ofToronto University ofToronto
`
`
`
`Springer Science+Business Media, LLC Springer Science+Business Media, LLC
`
`
`
`~. " ~. "
`
`

`

`Library оС Congress Cataloging-in-Publication Data
`
`Field-рrоgrаmmаbIе gate arrays / Stephen D. Brown ... [et al.].
`ст. -- (Кluwer international series in engineering and
`р.
`computer science ; SECS 180)
`Includes bibIiographical references and index.
`ISBN 978-1-4613-6587-7
`ISBN 978-1-4615-3572-0 (eBook)
`DOI 10.1007/978-1-4615-3572-0
`1. ProgrammabIe logic devices. 2. Gate array circuits.
`1. Brown, Stephen D.
`11. Series.
`ТК7872.L64F54 1992
`621.З9'5--dс20
`
`92-13785
`CIP
`
`Copyright © 1992 Ьу Springer Science+Business Media New York
`Originally published Ьу Кluwer Academic PubIishers in 1992
`Softcover reprint ofthe hardcover 1st edition 1992
`АН rights reserved. No part of this pubIication тау Ье reproduced, stored in а retrieval
`system or transmitted in апу form orby any means, mechanical, photo-copying, recording,
`or otherwise, without the prior written permission of the pubIisher,
`Springer Science+Business Media, LLC.
`
`Printed оп acid-free paper.
`
`

`

`To Susan,
`Ming,
`Barbara, Jessica, Hannah,
`and Anne
`
`

`

`Contents
`
`Preface ......................................................................................... xi
`
`Glossary ........................................................................................ xiii
`
`1
`1.1
`1.2
`1.2.1
`1.2.2
`1.3
`1.4
`1.5
`1.6
`
`Introduction to FPGAs ............................................................. .
`Evolution of Programmable Devices .......................................... .
`What is an FPGA? ...................................................................... ..
`Logic Blocks
`............................................................................... .
`Interconnection Resources
`.......................................................... .
`Economics of FPGAs .................................................................. .
`............................................................... .
`Applications of FPGAs
`Implementation Process
`.............................................................. .
`Concluding Remarks .................................................................. ..
`
`1
`2
`4
`5
`6
`6
`8
`9
`11
`
`Commercially Available FPGAs ............................................... 13
`2
`Programming Technologies ......................................................... 14
`2.1
`2.1.1 Static RAM Programming Technology.......................................
`15
`2.1.2 Anti-fuse Programming Technology............................................ 16
`2.1.3 EPROM and EEPROM Programming Technology..................... 18
`2.1.4 Summary of Programming Technologies
`..................... ............... 20
`2.2
`Commercially Available FPGAs .................................................. 20
`
`

`

`viii
`
`Field-Programmable Gate Arrays
`
`2.2.1 Xilinx FPGAs ............................................................................... 21
`2.2.2 Actel FPGAs
`................................................................................ 27
`2.2.3 Altera FPGAs ............................................................................... 30
`2.2.4 Plessey FPGA .............. ... ........ ... .... ... .... .... ... ........... ...................... 34
`2.2.5 Plus Logic FPGA ......................................................................... 34
`2.2.6 Advanced Micro Devices (AMD) FPGA ..................................... 35
`2.2.7 QuickLogic FPGA ........................................................................ 36
`2.2.8 Algotronix FPGA ......................................................................... 37
`.............................................................. 38
`2.2.9 Concurrent Logic FPGA
`2.2.lO Crosspoint Solutions FPGA .......... ... .... .............. .... .... ........... ....... 39
`2.3
`FPGA Design Flow Example ....................................................... 40
`Initial Design Entry ...................................................................... 41
`2.3.1
`2.3.2 Translation to XNF Format .......................................................... 41
`2.3.3 Partition ........................................................................................ 41
`2.3.4 Place and Route ............................................................................ 43
`2.3.5 Performance Calculation and Design Verification......................... 43
`2.4
`Concluding Remarks .............. ....... ... ........ .......... .... ...................... 43
`
`Technology Mapping for FPGAs .............................................. 45
`3
`Logic Synthesis ............................................................................ 46
`3.1
`3.1.1 Logic Optimization ...................................................................... 47
`3.1.2 Technology Mapping ................................................................... 48
`3.2
`Lookup Table Technology Mapping ............................................ 51
`3.2.1 The Chortle-crf Technology Mapper ........................................... 52
`3.2.2 The Chortle-d Technology Mapper .............................................. 69
`3.2.3 Lookup Table Technology Mapping in mis-pga .......................... 71
`3.2.4 Lookup Table Technology Mapping in Asyl ............................... 72
`3.2.5 The Hydra Technology Mapper ................................................... 72
`3.2.6 The Xmap Technology Mapper ................................................... 73
`3.2.7 The VISMAP Technology Mapper .............................................. 73
`3.3 Multiplexer Technology Mapping
`............................................... 74
`3.3.1 The Proserpine Technology Mapper ............................................ 75
`3.3.2 Multiplexer Technology Mapping in mis-pga ............................. 85
`3.3.3 The Amap and XAmap Technology Mappers
`............................. 85
`3.4
`Final Remarks
`.............................................................................. 86
`
`Logic Block Architecture ........................................................... 87
`4
`Logic Block Functionality versus Area-Efficiency...................... 88
`4.1
`4.1.1 Logic Block Selection . ... ............... ... ........... ....... ........ ... .... ........... 90
`4.1.2 Experimental Procedure ............................................................... 92
`4.1.3 Logic Block Area and Routing Model......................................... 93
`4.1.4 Experimental Results and Conclusions .... ... ........... ....... ....... .... .... 96
`
`

`

`Contents
`
`ix
`
`Impact of Logic Block Functionality on FPGA Perfonnance ..... 103
`4.2
`4.2.1 Logic Block Selection .................................................................. 104
`4.2.2 Logic Synthesis Procedure ................................................ ........... 106
`4.2.3 Model for Measuring Delay ......................................................... 107
`................................................................... 107
`4.2.4 Experimental Results
`4.3
`Final Remarks and Future Issues
`................................................. 115
`
`Routing for FPGAs ..................................................................... 117
`5
`Routing Tenninology ................................................................... 118
`5.1
`General Strategy for Routing in FPGAs
`...................................... 119
`5.2
`Routing for Row-Based FPGAs ................................................... 120
`5.3
`Introduction to Segmented Channel Routing ............................... 121
`5.3.1
`5.3.2 Definitions for Segmented Channel Routing
`............................... 124
`5.3.3 An Algorithm for I-Segment Routing
`......................................... 124
`........................................ 125
`5.3.4 An Algorithm for K-Segment Routing
`5.3.5 Results for Segmented Channel Routing
`..................................... 128
`5.3.6 Final Remarks for Row-Based FPGAs
`........................................ 129
`5.4
`Routing for Symmetrical FPGAs ................................................. 130
`5.4.1 Example of Routing in a Symmetrical FPGA .............................. 131
`5.4.2 General Approach to Routing in Symmetrical FPGAs ................ 132
`5.4.3 The CGE Detailed Router Algorithm
`.......................................... 133
`5.4.4 Final Remarks for Symmetrical FPGAs
`...................................... 145
`
`Flexibility of FPGA Routing Architectures ............................. 147
`6
`FPGA Architectural Assumptions .............. ........ .......................... 148
`6.1
`6.1.1 The Logic Block ............................ ................................ ............... 149
`6.1.2 The Connection Block .................................................................. 151
`6.1.3 The Switch Block ......................................................................... 153
`6.2
`Experimental Procedure ............................................................... 155
`6.3
`Limitations of the Study............................................................... 156
`................................................................... 157
`6.4
`Expenmental Results
`6.4.1 Effect of Connection Block Flexibility on Routability ................ 157
`6.4.2 Effect of Switch Block Flexibility on Routability ....................... 161
`6.4.3 Tradeoffs in the Flexibilities of the S and C Blocks .................... 162
`6.4.4 Track Count Requirements
`.......................................................... 164
`6.4.5 Architectural Choices .. ................................................................. 165
`6.5
`Conclusions.................................................................................. 166
`
`A Theoretical Model for FPGA Routing .................................. 169
`7
`Architectural Assumptions for the FPGA .................................... 170
`7.1
`Overview of the Stochastic Model................................ ............... 171
`7.2
`7.2.1 Model of Global Routing and Detailed Routing .......................... 172
`
`

`

`x
`
`Field-Programmable Gate Arrays
`
`Previous Research for Predicting Channel Densities . .................. 172
`7.3
`7.3.1 Predicting Channel Densities in FPGAs ...................................... 173
`7.4
`The Probability of Successfully Routing a Connection ............... 174
`7.4.1 The Logic Block to C Block Event .............................................. 176
`7.4.2 The S Block Events ...................................................................... 178
`7.4.3 The C Block to Logic Block Event .............................................. 182
`...........••....•..•..........•.......................•.......... 184
`7.4.4 The Probability of Rei
`7.5
`Using the Stochastic Model to Predict Routability ...................... 184
`7.5.1 Routability Predictions ................................................................. 186
`.. .... ... .... .................. ... .... .............. ........ ... ....... ........ 189
`7.6
`Final Remarks
`
`References ................................................................................... 191
`
`Index ............................................................................................ 203
`
`

`

`Preface
`
`This book deals with Field-Programmable Gate Arrays (FPGAs). which have
`emerged as an attractive means of implementing logic circuits. providing
`instant manufacturing turnaround and negligible prototype costs. They hold
`the promise of replacing much of the VLSI market now held by Mask(cid:173)
`Programmed Gate Arrays. FPGAs offer an affordable solution for custom(cid:173)
`ized VLSI. over a wide variety of applications and have also opened up new
`possibilities in designing reconfigurable digital systems.
`The book discusses the most important aspects of FPGAs in a textbook
`manner. It is not an edited collection of papers. It gives the reader a focused
`view of the key issues. using a consistent notation and style of presentation.
`It provides detailed descriptions of commercially available FPGAs and an
`in-depth treatment of the FPGA architecture and CAD issues that are the sub(cid:173)
`jects of current research.
`The material presented will be of interest to a variety of readers. In
`particular. it should appeal to:
`1.
`Readers who are not familiar with FPGA technology. but wish to be
`introduced to it. They will find an extensive survey that includes pro(cid:173)
`ducts from ten FPGA manufacturers. and a discussion of the most per(cid:173)
`tinent issues in the design of FPGA architectures. as well as the CAD
`tools needed to make effective use of them.
`
`

`

`xii
`
`Field-Programmable Gate Arrays
`
`2.
`
`Readers who already have an understanding of FPGAs, but who are
`interested in learning about the research directions that are of current
`interest.
`Chapter 1 introduces FPGA technology. It defines an FPGA to be a user(cid:173)
`programmable integrated circuit, consisting of a set of logic blocks that can
`be interconnected by general routing resources. A survey of commercial
`FPGA devices is provided in Chapter 2. This includes descriptions of the
`chip architectures and the basic technologies that are needed to to achieve the
`programmability. Chapter 3 deals with the Computer-Aided Design (CAD)
`task known as "technology mapping," which determines how a given logic
`circuit can be implemented using the logic blocks available in a particular
`FPGA. Included are examples of technology mapping algorithms for two
`types of FPGA. Chapter 4 considers the design of the logic block and its
`effect on the speed and logic density of FPGA circuits. It gives the results of
`several recent studies on this topic. The next chapter focuses on the CAD
`routing problem in FPGAs, where the interconnections between the logic
`blocks are realized. Examples of algorithms are presented for two different
`types of FPGA. Chapter 6 investigates the question of how the richness of
`the routing resources affects the FPGA's ability to implement circuits. It
`shows the results of a recent experimental study. The final Chapter also con(cid:173)
`siders the the routing resources, but uses a mathematical modelling tech(cid:173)
`nique. This provides an example of how FPGAs can be studied and
`improved through theoretical research.
`The authors wish to acknowledge the encouragement and help of Carl
`Harris, of Kluwer Academic Publishers, who has ensured that this book was
`produced in optimum time. We would also like to express our appreciation
`to the many members of the FPGA research project at the University of
`Toronto, whose efforts have contributed both to the information presented in
`this book and to the general understanding of the many complex issues in the
`design and use of FPGAs. These include Professors Paul Chow and David
`Lewis, as well as Kevin Chung, Bahram Fallah, Keith Farkas, Alan Huang,
`Carl Mizuyabu, Gerard Paez, Immanuel Rahardja, Soon Ong Seo, Satwant
`Singh, Benjamin Tseng, and Jean-Michel Vuillamy. Professor Mart Molle
`provided valuable comments on the stochastic modelling chapter. Jack
`Kouloheris and Abbas EI Gamal of Stanford University generously provided
`several figures and engaging discussions. The authors gratefully ack(cid:173)
`nowledge enlightening conversations with many people in the FPGA indus(cid:173)
`try and environs. In particular Steve Trimberger, Bill Carter and Erich Goet(cid:173)
`ting from Xilinx, Jonathan Greene and Andy Haines at Actel, Stan Kopec
`and Clive McCarthy from Altera, Dwight Hill from AT&T Bell Labs, and
`David Marple from Crosspoint.
`
`

`

`Glossary
`
`Anti-Fuse
`a programming element switch which is normally open, and which
`closes when a high voltage is placed across its terminals.
`
`Area-efficiency (of an FPGA architecture)
`the amount of area required by the architecture to implement a given
`amount of logic circuitry.
`
`Binary Decision Diagram (BDD)
`a method of representing Boolean logic expressions using a selector
`element and Shannon decomposition ..
`
`Channel
`the rectangular area that lies between two rows or two columns of logic
`blocks. A routing channel contains a number of tracks.
`
`Channel Density
`the maximum number of connections in parallel anywhere in a channel.
`
`

`

`xiv
`
`Field-Programmable Gate Arrays
`
`Channel Segment
`a section of the routing channel.
`
`Connection Block
`a structure in the routing architecture of an FPGA that provides connec(cid:173)
`tions between the pins of the logic block and the routing channels.
`
`EEPROM
`Electrically Erasable Programmable Read Only Memory.
`
`EPROM
`Erasable Programmable Read Only Memory.
`
`Field-Programmable Device
`a device that can be configured by the user with simple electrical equip(cid:173)
`ment.
`
`Flexibility (of routing architecture)
`the number of choices offered by a routing architecture in making a set
`of connections.
`
`FPGA Architecture
`the logic block, routing and I/O block structure of an FPGA.
`
`Fe
`
`a parameter specifying connection block flexibility.
`
`Fs
`
`a parameter specifying switch block flexibility.
`
`Global Router
`a CAD tool that determines which set of channels each connection trav(cid:173)
`els through.
`
`Logic Block
`the basic unit of the FPGA that performs the combinational and
`sequential logic functions.
`
`Logic Block Architecture
`the choice of combinational and sequential functiolls of the logic block,
`
`

`

`Glossary
`
`xv
`
`and their interconnection within that block.
`
`Logic Block Functionality
`the number of different combinational functions that a logic block can
`implement.
`
`Logic Density (of an FPGA)
`the amount of logic capability per unit area that an FPGA achieves.
`
`Lookup Table (LUT)
`a digital memory with K address lines that can implement any function
`of K inputs by placing the truth table into the memory.
`
`Mask-Programed Gate Array (MPGA)
`an IC with uncommitted arrays of transistors that are personalized by
`two or more layers of metal connections.
`
`PAL Programmable Array Logic.
`
`Pass Transistor
`a transistor used as a switch to make a connection between two points.
`
`Placement
`the CAD task of assignment of logic blocks to physical locations.
`
`PLD Programmable Logic Device.
`
`Programmable Inversion
`a feature of a logic block which allows that inputs or outputs can be
`programmed in true or complemented form.
`
`Programming Technology
`the fundamental method of customization in an FPGA that provides the
`user-programmability. Examples are SRAM, anti-fuse, EPROM and
`EEPROM.
`
`Programmable Switch
`a switch in an FPGA that is used to connect two wire segments, and can
`
`

`

`xvi
`
`Field-Programmable Gate Arrays
`
`be programmably opened or closed using the programming technology.
`
`Routability
`the percentage of required connections successfully completed after
`routing.
`
`Routing Architecture
`the distribution and length of wire segments, and the manner in which
`the wire segments and programmable switches are placed in the routing
`channels.
`
`Segmented Channel
`a routing channel where tracks contain wire segments of varying
`lengths.
`
`Switch Block
`a structure in the routing architecture which connects one routing chan(cid:173)
`nel to another.
`
`Technology Mapping
`the CAD task of converting boolean expressions into a network that
`consists of only logic blocks.
`
`Track (routing)
`a straight section of wire that spans the entire width or length of a rout(cid:173)
`ing channel. A track can be composed of a number of wire segments of
`various lengths.
`
`Wire Segment
`a length of metal wire that has programmable switches on either end,
`and possibly switches connected to the middle of the wire. It cannot be
`broken by a programmable switch, or else it would be two wire seg(cid:173)
`ments.
`
`

`

`Field-Programmable
`Gate Arrays
`
`

`

`CHAPTER
`1
`Introduction
`to FPGAs
`
`Very Large Scale Integration (VLSI) technology has opened the door to
`the implementation of powerful digital circuits at low cost. It has become
`possible to build chips with more than a million transistors, as exemplified
`by state-of-the-art microprocessors. Such chips are realized using the full(cid:173)
`custom approach, where all parts of a VLSI circuit are carefully tailored to
`meet a set of specific requirements. Semi-custom approaches such as Stan(cid:173)
`dard Cells and Mask-Programmed Gate Arrays (MPGAs) have provided an
`easier way of designing and manufacturing Application-Specific Integrated
`Circuits (ASICs).
`Each of these techniques, however, requires extensive manufacturing
`effort, taking several months from beginning to end. This results in a high
`cost for each unit unless large volumes are produced, because the overhead to
`begin production of such chips ranges from $20,000 to $200,000.
`In the electronics industry it is vital to reach the market with new pro(cid:173)
`ducts in the shortest possible time, and so reduced development and produc(cid:173)
`tion time is essential. Furthermore, it is important that the financial risk
`incurred in the development of a new product be limited so that more new
`ideas can be prototyped. Field-Programmable Gate Arrays (FPGAs) have
`emerged as the ultimate solution to these time-to-market and risk problems
`because they provide instant manufacturing and very low-cost prototypes.
`An FPGA can be manufactured in only minutes, and prototype costs are on
`the order of $100. A field-programmable device is a device in which the final
`
`

`

`2
`
`Field-Programmable Gate Arrays
`
`logic structure can be directly configured by the end user, without the use of
`an integrated circuit fabrication facility.
`The last three years have seen FPGAs grow from a tiny market niche
`into a $200 million business. It is expected that almost one billion dollars
`worth of FPGAs will be sold every year by 1996, representing a significant
`proportion of the IC market.
`This book is concerned with many aspects of FPGA architecture and
`the Computer-Aided Design Tools needed in their use. This chapter begins
`by describing the evolution of programmable devices and gives a brief intro(cid:173)
`duction to FPGAs, their economics and their use. It also provides an indica(cid:173)
`tion of the material presented in subsequent chapters.
`
`1.1 Evolution of Programmable Devices
`Programmable devices have long played a key role in the design of
`digital hardware. They are general-purpose chips that can be configured for a
`wide variety of applications. The first type of programmable device to
`the Programmable Read-Only Memory
`achieve widespread use was
`(PROM). A PROM is a one-time programmable device that consists of an
`array of read-only cells. A logic circuit can be implemented by using the
`PROM's address lines as the circuit's inputs, and the circuit's outputs are
`then defined by the stored bits. With this strategy, any truth-table function
`can be implemented.
`Two basic versions of PROMs are available, those that can be pro(cid:173)
`grammed only by the manufacturer, and those that can be programmed by
`the end-user. The first type is called mask-programmable and the second is
`field-programmable. In the context of implementing logic circuits, superior
`speed-performance can be obtained with a mask-programmable chip because
`connections within the device can be hardwired during manufacture. In con(cid:173)
`trast, field-programmable connections always involve some sort of pro(cid:173)
`grammable switch (such as a fuse) that is inherently slower than a hardwired
`connection. However, a field-programmable device offers advantages that
`often outweigh its speed-performance shortcomings:
`•
`Field-programmable chips are less expensive at low volumes than
`mask-programmable devices because they are standard off-the-shelf
`parts. An IC manufacturing facility must be "tooled" to begin produc(cid:173)
`tion of a mask-programmed device which incurs a large overhead cost.
`Field-programmable chips can be programmed
`immediately,
`in
`minutes, whereas mask-programmable devices must be manufactured
`by a foundry over a period of weeks or months.
`
`•
`
`

`

`Introduction to FPGAs
`
`3
`
`Two field-programmable variants of the PROM, the Erasable Pro(cid:173)
`grammable Read-Only Memory (EPROM) and the Electrically Erasable
`Programmable Read-Only Memory (EEPROM) offer an additional advan(cid:173)
`tage; both can be erased and re-programmed many times. In some applica(cid:173)
`tions, and particularly during the early stages of a logic circuit's design, re(cid:173)
`programmability is an attractive feature.
`While PROMs are a viable alternative for realizing simple logic cir(cid:173)
`cuits, it is clear that the structure of a PROM is best suited for the implemen(cid:173)
`tation of computer memories. Another type of programmable device,
`designed specifically for implementing logic circuits, is the Programmable
`Logic Device (PLD). A PLD typically comprises an array of AND gates con(cid:173)
`nected to an array of OR gates. A logic circuit to be implemented in a PLD
`is thus represented in sum-of-products form. The most basic version of a
`PLD is the Programmable Array Logic (PAL). A PAL consists of a pro(cid:173)
`grammable AND-plane followed by a fixed OR-plane. The outputs of the
`OR gates can be optionally registered by a flip-flop in most chips. PALs also
`offer the advantages of field-programmability, which is obtained using one of
`fuse, EPROM or EEPROM technology.
`A more flexible version of the PAL is the Programmable Logic Array
`(PLA). PLAs also comprise an AND-plane followed by an OR-plane, but in
`this case connections to both planes are programmable. They are available in
`both mask-programmable and field-programmable versions.
`With their simple two-level structure, both types of PLDs described
`above allow high speed-performance implementations of logic circuits.
`However, the simple structure also leads to their main drawback. They can
`only implement small logic circuits that can be represented with a modest
`number of product terms, because their interconnection structure would grow
`impractically large if the number of product terms were increased.
`The most general type of programmable devices consists of an array of
`uncommitted elements that can be interconnected according to a user's
`specifications. Such is the class of devices known as Mask-Programmable
`Gate Arrays (MPGAs). The most popular MPGAs consist of rows of transis(cid:173)
`tors that can be interconnected to implement a desired logic circuit. User(cid:173)
`specified connections are available both within the rows (to implement basic
`logic gates) and between the rows (to connect the basic gates together). In
`addition to the rows of transistors, some circuitry is provided that handles
`input and output to the external pins of the Ie package. In an MPGA, all the
`mask layers that define the circuitry of the chip are pre-defined by the
`manufacturer, except those that specify the final metal layers. These metal
`layers are customized to connect the transistors in the array, thereby
`
`

`

`4
`
`Field-Programmable Gate Arrays
`
`implementing the desired circuit. MPGAs have a large non-recurring
`engineering (NRE) cost because of the need to generate the metal mask layer
`and manufacture the chip. However, the unit cost decreases significantly
`when large volumes (more than 1000 chips) are required.
`The main advantage of MPGAs over PLDs is that they provide a gen(cid:173)
`eral structure that allows the implementation of much larger circuits. This is
`primarily due to their interconnection structure, which scales proportionally
`with the amount of logic. On the other hand, since MPGAs are mask(cid:173)
`programmable, they require significant manufacturing time and incur high
`initial costs. A Field-Programmable Gate Array combines the programma(cid:173)
`bility of a PLD and the scalable interconnection structure of an MPGA. This
`results in programmable devices with much higher logic density.
`
`1.2 What is an FPGA?
`Like an MPGA, an FPGA consists of an array of uncommitted ele(cid:173)
`ments that can be interconnected in a general way. Like a PAL, the intercon(cid:173)
`nections between the elements are user-programmable. FPGAs were intro(cid:173)
`duced in 1985 by the Xilinx Company. Since then, many different FPGAs
`have been developed by a number of companies: Actel, Altera, Plessey, Plus,
`Advanced Micro Devices (AMD), QuickLogic, Algotronix, Concurrent
`Logic, and Crosspoint Solutions, among others. Chapter 2 describes the
`FPGAs produced by each of these ten companies.
`Figure 1.1 shows a conceptual diagram of a typical FPGA. As dep(cid:173)
`icted, it consists of a two-dimensional array of logic blocks that can be con(cid:173)
`nected by general interconnection resources. The interconnect comprises
`segments of wire, where the segments may be of various lengths. Present in
`the interconnect are programmable switches that serve to connect the logic
`blocks to the wire segments, or one wire segment to another. Logic circuits
`are implemented in the FPGA by partitioning the logic into individual logic
`blocks and then interconnecting the blocks as required via the switches.
`To facilitate the implementation of a wide variety of circuits, it is
`important that an FPGA be as versatile as possible. This means that the
`design of the logic blocks, coupled with that of the interconnection resources,
`should facilitate the implementation of a large number of digital logic cir(cid:173)
`cuits. There are many ways to design an FPGA, involving tradeoffs in the
`complexity and flexibility of both the logic blocks and the interconnection
`resources. This book will address most of the relevant issues involved.
`
`

`

`Introduction to FPGAs
`
`5
`
`Interconnection
`Resources
`
`Logic Block
`
`Figure 1.1 - A Conceptual FPGA.
`
`1.2.1 Logic Blocks
`The structure and content of a logic block are called its architecture.
`Logic block architectures can be designed in many different ways. As shown
`by the examples in Chapter 2, some FPGA logic blocks are as simple as 2-
`input NAND gates. Other blocks have more complex structure, such as mul(cid:173)
`tiplexers or lookup tables. In some FPGAs, a logic block corresponds t

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket