You are on page 1of 18

Unit-I

Field Programmable Gate Arrays Classes:


What is an FPGA?
• An FPGA is an IC that contains an array of identical logic
cells with programmable interconnections.
• The user can program the functions realized by each logic
cell and the connections between the cells.
• Figure shows the layout of part of a typical FPGA.
• The interior of the FPGA consists of an array of logic cells,
also called configurable logic blocks (CLBs)
• .The array of CLBs is surrounded by a ring of input-output
interface blocks.
• These I/O blocks connect the CLB signals to IC pins.
• The space between the CLBs is used to route connections
between the CLB outputs and inputs.
• The size, structure and number of blocks; and the
amount and connectivity of the interconnect vary
considerably among FPGA architectures.
• This difference in architectures is driven by
different programming technologies and different
target applications.
• An architectural organization that works well with
a particular programming technology typically does
not work with another.
• Figure shows a simplified version of a CLB.
• This CLB contains two function generators, two flip-
flops, and various multiplexers for routing signals
within the CLB.
• Each function generator has four inputs and can
implement any function of up to four variables.
• The function generators are implemented as
lookup tables (LUTs).
• A four input LUT is essentially a reprogrammable
ROM with 16 1-bit words.
• This ROM stores the truth table for the function
being generated.
Organization of FPGAs
FPGA Programming Technologies

• For commercial FPGAs, the main switch


technologies are
1. Static RAM cells (e.g. Xilinx)
2. Anti-fuses (e.g. Actel)
SRAM programming Technology
• Use SRAM cells to control pass transistors or
multiplexers by the bit-content in the SRAM
cells.
• Advantage: reprogrammable
• Disadvantage: occupy more space
Anti-fuse programming Technology
• An anti-fuse is the opposite of a regular fuse.
• It is an open path until a programming current is
forced through it by applying a high programming
voltage across it.
Advantage: small (allow denser switch population).
Disadvantage: only one-time programmable
Programmable Interconnect
• There are long lines that can be used to connect critical
CLBs that are physically far from each other on the chip
without inducing much delay.
• Theses long lines can also be used as buses within the
chip.
• There are also short lines that are used to connect
individual CLBs that are located physically close to each
other.
• Transistors are used to turn on or off connections
between different lines.
• There are also several programmable switch matrices
in the FPGA to connect these long and short lines
together in specific, flexible combinations.
• Three-state buffers are used to connect many
CLBs to a long line, creating a bus.
• Special long lines, called global clock lines , are
specially designed for low impedance and thus
fast propagation times.
• These are connected to the clock buffers and
to each clocked element in each CLB.
• This is how the clocks are distributed
throughout the FPGA, ensuring minimal skew
between clock signals arriving at different flip-
flops within the chip.
Configurable I/O Blocks:
• A Configurable input/output (I/O) Block is used
to bring signals onto the chip and send them
back off again.
• It consists of an input buffer and an output
buffer with three-state and open collector
output controls.
• Typically there are pull up resistors on the
outputs and sometimes pull down resistors
that can be used to terminate signals and
buses without requiring discrete resistors
external to the chip
• The polarity of the output can usually be programmed for
active high or active low output, and often the slew rate of
the output can be programmed for fast or slow rise and fall
times.
• There are typically flip-flops on outputs so that clocked
signals can be output directly to the pins without
encountering significant delay, more easily meeting the
setup time requirement for external devices.
• Similarly, flip-flops on the inputs reduce delay on a signal
before reaching a flip-flop, thus reducing the hold time
requirement of the FPGA.
Dedicated Specialized Components
of FPGAs
• The logic resources of FPGAs discussed so far are in
principle sufficient to implement a wide range of
circuits.
• However, to address high-performance and usability
needs of some applications, FPGA vendors additionally
intersperse FPGAs with special silicon components.
1. Dedicated RAM blocks (BRAM)
2. multipliers
3. adders (DSP units)
4. full-fledged CPU cores.
Applications of FPGAs

You might also like