All Topics  
Field-programmable gate array

 
Field Programmable Gate Array

   Email Print
   Bookmark   Link






 

Field-programmable gate array



 
 
FPGAs should not be confused with the flip-chip pin grid array
Flip-chip pin grid array

flip chip pin grid array is a form of pin grid array integrated circuit packaging in which the Die faces downwards on the top of the substrate with the back of the die exposed....
, a form of integrated circuit packaging.


A field-programmable gate array (FPGA) is a semiconductor
Semiconductor

A semiconductor is a material that has electrical conductivity between those of a Electrical conductor and an electrical insulation; it can vary over that wide range either permanently or dynamically....
 device that can be configured by the customer or designer after manufacturing—hence the name "field-programmable". FPGAs are programmed using a logic circuit diagram
Circuit diagram

A circuit diagram is a simplified conventional pictorial representation of an electrical circuit. It shows the components of the circuit as simplified standard symbols, and the electric power and signal connections between the devices....
 or a source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
 in a hardware description language
Hardware description language

In electronics, a hardware description language or HDL is any language from a class of computer languages and/or programming languages for formal description of digital logic and electronic circuits....
 (HDL) to specify how the chip will work. They can be used to implement any logical function that an application-specific integrated circuit
Application-specific integrated circuit

An application-specific integrated circuit is an integrated circuit customized for a particular use, rather than intended for general-purpose use....
 (ASIC) could perform, but the ability to update the functionality after shipping offers advantages for many applications.

FPGAs contain programmable logic
Programmable logic device

A programmable logic device or PLD is an electronics component used to build Reconfigurable Computing digital circuits. Unlike a logic gate, which has a fixed function, a PLD has an undefined function at the time of manufacture....
 components called "logic blocks", and a hierarchy of reconfigurable interconnects that allow the blocks to be "wired together"—somewhat like a one-chip programmable breadboard
Breadboard

A breadboard is a reusable sometimes solderless device used to build a prototype of an electronic circuit and for experimenting with circuit designs....
.






Discussion
Ask a question about 'Field-programmable gate array'
Start a new discussion about 'Field-programmable gate array'
Answer questions from other users
Full Discussion Forum



Encyclopedia


FPGAs should not be confused with the flip-chip pin grid array
Flip-chip pin grid array

flip chip pin grid array is a form of pin grid array integrated circuit packaging in which the Die faces downwards on the top of the substrate with the back of the die exposed....
, a form of integrated circuit packaging.


A field-programmable gate array (FPGA) is a semiconductor
Semiconductor

A semiconductor is a material that has electrical conductivity between those of a Electrical conductor and an electrical insulation; it can vary over that wide range either permanently or dynamically....
 device that can be configured by the customer or designer after manufacturing—hence the name "field-programmable". FPGAs are programmed using a logic circuit diagram
Circuit diagram

A circuit diagram is a simplified conventional pictorial representation of an electrical circuit. It shows the components of the circuit as simplified standard symbols, and the electric power and signal connections between the devices....
 or a source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
 in a hardware description language
Hardware description language

In electronics, a hardware description language or HDL is any language from a class of computer languages and/or programming languages for formal description of digital logic and electronic circuits....
 (HDL) to specify how the chip will work. They can be used to implement any logical function that an application-specific integrated circuit
Application-specific integrated circuit

An application-specific integrated circuit is an integrated circuit customized for a particular use, rather than intended for general-purpose use....
 (ASIC) could perform, but the ability to update the functionality after shipping offers advantages for many applications.

FPGAs contain programmable logic
Programmable logic device

A programmable logic device or PLD is an electronics component used to build Reconfigurable Computing digital circuits. Unlike a logic gate, which has a fixed function, a PLD has an undefined function at the time of manufacture....
 components called "logic blocks", and a hierarchy of reconfigurable interconnects that allow the blocks to be "wired together"—somewhat like a one-chip programmable breadboard
Breadboard

A breadboard is a reusable sometimes solderless device used to build a prototype of an electronic circuit and for experimenting with circuit designs....
. Logic blocks can be configured to perform complex combinational functions
Combinational logic

In digital circuit theory, combinational logic is a type of logic circuit whose output is a pure function of the present input only. This is in contrast to sequential logic, in which the output depends not only on the present input but also on the history of the input....
, or merely simple logic gate
Logic gate

