Home > Programmable Logic Device Architectures > FPGA > FPGA Programming


The FPGA program makes the look-up table, switching routes and multiplexer addressing to the correct specification. The three main types of programming for FPGAs are, 1) In Static RAM programming, interconnected routes are made by using pass transistors, transmission gates and multiplexers. 2) In Anti-fuse programming interconnection routes are programmed permanently using anti-fuses and 3) In EPROM/EEPROM programming transistors are used for interconnection routes.

Static RAM Programming :

SRAM programming uses one- or two-way switches and multiplexers to define paths. In case of the switches with a single NMOS transistor if the RAM cell associated with that switch is programmed with 1 then a path will be created for the signal. For two-way switches a transmission gate is made from a NMOS transistor in parallel with a PMOS transistor. Here, three connections between two logic blocks are made.

Advantage of SRAM programming :
1. Advantage of SRAM programming is to re-program the FPGA there is no need to take the FPGA out of the circuit.
2. The program stored in the non-volatile memory can be changed.
3. SRAM devices also require a relatively large area of silicon because at least five transistors are required for each memory cell of the memory.

Disadvantage of SRAM programming :

Disadvantage of SRAM programming is that it looses the program stored in the memory when the power is made off. Thus, some form of non-volatile memory is required to store the program and it also requires some form of program loader.

Anti-fuse Programming :

An anti-fuse is a high impedance contact until it has a relatively high voltage applied to it which turns it into a low-impedance state. Once fused it cannot be un-fused, therefore anti-fuse FPGAs cannot be reprogrammed.

EPROM and EEPROM Programming : The method used with EPROM/EEPROM programming is same as the method used in EPROM memories. NMOS transistor has two gates, a floating gate and a select gate. There is no direct electrical connection to the floating gate which is positioned between the select gate and the transistors channel. When no charge exists on the floating gate then the transistor operates in the normal way. To program the device large current should flow between the drain and source that causes an electrical charge to be trapped under the floating gate. An EPROM transistor is re-programmed by removing the trapped charge from the floating gate. In the SRAM and anti-fuse types of FPGA, switched connections are made between two metal lines.