FPGA and other programmable logic ICs

FPGA is an integrated circuit that contains many (64 to over 10,000)identical logic cells that can be viewed as standard components.Each logic cell can independently take on any one of alimited set of personalities.The individual cells are interconnected by a matrix of wires and programmableswitches. A user's design is implemented by specifying the simple logic function foreach cell and selectively closing the switches in the interconnect matrix.Complex designs are created bycombining these basic blocks to create the desired circuit.Field Programmable means that the FPGA's function is defined by a user's program rather than by the manufacturer of the device.Depending on the particular device, the program is either 'burned' inpermanently or semi-permanently as part of a board assembly process, or is loaded from an external memory each time the device is powered up. The FPGA has three major configurable elements: configurable logic blocks (CLBs), input/output blocks, and interconnects. The CLBs provide the functional elements for constructing user's logic. The IOBs provide the interface between the package pins and internal signal lines. The programmable interconnect resources provide routing paths to connect the inputs and outputs of the CLBs and IOBs onto the appropriate networks. The Field-Programmable Gate Arrays (FPGAs) provide the benefits of custom CMOS VLSI, while avoiding the intial cost, time delay, and inherent risk of a conventional masked gate array. The FPGAs are customized by loading configuration data into the internal memory cells. Complex Programmable Logic Devices (CPLDs) and Field Programmable Gate Arrays (FPGAs) are becoming a critical part of every system design. There are many different FPGAs with different architectures / processes. There are four main categories of FPGAs currently commerically available: symmetrical array, row-based, hierarchical PLD, and sea-of-gates. In all of these FPGAs the interconnections and how they are programmed vary. Currently there are four technologies in use. They are: static RAM cells, anti-fuse, EPROM transistors, and EEPROM transistors. Depending upon the application, one FPGA technology may have features desirable for that application.

  • Static RAM Technology: In the Static RAM FPGA programmable connections are made using pass-transistors, transmission gates, or multiplexers that are controlled by SRAM cells. This technology allows allows fast in-circuit reconfiguration. The major disadvantage is the size of the chip required by the RAM technology and that the chip configuration needs to be loaded to the chip from some external source (usually external non-volatile memory chip). The FPGA can either actively read its configuration data out of external serial or byte-parallel PROM (master mode), or the configuration data can be written into the FPGA (slave and peripheral mode). The FPGA can be programmed an unlimited number of times.
  • Anti-Fuse Technology: An anti-fuse resides in a high-impedance state; and can be programmed into low impedance or "fused" state. This technology can be used to make program once devices that are less expensive than the RAM technology.
  • EPROM Technology: This method is the same as used in the EPROM memories. The programming is stored without external storage of configuration. EPROM based programmable chip cannot be re-programmed in-circuit and need to be cleared with UV erasing.
  • EEPROM Technology: This method is the same as used in the EEPROM memories. The programming is stored without external storage of configuration. EEPROM based programmable chips can be electrically erased but generally cannot be re-programmed in-circuit.
Many emerging applications in communication, computing and consumer electronics industries demand that their functionality stays flexible after the system has been manufactured. Such flexibility is required in order to cope with changing user requirements, improvements in system features, changing protocol and data-coding standards, demands to support variety of different user applications, etc. . An FPGA has a large number of these cells available to use as building blocks in complex digital circuits. Custom hardware has never been so easy to develop. Like microprocessors, RAM based FPGAs can be infinitely reprogrammed in-circuit in only a fraction of a second. Design revisions, even for a fielded product, can be implemented quickly and painlessly. Taking advantage of reconfiguration can also reduce hardware. Although reconfigurable FPGA technologies have been commercially available for over a decade, the number of available tools capable of supporting reconfigurable system design is still very limited. Many such existing tools are based on conventional static FPGA design flows, and demand expert skills and improvisation in order to produce a working reconfigurable system. Theoretically, FPGAs combine the speed of dedicated, application-optimized hardware with the ability to flexibly change chip resource allocation, so the same system can run many applications, optimized for each one. But FPGAs have historically been so hard to program that it's been very hard and expensive to use these advantages.


Back to ePanorama main page ??