A logic gate performs a logical operation on one or more logic inputs and produces a single logic output. The logic normally performed is Boolean logic and is most commonly found in digital circuits....
s like AND
AND gate

The AND gate is a digital logic gate that implements logical conjunction - it behaves according to the truth table to the right. A HIGH output results only if both the inputs to the AND gate are HIGH ....
 and XOR
XOR gate

The XOR gate is a digital logic gate that implements exclusive disjunction - it behaves according to the truth table above. A HIGH output results if one, and only one, of the inputs to the gate is HIGH ....
. In most FPGAs, the logic blocks also include memory elements, which may be simple flip-flops
Flip-flop (electronics)

In digital circuits, a flip-flop is a term referring to an electronic circuit that has two stable states and thereby is capable of serving as one bit of computer storage....
 or more complete blocks of memory.

History

The FPGA industry sprouted from programmable read only memory (PROM) and programmable logic devices (PLDs). PROMs and PLDs both had the option of being programmed in batches in a factory or in the field (field programmable), however programmable logic was hard-wired between logic gates.

Xilinx
Xilinx

Xilinx, Inc. is the world?s largest supplier of programmable logic devices, the inventor of the field programmable gate array and the first semiconductor company with a fabless manufacturing model....
 Co-Founders, Ross Freeman
Ross Freeman

Ross Freeman founded leading FPGA developer Xilinx in 1984 and a year later invented the first Field Programmable Gate Array. Freeman's invention - patent 4,870,302 - is a computer chip full of 'open gates' that engineers can reprogram as much as needed to add new functionality, adapt to changing standards or specifications and make last minu...
 and Bernard Vonderschmitt, invented the first commercially viable field programmable gate array in 1985 – the XC2064. The XC2064 had programmable gates and programmable interconnects between gates, the beginnings of a new technology and market. The XC2064 boasted a mere 64 configurable logic blocks (CLBs), with two 3-input lookup tables (LUTs). More than 20 years later, Ross was entered into the National Inventor's Hall of Fame for his invention.

Some of the industry’s foundational concepts and technologies for programmable logic arrays, gates, and logic blocks are founded in patents awarded to David W. Page and LuVerne R. Peterson in 1985.

In the late 1980s the Naval Surface Warfare Department funded an experiment proposed by Steve Casselman to develop a computer that would implement 600,000 reprogrammable gates. Casselman was successful and the system was awarded a patent in 1992.

Xilinx continued unchallenged and quickly growing from 1985 to the mid-1990s, when competitors sprouted up, eroding significant market-share. By 1993, Actel was serving about 18 percent of the market.

The 1990s were an explosive period of time for FPGAs, both in sophistication and the volume of production. In the early 1990s, FPGAs were primarily used in telecommunications and networking. By the end of the decade, FPGAs found their way into consumer, automotive, and industrial applications.

FPGAs got a glimpse of fame
Fame

The words Fame or Famous are used in many contexts, most of them inspired by the concept of celebrity.Fame may refer to:...
 in 1997, when Adrian Thompson merged genetic algorithm technology and FPGAs to create a sound recognition device. Thomson’s algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
 allowed an array of 64 x 64 cells in a Xilinx FPGA chip to decide the configuration needed to accomplish a sound recognition task.

Modern Developments

A recent trend has been to take the coarse-grained architectural approach a step further by combining the logic blocks and interconnects of traditional FPGAs with embedded microprocessors and related peripherals to form a complete "system on a programmable chip". This work mirrors the architecture by Ron Perlof and Hana Potash of Burroughs Advanced Systems Group which combined a reconfigurable CPU architecture on a single chip called the SB24. That work was done in 1982. Examples of such hybrid technologies can be found in the Xilinx Virtex-II PRO and Virtex-4 devices, which include one or more PowerPC
PowerPC

PowerPC is a RISC instruction set architecture created by the 1991 Apple Inc.?IBM?Motorola alliance, known as AIM alliance. Originally intended for personal computers, PowerPC CPUs have since become popular embedded system and high-performance processors....
 processors embedded within the FPGA's logic fabric. The Atmel FPSLIC
Atmel AVR

The AVR is a Modified Harvard architecture 8-bit Reduced instruction set computer single chip microcontroller which was developed by Atmel in 1996....
 is another such device, which uses an AVR
