FPGA Architecture
FPGA Architecture
Implementation of Boolean
Function would require
8x2 PROM
Implement full adder using PROM
PLA
Programmable logic array
PLA architecture and table
Gate level diagram of PLA
f 2 x1 x2 x1 x2 x3 x1 x3
Customary diagram for PLA
Implement full adder using PLA
Programmable array logic
PAL
Implement following functions using
PAL
Extra circuit to PAL
Architecture of OLMC
(Output logic macrocell)
Generic array logic
CPLD
CPLD function block and Macrocell
Lay out of typical FPGA
FPGA
LB of FPGA
Simplified CLBs
Summary of programming technologies
Logic realization techniques
•There are two fundamental methods employed
by vendors for the programmable logic blocks
used to form the medium-grained architectures
–MUX (multiplexer) based
–LUT (lookup table) based
Key terms
•Look-up table (LUT): A circuit that implements a combinational
logic function by storing a list of output values that correspond to
all possible input combinations.
•CLB: Configurable Logic Block is the name for programmable
logic block in a FPGA.
•Logic element (LE): A circuit internal to a FPGA used to
implement a logic function as a look-up table.
•Cascade chain: A circuit in a FPGA that allows the input width of
a Boolean function to expand beyond the width of one logic
element.
•Carry chain: A circuit in a FPGA that is optimized for efficient
operation of carry functions between logic elements.
•DCM: Digital clock manager is a very important circuit that offers
various clock management functions in a FPGA.
•Clock trees: Distribution of clock signal lines along the FPGA
architecture.
Generic FPGA architecture
•Contain the following blocks:
–Programmable logic block
–I/O blocks
–Programmable interconnect
•In addition the FPGA has:
–Clock distribution circuit
–Embedded memory blocks
–Special purpose blocks:
•DSP blocks:
•Hardware multipliers, adders and registers
–Embedded microprocessors/microcontrollers
–High-speed serial transceivers
Types of architectures
•Fine grained
–Each programmable logic block can be used to
implement only a very simple function. For example, it
might be possible to configure the block to act as any 3-
input function, such as a primitive logic gate (AND,OR,
NAND, etc.) or a storage element (D-type flip-flop, D-
type latch, etc.).
–fine-grained architectures are said to be particularly
efficient when executing systolic algorithms (functions
that benefit from massively parallel implementations).
–Fine-grained implementations require a relatively large
number of connections into and out of each block
compared to the amount of functionality that can be
supported by those blocks
Types of architectures
•Coarse grained
–In the case of a coarse-grained architecture, each
logic block contains a relatively large amount of
logic compared to their fine-grained counterparts.
For example, a logic block might contain four 4-
input LUTs, four multiplexers, four D-type flip-
flops, and some fast carry logic.
–As the granularity of the blocks increases to
medium-grained and higher, the amount of
connections into the blocks decreases compared to
the amount of functionality they can support.
Logic realization techniques
•There are two fundamental methods employed
by vendors for the programmable logic blocks
used to form the medium-grained architectures
–MUX (multiplexer) based
–LUT (lookup table) based
Implementation of AND gate with MUX