What is FPGA ?TM
 

 

 

 

History

Introduction

Overview of the FPGA construction

The FPGA

Other topic of interest :

History

With the introduction of the Field Programmable Gate Array (‘FPGA’ - a configurable- logic chip) in the early 80’s, the hardware engineer was empowered to implement chip-level designs in silicon without having to fabricate a chip. As these devices and their software tools matured, the use of FPGAs expanded from testing and verifying digital designs to in-system use. This overview describes the fundamentals as well as current uses of this technology.

FPGAs perform the function of a custom LSI circuit, like a gate array, and are user programmable. The most significant advantage of using FPGA devices is the ability to produce a prototype logic design, implementing it in silicon within hours, while conventional gate array devices can take months and many dollars to develop and produce working silicon. Since their introduction, FPGAs have continued to increase in useable gate count, while decreasing in price. They are currently being used as glue logic, for test / verification logic in system designs, for adaptable system designs and more recently as coprocessing devices. FPGAs are also used to emulate other component architectures, and are applicable for rapid prototyping. With the next generation of SRAM based FPGAs (designed with computing in mind) a whole new generation of computing applications will result.

Introduction

The Field Programmable Gate Array or FPGA as it is more widely called is a type of programmable device. Programmable devices are a class of general-purpose chips that can be configured for a wide variety of applications. The first programmable device which achieved a widespread use was the PROM (Programmable Read-Only Memory). PROMs, a one-time programmable device come in two basic versions: 1) The Mask-Programmable Chip programmed only by the manufacturer, 2) The Field-Programmable Chip programmed by the end-user. The Field Programmable PROM developed into two types, the Erasable Programmable Read-Only Memory (EPROM) and the Electrically Erasable Programmable Read-Only Memory (EEPROM). The EEPROM has the advantage of being erasable and reprogrammable many times.

Another step took place in this field which lead to the development of the Programmable Logic Device (PLD). These devices were constructed to implement logic circuits. The PLD included an array AND gates connect to an array of OR gates. The PAL (Programmable Array Logic) is a commonly used PLD consisting of a programmable AND-plane followed by a fixed OR-plane. PALs come in both mask and field versions. The PAL was designed for small logic circuits.

The Mask-Programmable Gate Array (MPGA) was developed to handled larger logic circuits. A common MPGA consists of rows of transistors that can be interconnected to implement desired logic circuits. User specified connects are available both within the rows and between the rows. This enabled implementation of basic logic gates and the ability to interconnect the gates. As the metal layers are defined at the manufacturer, significant time and cost are incured in producing the run. In 1985, Xilinx Inc. introduced the FPGA (Field Programmable Gate Array). The interconnects between all the elements were designed to be user programmable.

Overview of the FPGA construction

There are four main categories of FPGAs currently commerically available: symmetrical array, row-based, hierarchical PLD, and sea-of-gates

Figure 1: Classes of FPGA

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.

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. The advantage of this technology is that it allows fast in-circuit reconfiguration. The major disadvantage is the size of the chip required by the RAM technology.

Anti-Fuse Technology -- An anti-fuse resides in a high-impedance state; and can be programmed into low impedance or "fused" state. A less expensive than the RAM technology, this device is a program once device.

EPROM / EEPROM Technology -- This method is the same as used in the EPROM memories. One advantage of this technology is that it can be reprogrammed without external storage of configuration; though the EPROM transistors cannot be re-programmed in-circuit. The following table shows some of the characteristics of the above programming technologies.

The FPGA


Figure 2: The FPGA structure

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 (Figure 2). 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. Customized configuration is established by programming internal static memory cells that determine the logic functions and internal connections implemented in the FPGA.


Figure 3: CLBs interconnect

Figure 3 depicts a FPGA with a two-dimensional array of logic blocks that can be interconnected by interconnect wires. All internal connections are composed of metal segments with programmable switching points to implement the desired routing. An abundance of different routing resources is provided to acheive efficient automated routing. There are four main types of interconnect, three are distinguished by the relative length of their segments: single-length lines, double-length lines and longlines. (NOTE: The number of routing channels shown in the figure are for illustration purposes only; the actual number of routing channels varies with the array size.) In addition, eight global buffers drive fast, low-skew nets most often used for clocks or global control signals.


Figure 4: Configurable Logic Blocks

The principle CLB (Configurable Logic Block) elements are shown in Figure 4. Each CLB contains a pair of flip-flops and two independent 4-input function generators. These function generators have a good deal of flexabilty as most combinatorial logic functions need less than four inputs. Configurable Logic Blocks implement most of the logic in an FPGA. The flexabilty and symmetry of the CLB architecture facilitates the placement and routing of a given application.

 


Copyright © 2000 All Rights Reserved.

Hosted by www.Geocities.ws

1