Atmel AVR

The AVR is a Modified Harvard architecture 8-bit Reduced instruction set computer single chip microcontroller which was developed by Atmel in 1996....
 processor in combination with Atmel's programmable logic architecture.

An alternate approach to using hard-macro processors is to make use of "soft" processor core
Semiconductor intellectual property core

In electronic design a semiconductor intellectual property core, IP block, IP core, or logic core is a reusable unit of logic, cell, or chip layout design and is also the intellectual property of one party....
s that are implemented within the FPGA logic. (See "Soft processors" below).

As previously mentioned, many modern FPGAs have the ability to be reprogrammed at "run time," and this is leading to the idea of reconfigurable computing
Reconfigurable computing

Reconfigurable computing is a computing paradigm combining some of the flexibility of software with the high performance of hardware by processing with very flexible high speed computing fabrics like FPGAs....
 or reconfigurable systems — CPUs
Central processing unit

A central processing unit is an electronic circuit that can execute computer programs. This broad definition can easily be applied to many early computers that existed long before the term "CPU" ever came into widespread usage....
 that reconfigure themselves to suit the task at hand. The Mitrion Virtual Processor from Mitrionics
Mitrionics

Mitrionics is a Swedish company manufacturing softcore reconfigurable processors. It has been mentioned as one of EETimes "60 Emerging startups"....
 is an example of a reconfigurable soft processor, implemented on FPGAs. However, it does not support dynamic reconfiguration at runtime, but instead adapts itself to a specific program.

Additionally, new, non-FPGA architectures are beginning to emerge. Software-configurable microprocessor
Microprocessor

A microprocessor incorporates most or all of the functions of a central processing unit on a single integrated circuit . The first microprocessors emerged in the early 1970s and were used for electronic calculators, using Binary-coded decimal arithmetic on 4-bit Word ....
s such as the Stretch S5000 adopt a hybrid approach by providing an array of processor cores and FPGA-like programmable cores on the same chip.

Gates
  • 1987: 9,000 gates, Xilinx
  • 1992: 600,000, Naval Surface Warfare Department
  • Early 2000s: Millions


Market Size
  • 1985: First commercial FPGA technology invented by Xilinx
  • 1987: $14 million
  • ~1993: >$385 million
  • 2005: $1.9 billion
  • 2010 estimates: $2.75 billion


FPGA Design Starts
  • 10,000
  • 2005: 80,000
  • 2008:90,000
  • 2010 estimates: 110,000


FPGA Comparisons

Historically, FPGAs have been slower, less energy efficient and generally achieved less functionality than their fixed ASIC
ASIC

The acronym ASIC, depending on context, may stand for:* Application-specific integrated circuit, an integrated circuit customized for a particular use, rather than intended for general-purpose use...
 counterparts. A combination of volume, fabrication improvements, research and development, and the I/O capabilities of new supercomputers have largely closed the performance gap between ASICs and FPGAs.

Advantages include a shorter time to market
Time to market

In commerce, time to market is the length of time it takes from a product being conceived until its being available for sale. TTM is important in industries where products are outmoded quickly....
, ability to re-program in the field to fix bugs, and lower non-recurring engineering
Non-recurring engineering

Non-recurring engineering refers to the one-time cost of researching, developing, designing, and testing a new product. When budgeting for a project, NRE must be considered in order to analyze if a new product will be profitable....
 costs. Vendors can also take a middle road by developing their hardware on ordinary FPGAs, but manufacture their final version so it can no longer be modified after the design has been committed.

Xilinx claims that several market and technology dynamics are changing the ASIC/FPGA paradigm:

  • IC
    Integrated circuit

    In electronics, an integrated circuit is a miniaturized electronic circuit that has been manufactured in the surface of a thin Wafer of semiconductor material....
     costs are rising aggressively
  • ASIC complexity has bolstered development time and costs
  • R&D resources and headcount is decreasing
  • Revenue losses for slow time-to-market are increasing
  • Financial constraints in a poor economy are driving low-cost technologies


These trends make FPGAs a better alternative than ASICs for a growing number of higher-volume applications than they have been historically used for, which the company blames for the growing number of FPGA design starts (see History).

