FPGA Architectures Overview
FPGA design services
1-CORE Technologies has been providing high quality and cost-effective FPGA design services since 2004. Outsourcing FPGA design tasks to us will significantly reduce your design costs.
In this short article we discuss modern FPGA architectures (SRAM-based, flash-based, antifuse-based) and their applications.
FPGA (Field Programmable Gate Array) is an integrated circuit containing gate matrix which can be programmed by the user “in the field” without using expensive equipment.
An FPGA contains a set of programmable logic gates and rich interconnect resources, making it possible to implement complex digital circuits.
FPGA devices are produced by a number of semiconductor companies: Xilinx, Altera, Actel, Lattice, QuickLogic and Atmel.
FPGA Implementation Technologies
Configuration bitstream can be stored in FPGA using various technologies. The majority of FPGAs is based on SRAM (Static RAM).
SRAM-based FPGA stores logic cells configuration data in the static memory (organized as an array of latches). Since SRAM is volatile and can't keep data without power source, such FPGAs must be programmed (configured) upon start. There are two basic modes of programming:
- Master mode, when FPGA reads configuration data from an external source, such as an external Flash memory chip.
- Slave mode, when FPGA is configured by an external master device, such as a processor. This can be usually done via a dedicated configuration interface or via a boundary-scan (JTAG) interface.
Figure 1. SRAM memory cell.
SRAM-based FPGAs include most chips of Xilinx Virtex and Spartan families and Altera Stratix and Cyclone.
SRAM-based FPGAs with an internal flash memory
This type of FPGA is generally like the previous, except that these chips contain internal flash memory blocks, thus eliminating the need to have an external non-volatile memory.
One example of such FPGAs is the Xilinx Spartan-3AN family. Each model of Spartan-3AN has an in-chip flash memory module with an SPI interface capable of storing two or more configuration bitstreams. The bitstream can be chosen during startup.
Another example of such technology is the LatticeXP family by Lattice Semiconductors.
Using internal non-volatile memory can be also useful to prevent unauthorized bitstream copying.
Figure 2. A floating-gate transistor used in flash memory.
The true flash-based FPGAs shouldn't be confused with the previous type. The SRAM-based FPGAs with internal flash memory use flash only during startup to load data to the SRAM configuration cells. On the contrary, true flash-based FPGA uses flash as a primary resource for configuration storage, and doesn't require SRAM (a similar technology is used in CPLDs – complex programmable logic devices, but the FPGA architecture is very different from that of CPLD). This technology has an advantage of being less power consumptive. Flash-based FPGAs are also more tolerant to radiation effects.
Flash-based FPGA families such as Igloo and ProASIC3 are manufactured by Actel.
As in the previous case, using flash-based FPGAs can be a solution to prevent unauthorized bitstream copying.
Antifuse-based FPGAs are different from the previous ones in that they can be programmed only once.
The antifuse is a device that doesn't conduct current initially, but can be “burned” to conduct current (the antifuse behavior is thus opposite to that of the fuse, hence the name). The antifuse-based FPGA can't be then reprogrammed since there is no way to return a burned antifuse into the initial state.
Antifuse-based device families include Axcelerator produced by Actel.
Modern SRAM-based FPGAs have highest densities, but consume a lot of power and need an external non-volatile memory to store configuration bitstream. SRAM-based FPGAs with an internal flash module doesn't need an external configuration memory. Flash-based and Antifuse-based FPGAs consume much less power than their SRAM-based counterparts. Antifuse-based FPGAs can only be programmed once.