Fpga Architecture
Fpga Architecture
STRATEGIES
VLSI Design Methodology
Design Rules
Simulation Models and parameters
Silicon IC Design
Mask Layouts
Foundry Team
Integrated circuits (IC)
CAD Tool
Process Information Provider Software Tools
Programmable
PLDs
FPGA’s
ASIC Design Methodologies
ASIC Design Methodology
High Performance
PLDs started as small devices that could replace a handful of TTL parts,
and they have grown to look very much like their younger relations, the
FPGAs.
The user then connect a computer to the chip and program the chip to
make the necessary connections according to the configuration file. There
is no customization of any mask level for an FPGA, allowing the FPGA to
be manufactured as a standard part in high volume.
Programmable Logic Devices
An erasable PLD(EPLD)
26
FPGA
Two dimensional array of customizable logic block
placed in an interconnect array
Logic blocks
I/O blocks
Programmable routing
Programmable Logic Cells
multiplexer based
flexible
easy to understand
LUT as general logic gate
LUT is a direct implementation of a Example: 4-lut
function truth-table. INPUTS
A Look up Table is a one bit memory 0000 F(0,0,0,0) store in 1st latch
that produces one output that 0001 F(0,0,0,1) store in 2nd latch
essentially implements a truth table 0010 F(0,0,1,0)
where every input logic produces a 0011 F(0,0,1,1)
logical output. 0011
0100
0101
Each latch location holds the value of 0110
the function corresponding to one 0111
input combination. 1000
1001
Example: 2-lut 1010
INPUTS AND OR 1011
00 0 0 1100
01 0 1 1101
10 0 1 1110
11 1 1 1111
Implements any function of 2 inputs.
Page 31
Structure of LUT
Use Different Input LUTs to Implement A
Boolean Function
A Fictitious FPGA Architecture
(With Multiplexer As Functionally Complete Cell)
Basic building block
Commercially Available Devices
Architecture differs from vendor to vendor
Characterized by
Structure and content of logic block
Structure and content of routing resources
To examine, look at some of available devices
FPGA: Xilinx (XC4000)
CPLD: Altera (MAX 5K)
Xilinx FPGAs
Symmetric Array based; Array
consists of CLBs with LUTs and D-
Flipflops
LUT
Xilinx XC3000 CLB
A 32-bit look-up table ( LUT )
CLB propagation delay is fixed (the LUT access time)
and independent of the logic function
7 inputs to the XC3000 CLB:
5 CLB inputs (A–E), and
2 flip-flop outputs (QX and QY)
2 outputs from the LUT (F and G).
Since a 32-bit LUT requires only five variables to form
a unique address (32 = 25), there are multiple ways to
use the LUT
XC 4000 ARCHITECTURE
XC 400 ARCHITECTURE
3 LUTs and 2 Flip-flops in a two stage arrangement
Switch Matrix
Every line is connected to lines on the other three direction
Each connection requires six transistors
ALTERA CPLDS
Altera generic architecture
Hierarchical PLD structure
First level: LABs (Functional
blocks); LAB is similar to SPLDs
Second Level: Interconnections
among LABs
LAB consists of
Product term array
Product term distribution
Macro-cells
Expander product terms
Interconnection region: PIA
EPROM/EEPROM based
Example: MAX5K, MAX7K
FLEX 8000 Specifications
• Contains 26-162 Logic Array Block (LAB)
•8 Logic Elements
•(LEs)
•Local Interconnects
•Control signals
• Carry chain
• Cascade chain
Altera MAX Architecture
Macrocell features:
Wide, programmable
AND array
Narrow, fixed OR array
Logic Expanders
Programmable inversion
Flipflop preset and clear are via product terms; Clock may be either
system clock or internally generated
Feedback is both local and global; Local feedback is within macrocell and
is quicker
Actel ACT FPGAs
2-to-1 Multiplexer A
Y
Y=A•S + B•S B
S
ACT 1 Simple Logic Module
Implementation of a
three-input AND gate
ACT 1 Simple Logic Module
Implementation of S-R
Latch
Q
S Q 0
LATCH
R 1
S
R
0
ACT 2 and ACT 3 Logic Modules
The C-Module for combinational logic
Actel introduced S-Modules (sequential) which basically
add a flip-flop to the MUX based C-Module
ACT 2 S-Module
ACT 3 S-Module
ACT 2 Logic Module: C-Mod
8-input combinational
function
766 possible
combinational functions
ACT 2 Logic Module: C-Mod
Example of a Logic
Function Implemented
with the Combinatorial
Logic Module
ACT 3 Logic Module: S-Mod
Sequential Logic Module
Up to 7-input function
plus D-type flip-flop with
clear
The storage element can
be either a register or a
latch.
It can also be bypassed so
the logic module can be
used as a Combinatorial
Logic Module
ACT 2 and ACT 3 Logic Modules
The equivalent circuit
(without buffering) of
the SE (sequential
element)
ACT 2 and ACT 3 Logic Modules
The SE configured as a
positive-edge-triggered
D flip-flop
FPGA Routing Architecture
Commercial FPGAs can be classified into the four
groups, based on their routing architecture.
An FPGA is similar to several other types of devices which have been around for
quite a while, the difference being that an FPGA is simply much more expandable
and versatile.
The devices which FPGAs get compared to most often are CPLDs (Complex
Programmable Logic Devices), which are similar in function but typically have way
less logic gates inside them;
Customizable CPU design is much more feasible with an FPGA. Once upon a
time, CPLDs also had the distinct advantage of retaining their configuration even
when turned off
SRAM FPGA -- EEPROM FPGA
When FPGAs first came out, they used simple SRAM to hold their
configuration, which of course would be lost when the device lost power.
Back then, the FPGA had to be programmed from scratch every time it
was turned on, usually from a separate serial ROM chip.
But today, FPGAs come in Flash, EPROM, and EEPROM variants, which
will retain configuration, and which can also be re-programmed.
(Fuse and anti-fuse FPGAs also exist, which act like PROMs in that they
are one-time programmable, and cannot be reprogrammed afterward.
SRAM FPGA -- EEPROM FPGA
Despite this, however, most FPGAs still use SRAM for reasons of simplicity (when
you need to reprogram it, it's easier to re-encode a small ROM chip than to
reprogram a large FPGA chip), so count on having to use a separate boot ROM for
the FPGA.
Use of an FPGA is broadly divided into two main stages: The first is "configuration
mode", the mode in which the FPGA is when you first power it up.
Once configuration is complete, the FPGA goes into "user mode", its main mode of
operation, where the programmed circuit actually starts functioning.
Interconnection Framework
Granularity and interconnection structure has
caused a split in the industry
FPGA
– Fine grained
– Variable length
interconnect segments
– Timing in general is not
predictable; Timing
extracted after placement
and route
Interconnection Framework
CPLD
– Coarse grained
(SPLD like blocks)
– Programmable crossbar
interconnect structure
– Interconnect structure uses
continuous metal lines
– The switch matrix may or may
not be fully populated
– Timing predictable if fully
populated
– Architecture does not scale well
Field Programmability
Field programmability is achieved through
switches (Transistors controlled by memory
elements or fuses)
Switches control the following aspects
Interconnection among wire segments
Configuration of logic blocks
Distributed memory elements controlling the
switches and configuration of logic blocks are
together called “Configuration Memory”
Anti-fuse Programming
Technology