The primary differences between CPLDs and FPGAs are architectural. A CPLD has a somewhat restrictive structure consisting of one or more programmable sum-of-products logic arrays feeding a relatively small number of clocked registers. The result of this is less flexibility, with the advantage of more predictable timing delays and a higher logic-to-interconnect ratio. The FPGA architectures, on the other hand, are dominated by interconnect. This makes them far more flexible (in terms of the range of designs that are practical for implementation within them) but also far more complex to design for.

Another notable difference between CPLDs and FPGAs is the presence in most FPGAs of higher-level embedded functions (such as adders and multipliers) and embedded memories, as well as to have logic blocks implement decoders or mathematical functions.

Some FPGAs have the capability of partial re-configuration that lets one portion of the device be re-programmed while other portions continue running.

Applications

Applications of FPGAs include digital signal processing
Digital signal processing

Digital signal processing is concerned with the representation of the signal s by a sequence of numbers or symbols and the processing of these signals....
, software-defined radio
Software-defined radio

A Software-Defined Radio system is a radio telecommunications system where components that have typically been implemented in hardware are instead implemented using software on a personal computer or other embedded computing devices....
, aerospace
Aerospace

Aerospace comprises the atmosphere of Earth and surrounding outer space. Typically the term is used to refer to the industry that researches, designs, manufactures, operates, and maintains vehicles moving through Aircraft and Space exploration....
 and defense
Defense (military)

Defence has several uses in the sphere of military application.Personal defence implies measures taken by individual soldiers in protecting themselves whether by use of protective materials such as armour, or field construction of trenches or a bunker, or by using weapons that prevent the enemy approaching them to initiate close combat....
 systems, ASIC
Application-specific integrated circuit

An application-specific integrated circuit is an integrated circuit customized for a particular use, rather than intended for general-purpose use....
 prototyping, medical imaging
Medical imaging

Medical imaging refers to the techniques and processes used to create s of the human body for clinical purposes or medical science .As a discipline and in its widest sense, it is part of biological imaging and incorporates radiology , radiological sciences, endoscopy, thermography, medical photography and microscopy ....
, computer vision
Computer vision

Computer vision is the science and technology of machines that see. As a scientific discipline, computer vision is concerned with the theory for building artificial systems that obtain information from images....
, speech recognition
Speech recognition

Speech recognition converts spoken words to machine-readable input . The term "voice recognition" is sometimes incorrectly used to refer to speech recognition, when actually referring to speaker recognition, which attempts to identify the person speaking, as opposed to what is being said....
, cryptography
Cryptography

Cryptography is the practice and study of hiding information. In modern times cryptography is considered a branch of both mathematics and computer science and is affiliated closely with information theory, computer security and engineering....
, bioinformatics
Bioinformatics

Bioinformatics is the application of information technology to the field of molecular biology. The term bioinformatics was coined by Paulien Hogeweg in 1978 for the study of informatic processes in biotic systems....
, computer hardware emulation
Emulator

An emulator duplicates the functions of one system using a different system, so that the second system behaves like the first system. This focus on exact reproduction of external behavior is in contrast to some other forms of computer simulation, which can concern an abstract model of the system being simulated....
 and a growing range of other areas.

FPGAs originally began as competitors to CPLD
CPLD

A complex programmable logic device is a programmable logic device with complexity between that of Programmable Array Logics and Field-programmable gate arrays, and architectural features of both....
s and competed in a similar space, that of glue logic
Glue logic

In electronics, glue logic is the custom electronic circuitry needed to achieve compatible interfaces between two different off-the-shelf integrated circuits....
 for PCBs
Printed circuit board

A printed circuit board, or PCB, is used to mechanically support and electrically connect electronic components using Conductor pathways, or signal traces, industrial etchinged from copper sheets laminated onto a non-conductive substrate....
. As their size, capabilities, and speed increased, they began to take over larger and larger functions to the state where some are now marketed as full systems on chips (SoC
System-on-a-chip

System-on-a-chip or system on chip refers to integrating all components of a computer or other Electronics system into a single integrated circuit ....
). Particularly with the introduction of dedicated multipliers into FPGA architectures in the late 1990s, applications which had traditionally been the sole reserve of DSPs, began to incorporate FPGAs instead.

FPGAs especially find applications in any area or algorithm that can make use of the massive parallelism offered by their architecture. One such area is code breaking, in particular brute-force attack, of cryptographic algorithms.

