Fpga2 2
Fpga2 2
The SRAM programming technology involves creating reconfigurability by bits stored in static
RAM (SRAM) cells. The logic blocks, I/O blocks, and interconnects can be made
programmable by using configuration bits stored in SRAM. Reconfigurable logic blocks can
easily be implemented as look-up tables (LUTs), which is the same approach as the ROM
method. Sixteen SRAM cells can implement any function of four variables i.e., 2 4. The
programmable interconnect can also be achieved by SRAM. The key idea is to use pass
transistors to create switches and then control them using the SRAM content. Consider the
arrangement in Figure 1(a). The SRAM cell is connected to the gate of the pass transistor.
When the SRAM cell content is 0, the pass transistor is OFF; hence, no connection exists
between points A and B. A closed path can be achieved by turning the pass transistor ON by
making the SRAM cell content 1. SRAM bits can be used to construct routing matrices by using
multiplexers as shown in Figure 1(b). Changing the contents of the SRAM in the arrangement
in Figure 1(b) will allow the designer to change what is connected to point X. The bits that are
stored in the SRAM for deciding the LUT functionality or interconnection are called
configuration bits.
An SRAM cell usually takes six transistors, as illustrated in Figure 2. Four cross-coupled
transistors are required to create a latch, and two additional transistors are used to control
passing data bits into the latch. When the Word Line is set to high, the values on the Bit Line
will be latched into the cell. This is the write operation. The read operation is performed by
precharging the Bit Line and Bit Line' to a logic 1 and then setting Word Line to high. The
contents stored in the cell will then appear on the Bit Line. Some SRAM cell implementations
use only five transistors. One advantage of using static RAM is that it is volatile and you can
write new contents again and again. This provides flexibility during prototyping and
development. Another advantage is that the fabrication steps for making SRAM cells are not
different from the steps for making logic. The major disadvantage of the SRAM programming
technology is that five or six transistors are used for every SRAM cell. This adds a tremendous
cost to the chip. For example, if an FPGA has 1 million programmable points, it means that
approximately 5 or 6 million transistors are employed in achieving this programmability.
Being volatile can become a disadvantage when an FPGA is used in the final product. Hence,
when SRAM FPGAs are used, a nonvolatile device such as an EPROM should be used to
permanently store the configuration bits. Typically, what is done is to use the EPROM as a
“boot ROM,” The EPROM contents are transferred to the SRAM when power comes up.
Xilinx FPGAs were the first FPGAs to use SRAM as the programming technology. In fact, it is
the flexibility and reprogrammability of SRAM FPGAs that caused FPGAs to become widely
popular. Now, many companies use the SRAM programming technology for their FPGAs.
EPROM/EEPROM/flash programming technology
EPROMs are slower than SRAM; hence, SRAM-based FPGAs can be programmed faster.
EPROMs also require more processing steps than SRAM. EPROM-based switches have high
ON resistance and high static power consumption. The EEPROM is similar to EPROM, but
removal of the gate charge can be done electrically. Flash memory is a form of EEPROM that
allows multiple locations to be erased in one operation. Flash memory stores information in
floating gate transistors as in traditional EPROM. The floating gate is isolated by an insulating
oxide layer; hence, any electrons placed there are trapped. The cell is read by placing a specific
voltage on the control gate. When the voltage to read is placed, electrical current will or will not
flow depending on the threshold voltage of the cell, which is controlled by the number of
electrons trapped in the floating gate. In some devices, the information is stored as absence or
presence of current. In some advanced devices, the amount of current flow is sensed; hence,
multiple bits of information can be stored in a cell. To erase, a large voltage differential is
placed between the control gate and the source, which pulls electrons off. Flash memory is
erased in segments/ sectors; all cells in a block are erased at the same time.
AntiFuse programming technology
In some FPGAs, the programmable connections between different points are achieved by what
is called an “antifuse.” The “antifuse” programming element changes from high resistance
(open) to low resistance (closed) when a high voltage is applied to it. Antifuses are often built
using dielectric layers between N+ diffusion and polysilicon layers or by amorphous silicon
between metal layers. Antifuses are normally OFF; permanently connected links are created
when they are programmed. The process is irreversible; hence, antifuse FPGAs are only one-
time programmable. Programming an antifuse requires applying a high voltage and currents in
excess of normal currents. Special programming transistors larger than normal transistors are
incorporated into the device in order to accomplish the programming. There are various antifuse
technologies; a popular one is the Via antifuse technology.
Antifuse technology has the advantage that the area consumed by the programmable switch is
small. Another advantage is that antifuse-based connections are faster than SRAM- and
EEPROM-based switches. The disadvantage of the antifuse technology is that it is not
reprogrammable (one time programmable). It is a permanent connection; if an error or design
change necessitates reprogramming, a new device is required.
Characteristics of the Major FPGA Programming Technologies