FPGAs are increasingly used in conventional high performance computing applications where computational kernels such as FFT or Convolution
Convolution

In mathematics and, in particular, functional analysis, convolution is a mathematical operator on two function s f and g, producing a third function that is typically viewed as a modified version of one of the original functions....
 are performed on the FPGA instead of a microprocessor
Microprocessor

A microprocessor incorporates most or all of the functions of a central processing unit on a single integrated circuit . The first microprocessors emerged in the early 1970s and were used for electronic calculators, using Binary-coded decimal arithmetic on 4-bit Word ....
.

The inherent parallelism of the logic resources on an FPGA allows for considerable compute throughput even at a low MHz clock rates. The flexibility of the FPGA allows for even higher performance by trading off precision and range in the number format for an increased number of parallel arithmetic units. This has driven a new type of processing called reconfigurable computing
Reconfigurable computing

Reconfigurable computing is a computing paradigm combining some of the flexibility of software with the high performance of hardware by processing with very flexible high speed computing fabrics like FPGAs....
, where time intensive tasks are offloaded from software to FPGAs.

The adoption of FPGAs in high performance computing is currently limited by the complexity of FPGA design compared to conventional software and the extremely long turn-around times of current design tools, where 4-8 hours wait is necessary after even minor changes to the source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
.

Traditionally, FPGAs have been reserved for specific vertical applications where the volume of production is small. For these low-volume applications, the premium that companies pay in hardware costs per unit for a programmable chip is more affordable than the development resources spent on creating an ASIC for a low-volume application. . Today, new cost and performance dynamics have broadened the range of viable applications.

Architecture

The most common FPGA architecture consists of an array of configurable logic blocks (CLBs), I/O pads, and routing channels. Generally, all the routing channels have the same width (number of wires). Multiple I/O pads may fit into the height of one row or the width of one column in the array.

An application circuit must be mapped into an FPGA with adequate resources. While the number of CLBs and I/Os required are easily determined from the design, the amount of routing tracks needed may vary considerably even among designs with the same amount of logic. (For example, a crossbar switch
Crossbar switch

A crossbar switch is a switch connecting multiple inputs to multiple outputs in a matrix manner.Originally the term was used literally, for a matrix switch controlled by a grid of crossing metal bars, and later was broadened to matrix switches in general....
 requires much more routing than a systolic array
Systolic array

In computer architecture, a systolic array is a pipe network arrangement of processing units called cells. It is a specialized form of parallel computing, where cells , compute data and store it independently of each other....
 with the same gate count.) Since unused routing tracks increase the cost (and decrease the performance) of the part without providing any benefit, FPGA manufacturers try to provide just enough tracks so that most designs that will fit in terms of LUTs and IOs can be routed. This is determined by estimates such as those derived from Rent's rule
Rent's Rule

Rent's rule pertains to the organization of computing logic, specifically the relationship between the number of external signal connections to a logic block with the number of logic gates in the logic block, and has been applied to circuits ranging from small digital circuits to mainframe computers....
 or by experiments with existing designs.

A classic FPGA logic block consists of a 4-input lookup table
Lookup table

In computer science, a lookup table is a data structure, usually an array or associative array, often used to replace a runtime computation with a simpler array indexing operation....
 (LUT), and a flip-flop
Flip-flop (electronics)

In digital circuits, a flip-flop is a term referring to an electronic circuit that has two stable states and thereby is capable of serving as one bit of computer storage....
, as shown below. In recent years, manufacturers have started moving to 6-input LUTs in their high performance parts, claiming increased performance.

There is only one output, which can be either the registered or the unregistered LUT output. The logic block has four inputs for the LUT and a clock input. Since clock signals (and often other high-fanout
Fanout

Fan-out is a measure of the ability of a logic gate output, implemented Electronics, to drive a number of inputs of other logic gates of the same type....
 signals) are normally routed via special-purpose dedicated routing networks in commercial FPGAs, they and other signals are separately managed.

For this example architecture, the locations of the FPGA logic block pins are shown below.

Each input is accessible from one side of the logic block, while the output pin can connect to routing wires in both the channel to the right and the channel below the logic block.

Each logic block output pin can connect to any of the wiring segments in the channels adjacent to it.

Similarly, an I/O pad can connect to any one of the wiring segments in the channel adjacent to it. For example, an I/O pad at the top of the chip can connect to any of the W wires (where W is the channel width) in the horizontal channel immediately below it.

Generally, the FPGA routing is unsegmented. That is, each wiring segment spans only one logic block before it terminates in a switch box. By turning on some of the programmable switches within a switch box, longer paths can be constructed. For higher speed interconnect, some FPGA architectures use longer routing lines that span multiple logic blocks.

Whenever a vertical and a horizontal channel intersect, there is a switch box. In this architecture, when a wire enters a switch box, there are three programmable switches that allow it to connect to three other wires in adjacent channel segments. The pattern, or topology, of switches used in this architecture is the planar or domain-based switch box topology. In this switch box topology, a wire in track number one connects only to wires in track number one in adjacent channel segments, wires in track number 2 connect only to other wires in track number 2 and so on. The figure below illustrates the connections in a switch box.

Modern FPGA families expand upon the above capabilities to include higher level functionality fixed into the silicon. Having these common functions embedded into the silicon reduces the area required and gives those functions increased speed compared to building them from primitives. Examples of these include multipliers, generic DSP blocks, embedded processors, high speed IO logic and embedded memories.

FPGAs are also widely used for systems validation including pre-silicon validation, post-silicon validation, and firmware development. This allows chip companies to validate their design before the chip is produced in the factory, reducing the time to market.

FPGA Design and Programming

To define the behavior of the FPGA, the user provides a hardware description language
Hardware description language

In electronics, a hardware description language or HDL is any language from a class of computer languages and/or programming languages for formal description of digital logic and electronic circuits....
 (HDL) or a schematic
Schematic

A schematic is a diagram that represents the elements of a system using abstract, graphic symbols rather than realistic pictures. A schematic usually omits all details that are not relevant to the information the schematic is intended to convey, and may add unrealistic elements that aid comprehension....
 design. The HDL form might be easier to work with when handling large structures because it's possible to just specify them numerically rather than having to draw every piece by hand. On the other hand, schematic entry can allow for easier visualisation of a design.

Then, using an electronic design automation
Electronic design automation

Electronic Design Automation is the category of tools for designing and producing electronic systems ranging from printed circuit boards to integrated circuits....
 tool, a technology-mapped netlist
Netlist

The word netlist can be used in several different contexts, but perhaps the most popular is in the field of electronic design. In this context, a "netlist" describes the connectivity of an electronic design....
 is generated. The netlist can then be fitted to the actual FPGA architecture using a process called place-and-route
Place and route

Place and Route is a stage in the design of Printed Circuit Boards, Integrated Circuits, and Field programmable gate arrays. As implied by the name, it is composed of two steps, placement and routing ....
, usually performed by the FPGA company's proprietary place-and-route software. The user will validate the map, place and route results via timing analysis, simulation
Simulation

Simulation is the imitation of some real thing, state of affairs, or process. The act of simulating something generally entails representing certain key characteristics or behaviors of a selected physical or abstract system....
, and other verification
Verification

selfref|For Wikipedia's verification policy see...
 methodologies. Once the design and validation process is complete, the binary file generated (also using the FPGA company's proprietary software) is used to (re)configure the FPGA.

Going from schematic/HDL source files to actual configuration: The source files are fed to a software suite from the FPGA/CPLD vendor that through different steps will produce a file. This file is then transferred to the FPGA/CPLD via a serial interface (JTAG) or to an external memory device like an EEPROM
EEPROM

EEPROM stands for Electrically Erasable Programmable Read-Only Memory and is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, e.g., calibration tables or device configuration....
.

The most common HDLs are VHDL and Verilog
Verilog

In the semiconductor and electronic design industry, Verilog is a hardware description language used to model Electronics#Electronic systems. Verilog HDL, not to be confused with VHDL, is most commonly used in the design, verification, and implementation of Digital circuit logic chips at the Register transfer level level of Abstraction...
, although in an attempt to reduce the complexity of designing in HDLs, which have been compared to the equivalent of assembly language
Assembly language

An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture....
s, there are moves to raise the abstraction level through the introduction of alternative languages
Hardware description language

In electronics, a hardware description language or HDL is any language from a class of computer languages and/or programming languages for formal description of digital logic and electronic circuits....
.

To simplify the design of complex systems in FPGAs, there exist libraries of predefined complex functions and circuits that have been tested and optimized to speed up the design process. These predefined circuits are commonly called IP core
Semiconductor intellectual property core

In electronic design a semiconductor intellectual property core, IP block, IP core, or logic core is a reusable unit of logic, cell, or chip layout design and is also the intellectual property of one party....
s
, and are available from FPGA vendors and third-party IP suppliers (rarely free, and typically released under proprietary licenses). Other predefined circuits are available from developer communities such as OpenCores
OpenCores

OpenCores is a loose community of people who are interested in developing digital open source hardware through electronic design automation, with a similar ethos to the free software movement....
 (typically free
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
, and released under the GPL
GNU General Public License

The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
, BSD or similar license), and other sources.

In a typical design flow, an FPGA application developer will simulate the design at multiple stages throughout the design process. Initially the RTL
Register transfer level

In integrated circuit design, Register Transfer Level description is a way of describing the operation of a synchronous circuit digital circuit....
 description in VHDL or Verilog
Verilog

In the semiconductor and electronic design industry, Verilog is a hardware description language used to model Electronics#Electronic systems. Verilog HDL, not to be confused with VHDL, is most commonly used in the design, verification, and implementation of Digital circuit logic chips at the Register transfer level level of Abstraction...
 is simulated by creating test benches to simulate the system and observe results. Then, after the synthesis engine has mapped the design to a netlist, the netlist is translated to a gate level description where simulation is repeated to confirm the synthesis proceeded without errors. Finally the design is laid out in the FPGA at which point propagation delays can be added and the simulation run again with these values back-annotated onto the netlist.

Basic Process Technology Types

  • SRAM
    Static random access memory

    Static random access memory is a type of semiconductor memory where the word static indicates that, unlike dynamic random access memory, it does not need to be periodically memory refresh, as SRAM uses bistable latch to store each bit....
     - based on static memory technology. In-system programmable and re-programmable. Requires external boot devices. CMOS
    CMOS

    Complementary metal?oxide?semiconductor , is a major class of integrated circuits. CMOS technology is used in microprocessors, microcontrollers, Static Random Access Memory, and other digital logic circuits....
    .
  • Antifuse
    Antifuse

    An antifuse is an electrical device that performs the opposite function to a Fuse . Whereas a fuse starts with a low resistance and is designed to permanently break an Electrical conduction path , an antifuse starts with a high resistance and is designed to permanently create an electrically conductive path ....
     - One-time programmable. CMOS.
  • EPROM
    EPROM

    An EPROM, or Erasable Programmable Read Only Memory, is a type of memory integrated circuit that retains its data when its power supply is switched off....
     - Erasable Programmable Read-Only Memory technology. Usually one-time programmable in production because of plastic packaging. Windowed devices can be erased with ultraviolet (UV) light. CMOS.
  • EEPROM
    EEPROM

    EEPROM stands for Electrically Erasable Programmable Read-Only Memory and is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, e.g., calibration tables or device configuration....
     - Electrically Erasable Programmable Read-Only Memory technology. Can be erased, even in plastic
    Plastic

    Plastic is the general common term for a wide range of synthetic or semisynthetic organic chemistry solid materials suitable for the manufacture of industrial products....
     packages. Some, but not all, EEPROM devices can be in-system programmed. CMOS.
  • Flash
    Flash memory

    Flash memory is a non-volatile memory computer storage that can be electrically erased and reprogrammed. It is a technology that is primarily used in memory cards and USB flash drives for general storage and transfer of data between computers and other digital products....
     - Flash-erase EPROM technology. Can be erased, even in plastic packages. Some, but not all, flash devices can be in-system programmed. Usually, a flash cell is smaller than an equivalent EEPROM cell and is therefore less expensive to manufacture. CMOS.
  • Fuse
    Fuse (electrical)

    In electronics and electrical engineering a fuse is a type of overcurrent protection device. Its essential component is a metal wire or strip that melts when too much current flows, which breaks the electrical network in which it is connected, thus protecting the circuit's other components from damage due to excessive current....
     - One-time programmable. Bipolar.


Major Manufacturers


Xilinx
Xilinx

Xilinx, Inc. is the world?s largest supplier of programmable logic devices, the inventor of the field programmable gate array and the first semiconductor company with a fabless manufacturing model....
 and Altera
Altera

Altera Corporation are a major manufacturer of high-end PLDs . Altera's main products are the Cyclone and Stratix series of FPGAs , the MAX series of CPLDs , the Hardcopy series of structured ASICs and the Quartus II software....
 are the current FPGA market leaders and long-time industry rivals. Together, they control over 80 percent of the market, with Xilinx alone representing over 50 percent.

Xilinx also provides free Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 and Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
 design software , while Altera provides free Windows tools; the Solaris and Linux tools are only available via a rental scheme.

Other competitors include Lattice Semiconductor
Lattice Semiconductor

Lattice Semiconductor Corporation is a United States based manufacturer of high-performance programmable logic devices . The Oregon based company is the number four ranked company in world market share for FPGA devices, and number two for CPLDs & SPLDs....
 (SRAM), Actel
Actel

Actel Corporation is a manufacturer of single-chip Field-programmable gate array solutions. Actel is most well known for their Antifuse and flash memory based FPGAs....
(antifuse, flash-based, mixed-signal), and QuickLogic
QuickLogic

QuickLogic Corporation is a manufacturer of programmable logic devices. Until recently they were a supplier of Field-programmable gate array based on antifuse technology, making the devices one-time programmable....
(handheld focused).

See also

  • Gate array
    Gate array

    A gate array or uncommitted logic array is an approach to the design and manufacture of application-specific integrated circuits . A gate array circuit is a prefabricated silicon chip circuit with no particular function in which transistors, standard NAND or NOR logic gates, and other active devices are placed at regular predefined pos...
  • PSoC
    PSoC

    PSoC is a family of Mixed-signal integrated circuit arrays made by Cypress Semiconductor, featuring a microcontroller and configurable integrated analog and digital peripherals....
  • Application-specific integrated circuit
    Application-specific integrated circuit

    An application-specific integrated circuit is an integrated circuit customized for a particular use, rather than intended for general-purpose use....
     (ASIC)
  • Application-specific instruction-set processor
    Application-specific instruction-set processor

    An application-specific instruction-set processor is a component used in System-on-a-Chip design. The instruction set of an ASIP is tailored to benefit a specific application....
     (ASIP)
  • Complex programmable logic device (CPLD)
  • Field-programmable analog array (FPAA)
  • VHDL
    VHSIC Hardware Description Language

    VHDL is commonly used as a design-entry language for field-programmable gate arrays and application-specific integrated circuits in electronic design automation of digital circuits....
    : VHSIC
    VHSIC

    VHSIC was a 1980s United States of America government program to develop Very-High-Speed Integrated Circuits.The United States Department of Defense launched the VHSIC project in 1980 as a joint tri-service project....
     (Very High Speed Integrated Circuit) Hardware Description Language
  • Verilog
    Verilog

    In the semiconductor and electronic design industry, Verilog is a hardware description language used to model Electronics#Electronic systems. Verilog HDL, not to be confused with VHDL, is most commonly used in the design, verification, and implementation of Digital circuit logic chips at the Register transfer level level of Abstraction...
    : Hardware Description Language
  • JHDL
    JHDL

    JHDL is a low level hardware description language, focused primarily on building circuits via an Object-oriented programming approach that bundles collections of gates into Java objects....
    : Just-Another Hardware Description Language
  • Reconfigurable Computing
    Reconfigurable computing

    Reconfigurable computing is a computing paradigm combining some of the flexibility of software with the high performance of hardware by processing with very flexible high speed computing fabrics like FPGAs....
  • Configware
    Configware

    Configware is the program source for morphware, i. e. for reconfigurableplatforms like FPGAs , or, to coarse-grained reconfigurable platforms like reconfigurable datapath arrays ....
  • MyHDL
    MyHDL

    MyHDL is a Python based hardware description language .Features of MyHDL include:* The ability to generate VHDL and Verilog code from a MyHDL design....
     Python based HDL -- generates Verilog or VHDL
  • SystemC
    SystemC

    SystemC is often thought of as a hardware description language like VHDL and Verilog, but is more aptly described as a system description language, since it exhibits its real power during transaction-level modeling , behavioral modeling, and High Level Synthesis....
     System Description Language -- C like