SlideShare a Scribd company logo
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGAs
Field Programmable Gate Arrays
1Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGAs
General
2Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Why choose an FPGA?
3
 The choice depends on design
requirements / cost / availability
 Excuse the old data please 
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Understanding the FPGA
 Gate Array
 Programmable
 Field
 Field :“in the field”
 Programmable :“Re-Configurable”
Change Logic Functions
 Gate Array : reference to ASIC internal
architecture
4Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
What is an FPGA?
 Field Programmable Gate Array
 (Very) Large Scale Integrated Circuit
 Digital Logic
 Programmed after manufacture rather than
unchangeable Application Specific Integrated
Circuit ASIC
 First appeared in 1980’s.
 Standard IC manufacturing process
5Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Why are they of Interest?
 Essential Components in modern Electronics (&
Industry!)
◦ Data Acquisition (Millions Channels)
◦ Triggers
◦ Computer Interfaces
6Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
When to use an FPGA?
 Options:
◦ Microcontrollers and processors
 When a function is dedicated
 When decision making is protocol based
 When multiple chips interact between
themselves
 When NOT to use and FPGA???
7Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
What is an FPGA?
8
 Field Programmable Gate Array
◦ Configurable (Programmable) General Logic Blocks
◦ Configurable Interconnects
◦ Plus Special Purpose Blocks (Embedded Processors)
◦ Configured (multiple times) to perform variety of tasks
Simple Logic Block ‘Islands’ in a ‘Sea’ of Interconnects
Programmable
interconnect
Programmable
logic blocks
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Little bit of History…
9
 FPGAs appeared in the 1980’s.
 Bridge gap between simple Programmable
Logic and semi custom ASICs (Application
Specific Integration Circuits).
PLDs ASICs
Standard Cell
Full Custom
Gate Arrays
Structured ASICs*
SPLDs
CPLDs
*Not available circa early 1980s
The
GAP
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
ASICs
10
 Large Complex Functions
 Customised for Extremes of Speed, Low Power,
Radiation Hard
 (Very) Expensive (in small quantities) @ 90 nm ~ $1M
mask set
 (Very) Hard to Design.
 Long Design cycles.
 Not Reprogrammable. High Risk.
 Semi Custom Gate Arrays.
ASICs
Structured
ASICs
Gate
Arrays
Standard
Cell
Full
Custom
Increasing complexity
(a) Single-column arrays (b) Dual-column arrays
I/O cells/pads
Channels
Basic cells
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGAs best of both worlds…
11
 Large Complex
Functions
 Programmability,
Flexibility.
 Massively Parallel
Architecture
 Fast Turnaround
Designs
 Mass produced. Cheap
 Prototype ASICs
 Power Hungry
PLDs ASICs
Standard Cell
Full Custom
Gate Arrays
Structured ASICs*
SPLDs
CPLDs
*Not available circa early 1980s
The
GAP
Programmable
interconnect
Programmable
logic blocks
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Common FPGA Characteristics
12
 Logic Elements
◦ LookupTable /
AND-OR implementation
◦ Flip Flops
◦ Multiplexers
 Memory Resources
◦ SRAM blocks
 Routing Resources
◦ Hierarchy Programmable Channels between Logic Elements
 Configurable I/O
◦ Interfaces to the real world. Logic Levels. Fast Serial I/O
 Massively Parallel Architecture
 Clocked Logic Design
 CMOS based using SRAM cells for configuration
Programmable
interconnect
Programmable
logic blocks
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Common FPGA Characteristics
 Field Programmable Gate Arrays
(FPGA) can handle larger circuits
◦ No AND/OR planes
◦ Provide logic blocks, I/O blocks, and
interconnection wires and switches
◦ Logic blocks provide functionality
◦ Interconnection switches allow logic
blocks to be connected to each other
and to the I/O pins
13Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Structure of an FPGA
 The elements of an FPGA structure are:
◦ Logical Building Block: ROM type, PLA/PAL type,
LUT type
◦ Interconnect Mechanism:Transistors, fuses,
matrix, bus
◦ I/O block: Latched, buffered, additional logic
◦ Other features: RAM
 Depends on the manufacturer
 Each method has its pros and cons
 Can you propose a structure???
14Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGAs
Half-way Through !!!
15Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA
Structure and construction
16Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Structure of an FPGA
17
I/O block
I/O block
I/Oblock
I/Oblock
logic block
interconnection
switch
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Structure of an FPGA
18
I/O block
I/O block
I/Oblock
I/Oblock
logic block
interconnection
switch
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Structure of an FPGA
 Closer look
19Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Structure of an FPGA: Xilinx
20
BlockRAMs
BlockRAMs
Configurable
Logic
Blocks
I/O
Blocks
Block
RAMs
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Xilinx CLBs:
Look Up Tables (LUTs)
 Logic blocks are
implemented using a
lookup table (LUT)
◦ Small number of inputs, one
output
◦ Contains storage cells that
can be loaded with the
desired values
◦ A 2 input LUT uses 3
MUXes
to implement any desired
function
of 2 variables
21
f
0/1
0/1
0/1
0/1
x1
x2
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Xilinx CLBs:
Look Up Tables (LUTs)
 Example 2 Input LUT
22
x1 x2 f
0 0 1
0 1 0
1 0 0
1 1 1 f
1
0
0
1
x1
x2
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Xilinx CLBs:
Look Up Tables (LUTs)
 3 Input LUT
◦ 7 2x1 MUXes and
8 storage cells are
required
◦ Commercial LUTs have
4-5 inputs, and 16-32
storage cells
23
f
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
x2
x3
x1
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Xilinx: FPGA CLBs
 Making a LUT on an FGPA
 Adding a sequential element
24Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Xilinx: FPGA CLBs
25
 Making a LUT on an FGPA
 Adding a sequential element
 Making it programmable
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Xilinx: FPGA CLBs
 Newer implementation
26Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA CLBs:Altera
 Uses a Macrocell
27
Clk
MUX
Output
MUXQ
F/B
MUX
Inv ert
Control
AND
ARRAY
CLK
pad
8 Product
Term
AND-OR
Array
+
Programmable
MUX's
Programmable polarity
I/O Pin
Seq. Logic
Block
Programmable feedback
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA CLBs:Altera
28
 Newer implementation
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Structure of an FPGA
29
I/O block
I/O block
I/Oblock
I/Oblock
logic block
interconnection
switch
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA – CLBs
How they are used!!!
 CLBs can be configured to
implement Boolean functions
 Typically CLBs have between
4-6 inputs
 Functions of larger number of
variables use more than one
CLB.
 CLB typically contains 1 or 2
FFs for sequential logic.
 Large designs are partitioned
and mapped to a number of
CLBs with each CLB
configured (programmed) to
perform a particular function.
 CLBs are then interconnected
to implement target design. 30Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA – Beyond the CLBs
Interconnects
 3 programmable
routing resources:
 For flexible
interconnection
of CLBs,
◦ Vertical and
Horizontal
Channels
◦ Connection Boxes
◦ Switch Boxes
31Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA Interconnects: Channels
 Vertical and
horizontal routing
channels
 Different length
wires that can be
connected together
if needed.
 Run vertically and
horizontally between
columns and rows of
CLBs
32Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Channel Architecture
33Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Channeled Routing Structure
34
Programmed
Antifuse
Horizontal
Track
Vertical Track
Modules
Unprogrammed
Antifuse
Modules
Horizontal Control
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA Interconnects: Connection
Boxes
 Programmable
links
 Connect input
and output of
the CLBs to
wires of the
vertical or the
horizontal
routing channels.
35Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA Interconnects: Switch Boxes
 Located at
intersections of
vertical and
horizontal
channels
 Programmable
links
 Used to connect
wire segments in
the horizontal
and vertical
channels
36Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Programmable Switch Matrix
37
programmable switch element
turning the corner, etc.
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA Interconnects: Switch Boxes -
Xilinx
38Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Interconnect Structure
39Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Structure of an FPGA
40
I/O block
I/O block
I/Oblock
I/Oblock
logic block
interconnection
switch
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA IO Blocks
 Mainly buffers
 Can be configured
either as input
buffers, output
buffers or
input/output buffers.
 Allow pins of the
FPGA chip to
function either as
input pins, output
pins or input/output
pins
41Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Basic I/O Block Structure
42
D
EC
Q
SR
D
EC
Q
SR
D
EC
Q
SR
Three-State
Control
Output Path
Input Path
Three-State
Output
Clock
Set/Reset
Direct Input
Registered
Input
FF Enable
FF Enable
FF Enable
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA IO Block example: Xilinx
43Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA
Programming
44Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
What to Program???
 CLBs: Need to fix the inputs to the LUT /
AND-OR array and the sequential logic
 Interconnects: Need to fix the inputs of
the switches which connect the various
elements
 IO Blocks: Need to fix the configuration
of the pins as input / output / input-
output or tristate / bistate
45Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
How to Program
 A memory element behind every
programmable element
 This memory element is set to a
particular value 1/ 0 while programming
 The entire memory is made as a serial
shift register
 During configuration, a bit stream is sent
to this complete shift register which
becomes the program
46Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Programmable element
 A FET which acts as a
switch
 A memory element
(depicted here as an
SRAM cell) for each
switch
 Input at the switch
determines the
connection of the lines
 1 of the switch means
connection is made
else not made.
47Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Programming the CLB
48
Connection
Switch
Transmission
Gate
LUT
CLB
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Programming (Configuring) an
FPGA
 SRAM cells holding
configuration are
Volatile Memory
 Lose configuration
when board power is
turned off.
 Keep Bit Pattern
describes the Logic
Functions in non-
Volatile Memory e.g.
ROM or Compact
Flash card
 Reprogramming takes
~ secs
49
Configuration data in
Configuration data out
= I/O pin/pad
= SRAM cell
SRAM
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Methods
 Serial communication
 JTAG : JointTest Action Group – most
commonly adopted standard
 Serial port
 USB
 ISP feature: In-circuit programmable
50Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA
Implementation Example
51Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Example FPGA: 1
 Use an FPGA with 2 input LUTS to
implement the function f = x1x2 + x2'x3
◦ f1 = x1x2
◦ f2 = x2'x3
◦ f = f1 + f2
52
0
1
0
0
0
1
1
1
0
0
0
1
x1
x2
x2
x3
f 1
f 2
f 1 f 2
f
x1
x2
x3 f
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA
Design Flow
53Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Design Steps
• Understand and define design
requirements
• Design description
• Behavioural simulation
(Source code interpretation)
• Synthesis
• Functional or Gate level
simulation
• Implementation
• Fitting
• Place and Route
• Timing or Post layout
simulation
• Programming,Test and Debug
54Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Design process
55
Design and implement a simple unit permitting to
speed up encryption with RC5-similar cipher with
fixed key set on 8031 microcontroller. Unlike in
the experiment 5, this time your unit has to be able
to perform an encryption algorithm by itself,
executing 32 rounds…..
Library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity RC5_core is
port(
clock, reset, encr_decr: in std_logic;
data_input: in std_logic_vector(31 downto 0);
data_output: out std_logic_vector(31 downto 0);
out_full: in std_logic;
key_input: in std_logic_vector(31 downto 0);
key_read: out std_logic;
);
end AES_core;
Specification (Lab Experiments)
VHDL description (Your Source Files)
Functional simulation
Post-synthesis simulation
Synthesis
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Design process
56
Implementation
Configuration
Timing simulation
On chip testing
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA Generic Design Flow
 Design Entry
◦ Create Design
 Schematic / HDL
 Design Implementation
◦ Partition
◦ Place
◦ Route
 DesignVerification
◦ Simulation
◦ Physical in-circuit testing
 Using logic analyser
57Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Design Implementation
 Partitioning
◦ Breaking up the design to fit into the nature of CLBs
◦ In other work making the design into LUTs and FFs
 Placement
◦ Choosing the right CLBs to locate the design on
◦ Based on proximity to IOBs, delay constraints, area
constraints, etc
◦ Achieve wiring minimization
 Routing
◦ Choice of interconnect
◦ Based on timing constraints
58Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Circuit Compilation
59
LUT
LUT
?
Assign a logical
LUT to a physical
location.
Select wire segments
And switches for
Interconnection.
1. Partitioning / Technology Mapping
2. Placement
3. Routing
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Example
60
Programmable Connections
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA
Technology Aspects
61Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Programmable Elements Overview
 Antifuse
◦ ONO and Metal-to-Metal (M2M)
◦ Construction
◦ Resistance
 SRAM
◦ Structure
◦ Quantity
 EEPROM/Flash
 Ferroelectric Memory
 Summary of Properties
62Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Antifuse Technology
63
ONO Antifuse (Actel)
Poly/ONO/N++
Heavy As doped Poly/N++
Thickness controlled by
CVD nitride
Programs ~ 18V
Typical Toxono ~ 85 Å
Hardened Toxono ~ 95 Å
R = 200 - 500 ohms
thermal oxide
CVD nitride
thermal oxide
FOX
N++
Polysilicon
ONO
Metal-to-Metal Antifuse
(Actel, UTMC, Quicklogic)
‘Pancake’ Stack Between Metal Layers
Used in 3.3V Operation in Sea Of Gates FPGA
Other devices (as shown later)
Program at ~ 10V
Typical thickness ~ 500 - 1000 Å
R = 20 - 100 ohms
Metal - 3 Top Electrode
Amorphous Silicon
Dielectric (optional)
Metal - 2 Bottom Electrode
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Antifuse Cross-Sections
64
Amorphous Silicon
(Vialink)
ONO
(Act 1)
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
M2M Antifuse in
Multi-layer Metal Process
65
M2M = Metal-to-metal
SX, SX-A, and SX-S Vialink
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Switch Technology
 Memory behind the switch could be
◦ SRAM
◦ EEPROM
◦ Flash
66
Read orWrite
Data
Configuration Memory Cell
Routing Connections
Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Other technologies
 EEPROM
67Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
FPGA
Questions???
68Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
WELCOME TO THE FPGA
WORLD
69Subhash Iyer
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
Example FPGA: 1
 Use an FPGA with 2 input LUTS to
implement the function
◦ f1 = x1x2
◦ f2 = x2'x3
◦ f = f1 + f2
1
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
2
f1 = x1x2, f2 = x2'x3, f = f1 + f2
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
3
f1 = x1x2, f2 = x2'x3, f = f1 + f2
x1
x2
x3 f
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
4
f1 = x1x2, f2 = x2'x3, f = f1 + f2
x1
x2
x3 f
x1
x2
f
x2
3
f1
f2
f
f
1 2
x
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
5
f1 = x1x2, f2 = x2'x3, f = f1 + f2
x1
x2
x3 f
0
0
0
1
x1
x2
f
0
1
0
0
0
1
1
1
x2
x3
f1
f2
f
f
1 2
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
6
0
1
0
0
0
1
1
1
0
0
0
1
x1
x2
x2
x3
f1
f2
f1 f2
f
x1
x2
x3 f
f1 = x1x2, f2 = x2'x3, f = f1 + f2
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
7
0
1
0
0
0
1
1
1
0
0
0
1
x1
x2
x2
x3
f1
f2
f1 f2
f
x1
x2
x3 f
f1 = x1x2, f2 = x2'x3, f = f1 + f2
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
8
0
1
0
0
0
1
1
1
0
0
0
1
x1
x2
x2
x3
f1
f2
f1 f2
f
x1
x2
x3 f
f1 = x1x2, f2 = x2'x3, f = f1 + f2
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
9
0
1
0
0
0
1
1
1
0
0
0
1
x1
x2
x2
x3
f1
f2
f1 f2
f
x1
x2
x3 f
f1 = x1x2, f2 = x2'x3, f = f1 + f2
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
10
0
1
0
0
0
1
1
1
0
0
0
1
x1
x2
x2
x3
f1
f2
f1 f2
f
x1
x2
x3 f
f1 = x1x2, f2 = x2'x3, f = f1 + f2
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
11
0
1
0
0
0
1
1
1
0
0
0
1
x1
x2
x2
x3
f1
f2
f1 f2
f
x1
x2
x3 f
f1 = x1x2, f2 = x2'x3, f = f1 + f2
S
O
F
T
P
O
L
Y
N
O
M
I
A
L
S
12
0
1
0
0
0
1
1
1
0
0
0
1
x1
x2
x2
x3
f1
f2
f1 f2
f
x1
x2
x3 f
f1 = x1x2, f2 = x2'x3, f = f1 + f2
Slide 1Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Field Programmable Gate Arrays
A Comparison of available devices
Slide 2Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
FPGAs
 Consists of uncommitted logic arrays and user
programmable interconnection.
 The interconnect programming is done through
programmable switches
 The Logic circuits are implemented by partitioning
the logic into blocks and then interconnecting the
blocks with the programmable switches
 The architecture of an FPGA varies from device to
device , vendor to vendor it can be based on CPLDs,
EPROMS, EEPROMS, LUT, Buses, PALS
 The interconnect is also varied from EPROM, static
RAM, antifuse, EEprom
Slide 3Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
FPGA Classification
Implementation
Architecture
Logic
Implementation
Interconnect
Technology
Symmetrical
Array
Row based Array
Hierarchial PLD
Sea of Gates
Look Up table
Multiplexer
based
PLD Block
NAND Gates
Static Ram
Antifuse
E/EPROM
FPGA types
Slide 4Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Classes of Common Commercial FPGAs
Row-based
Interconnect
Logic Block
PLD Block
Interconnect
overlayed
on Logic
Blocks
Logic
Block
Interconnect
Sea-of-Gates
Hierarchical PLD
Interconnect
Symmetrical Array
Various Block Architecture & Routing Architecture
Slide 5Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
ACTEL (Now MicroSemi) FPGA
 ACT1 module has three 2:1 Muxs with AND-OR logic
at the select of final MUX and implements all 2 input
functions, most 3 input and many 4 input functions.
 Apart from variety of combinational logic functions,
the ACT1 module can implement sequential logic cells
in a flexible and efficient manner. For example an
ACT1 module can be used for a transparent Latch or
two modules for a flip flop.
Slide 6Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
General Architecture of Actel FPGAs
I/O Blocks
I/O Blocks
Logic
Module Rows
I/O BlocksI/O Blocks
Channel
Routing
SA
A0 A1
B0 B1 SB
S1
Y
S0
ACT-1 Logic Module
Slide 7Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
ACT 1 Programmable Interconnect
Architecture
 The basic Architecture of Actel FPGA consists of rows of programmable
block with horizontal routing channels between the rows.
 Each routing switch in these FPGAs is implemented by the PLICE Anti fuse.
LMLMLMLMLM
LMLMLMLMLM
Input Segment
Wiring Segment
Anti fuse
Clock Track Vertical
Track
Connections are all and or
but shown only in this section
for clarity
Slide 8Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Slide 9Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Slide 10Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
ACT 1 and ACT 3 Logic Modules
 ACT1 module is simple logical block. It does not
have built in function to generate a Flip Flop.
Although it can generate a FF if required.
 ACT2 and ACT3 that has separate FF module is used
for Sequential Circuits.
Slide 11Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Timing Models and Critical Paths
 Exact timing (delays) on any FPGA chip cannot be
estimated until place and routing step has been
performed. This is due to the delay of the interconnect.
A critical path of SE in is shown on the next slide.
Slide 12Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Actel ACT3 Timing Model
Slide 13Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Anti-Fuse (ACTEL)
 An anti fuse is normally an open circuit until a programming
current is forced though it (about 5mA).
 The two prominent methods are Poly to Diffusion (Actel) and
Metal to Metal (Via Link). In a Poly-diffusion anti fuse the high
current density causes a large power dissipation in a small area.
Anti fuse
Polysilicon
n+ Diffusion
Dielectric
2 λ
Anti fuse
Polysilicon
Anti fuse
Polysilicon
Anti fuse
n+ anti fuse
diffusion
Contact
The actual anti fuse link is
less than 10nm x 10nm
Slide 14Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Anti-Fuse (ACTEL)
 This will melt a thin insulating dielectric between polysilicon and diffusion and form
a thin
 (about 20nm in diameter) permanent, and resistive silicon link. The programming
process also
 drives dopand atoms from the poly and diffusion electrodes. The fabrication process
and
 Programming current controls the average resistance of blown anti fuses.
 Actel Device # of Anti fuses
 A1010 112,000
 A1225 250,000
 A1280 750,000
 To design and program an Actel FPGA, designers iterate between design entry and
simulation when design is verified both by functional and timing tests. Chip is
plugged into a socket on a special programming box that generates the programming
voltage.
250 500 750 1000
Anti fuse Resistance in Ω
%
Blown
Anti fuses
Slide 15Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Anti-Fuse (ACTEL)
 Metal-Metal Anti fuse (Via Link)
 Same principle as previous slide but different process with 2 main advantages
1) Direct metal to metal eliminating connection between poly and metal or diffusion to
metal thus reducing parasitic capacitance and interconnect space requirement.
2) Lower resistance.
Anti fuse
Routing wiresRouting wires
M3
M2
Thin amorphous Si
M3
4λ
M2
4λ
2λ
50 80 100
Anti fuse Resistance Ω
%
Blown
Anti fuses
Slide 16Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
EPROM and EEPROM
Altera MAX 5K and Xilinx ELPDs both use UV-erasable “electrically
programmable read-only memory” (EPROM) cells as their programming
technology. The EPROM cell is almost as small as an anti fuse.
Ground
S D
G2
G1
S D
G2
G1
+Vgs>Vtn
+Vpp
+Vgs>Vtn
Vds
No channel
G2
G1
UV light
Slide 17Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
EPROM and EEPROM
 Altera MAX 5K and Xilinx ELPDs both use UV-erasable “electrically
programmable read-only memory” (EPROM) cells as their programming
technology. The EPROM cell is almost as small as an anti fuse.
 An EPROM looks like a normal transistor except it has a second floating
gate.
(a) Applying a programming voltage Vpp (>12) to the drain of the n-channel,
programs the cell. A high electric field causes electrons flowing towards the
drain to move so fast they “jump” across the insulating gate oxide where
they are trapped on the bottom of the floating gate.
(b) Electrons trapped on the floating gate raise the threshold voltage. Once
programmed an n-channel EPROM remains off even with Vdd applied to the
gate. An unprogrammed n-channel device will turn on as normal with a top-
gate voltage Vdd.
(c) Exposure to an ultra-violet (UV) light will erase the EPROM cell. An
absorbed light quantum gives an electron enough energy to jump for the
floating gate.
Slide 18Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
EPROM and EEPROM
 EPLD package can be bought in a windowed package
for development, erase it and use it again.
 Programming EEPROM transistors is similar to
programming an UV-erasable EPROM transistor, but
the erase mechanism is different.
 In an EEPROM transistor and electric field is also
used to remove electrons from the floating gate of a
programmed transistor.
 This is faster than the UV-procedure and the chip
doesn’t have to removed from the system.
Slide 19Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
EEPROM
Creating a wired-AND with EPROM cells [3]
Structure of a FAMOS transistor [3]
F= A + B + C + D + …….
= A . B . C . D . ……..
First Level
Polysilicon
Second Level
Polysilicon
Field Oxide
Gate Oxide
Slide 20Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
General Structure of Altera FPGAs
 8-input fracturable look-up table (LUT) with
the Stratix® II family in 2004
 At its core is the adaptive logic module (ALM)
with 8 inputs
 Can implement a full 6-input LUT (6-LUT) or
select 7-input functions
 ALM can also be efficiently partitioned into
independent smaller LUTs
 Performance advantage of larger LUTs and
the area efficiency of smaller LUTs
Slide 21Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Logic Fabric
 High-performance, area-efficient
architecture is the ALM
 Combinational portion has eight inputs
 Includes a LUT that can be divided between
two adaptive LUTs (ALUTs)
 Entire ALM is needed to implement an
arbitrary six-input function
 But because it has eight inputs to the
combinational logic block, one ALM can
implement various combinations of two
functions.
Slide 22Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Logic Fabric
Slide 23Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Adaptive Logic Module
 In addition to implementing
a full 6-input LUT, the ALM
can, for example,
implement 2 independent
4-input functions or a 5-
input and a 3-input function
with independent inputs.
 Because 2 registers and 2
adders are available, the
ALM has the flexibility to
implement 2.5 logic
elements (LEs) of a classic
4-input LUT (4-LUT)
architecture, consisting of
a 4-LUT, carry logic, and a
register
Slide 24Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
ALM Flexibility
Slide 25Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
ALM Flexibility
Slide 26Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
ALM Flexibility
Slide 27Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
ALM Block diagram
Slide 28Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Comparing Stratix-II and Virtex-5
 8 input block
 supports all 6-
input functions
 other
combinations of
smaller functions
 6 input block
 Smaller additional
logic
Slide 29Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Logic Array Blocks (LAB) and
Interconnects
Slide 30Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
FPGA Comparison Table
Slide 31Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
FPGA Comparison Table
Company General
Architecture
Logic Block
Type
Programming
Technology
Xilinx Symmetrical Array Look-up Table Static RAM
Actel Row-based Multiplexer-Based Anti-fuse
Altera Hierarchical-PLD PLD Block EPROM
Plessey Sea-of-Gates NAND-gate Static RAM
PLUS Hierarchical-PLD PLD Block EPROM
AMD Hierarchical-PLD PLD Block EEPROM
QuickLogic Symmetrical Array Multiplexer-Based Anti-fuse
Algotronix Sea-of-gates Multiplexers & Basic Gate Static RAM
Concurrent Sea-of-gates Multiplexers & Basic Gate Static RAM
Crosspoint Row-based Transistors Pairs &
Multiplexers
Anti-fuse
Slide 32Subhash Iyer, Program Head, Soft Polynomials (I) Pvt. Ltd
Critical Condition !!!
FPGA Overdose
Need a Chai Break
and a NEW Topic

More Related Content

What's hot

FPGA
FPGAFPGA
Field Programmable Gate Array: Building Blocks and Interconnections
Field Programmable Gate Array: Building Blocks and InterconnectionsField Programmable Gate Array: Building Blocks and Interconnections
Field Programmable Gate Array: Building Blocks and Interconnections
Dr. Saravanakumar Umathurai
 
ASIC vs SOC vs FPGA
ASIC  vs SOC  vs FPGAASIC  vs SOC  vs FPGA
ASIC vs SOC vs FPGA
Verification Excellence
 
Field-programmable gate array
Field-programmable gate arrayField-programmable gate array
Field-programmable gate array
PrinceArjun1999
 
Unit VI CPLD-FPGA Architecture
Unit VI CPLD-FPGA ArchitectureUnit VI CPLD-FPGA Architecture
Xilinx 4000 series
Xilinx 4000 seriesXilinx 4000 series
Xilinx 4000 series
dragonpradeep
 
Introduction to FPGAs
Introduction to FPGAsIntroduction to FPGAs
Introduction to FPGAs
Sudhanshu Janwadkar
 
Seminar on field programmable gate array
Seminar on field programmable gate arraySeminar on field programmable gate array
Seminar on field programmable gate array
Saransh Choudhary
 
Intellectual property in vlsi
Intellectual property in vlsiIntellectual property in vlsi
Intellectual property in vlsi
Saransh Choudhary
 
Vlsi design flow
Vlsi design flowVlsi design flow
Vlsi design flow
Rajendra Kumar
 
FPGAs : An Overview
FPGAs : An OverviewFPGAs : An Overview
FPGAs : An Overview
Sanjiv Malik
 
CPLD xc9500
CPLD xc9500CPLD xc9500
CPLD xc9500
A B Shinde
 
Complex Programmable Logic Devices(CPLD) & Field Programmable Logic Devices (...
Complex Programmable Logic Devices(CPLD) & Field Programmable Logic Devices (...Complex Programmable Logic Devices(CPLD) & Field Programmable Logic Devices (...
Complex Programmable Logic Devices(CPLD) & Field Programmable Logic Devices (...
Revathi Subramaniam
 
INTEL 8086 MICROPROCESSOR
INTEL 8086 MICROPROCESSORINTEL 8086 MICROPROCESSOR
INTEL 8086 MICROPROCESSOR
Sagar Kuntumal
 
System partitioning in VLSI and its considerations
System partitioning in VLSI and its considerationsSystem partitioning in VLSI and its considerations
System partitioning in VLSI and its considerationsSubash John
 
UNIT-III CASE STUDIES -FPGA & CPGA ARCHITECTURES APPLICATIONS
UNIT-III CASE STUDIES -FPGA & CPGA ARCHITECTURES APPLICATIONSUNIT-III CASE STUDIES -FPGA & CPGA ARCHITECTURES APPLICATIONS
UNIT-III CASE STUDIES -FPGA & CPGA ARCHITECTURES APPLICATIONS
Dr.YNM
 
Introduction to FPGA, VHDL
Introduction to FPGA, VHDL  Introduction to FPGA, VHDL
Introduction to FPGA, VHDL
Amr Rashed
 

What's hot (20)

FPGA
FPGAFPGA
FPGA
 
Field Programmable Gate Array: Building Blocks and Interconnections
Field Programmable Gate Array: Building Blocks and InterconnectionsField Programmable Gate Array: Building Blocks and Interconnections
Field Programmable Gate Array: Building Blocks and Interconnections
 
Altera flex
Altera flexAltera flex
Altera flex
 
ASIC vs SOC vs FPGA
ASIC  vs SOC  vs FPGAASIC  vs SOC  vs FPGA
ASIC vs SOC vs FPGA
 
Field-programmable gate array
Field-programmable gate arrayField-programmable gate array
Field-programmable gate array
 
Unit VI CPLD-FPGA Architecture
Unit VI CPLD-FPGA ArchitectureUnit VI CPLD-FPGA Architecture
Unit VI CPLD-FPGA Architecture
 
cplds
cpldscplds
cplds
 
Xilinx 4000 series
Xilinx 4000 seriesXilinx 4000 series
Xilinx 4000 series
 
Introduction to FPGAs
Introduction to FPGAsIntroduction to FPGAs
Introduction to FPGAs
 
Seminar on field programmable gate array
Seminar on field programmable gate arraySeminar on field programmable gate array
Seminar on field programmable gate array
 
Intellectual property in vlsi
Intellectual property in vlsiIntellectual property in vlsi
Intellectual property in vlsi
 
FPGA
FPGAFPGA
FPGA
 
Vlsi design flow
Vlsi design flowVlsi design flow
Vlsi design flow
 
FPGAs : An Overview
FPGAs : An OverviewFPGAs : An Overview
FPGAs : An Overview
 
CPLD xc9500
CPLD xc9500CPLD xc9500
CPLD xc9500
 
Complex Programmable Logic Devices(CPLD) & Field Programmable Logic Devices (...
Complex Programmable Logic Devices(CPLD) & Field Programmable Logic Devices (...Complex Programmable Logic Devices(CPLD) & Field Programmable Logic Devices (...
Complex Programmable Logic Devices(CPLD) & Field Programmable Logic Devices (...
 
INTEL 8086 MICROPROCESSOR
INTEL 8086 MICROPROCESSORINTEL 8086 MICROPROCESSOR
INTEL 8086 MICROPROCESSOR
 
System partitioning in VLSI and its considerations
System partitioning in VLSI and its considerationsSystem partitioning in VLSI and its considerations
System partitioning in VLSI and its considerations
 
UNIT-III CASE STUDIES -FPGA & CPGA ARCHITECTURES APPLICATIONS
UNIT-III CASE STUDIES -FPGA & CPGA ARCHITECTURES APPLICATIONSUNIT-III CASE STUDIES -FPGA & CPGA ARCHITECTURES APPLICATIONS
UNIT-III CASE STUDIES -FPGA & CPGA ARCHITECTURES APPLICATIONS
 
Introduction to FPGA, VHDL
Introduction to FPGA, VHDL  Introduction to FPGA, VHDL
Introduction to FPGA, VHDL
 

Similar to Session 2,3 FPGAs

Pld dp
Pld dpPld dp
Pld dp
chandkec
 
Implementation strategies for digital ics
Implementation strategies for digital icsImplementation strategies for digital ics
Implementation strategies for digital ics
aroosa khan
 
Basic FPGA Architecture, Virtex CLB IO blocks
Basic FPGA Architecture, Virtex CLB IO blocksBasic FPGA Architecture, Virtex CLB IO blocks
Basic FPGA Architecture, Virtex CLB IO blocks
VenkataramanLakshmin1
 
VLSI PLDS pla, pal
VLSI PLDS pla, palVLSI PLDS pla, pal
1. FPGA architectures.pdf
1. FPGA architectures.pdf1. FPGA architectures.pdf
1. FPGA architectures.pdf
TesfuFiseha1
 
Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)
A B Shinde
 
Fpga & VHDL
Fpga & VHDLFpga & VHDL
Fpga & VHDL
Francesco De Canio
 
Introduction A digital circuit design
Introduction A digital circuit design Introduction A digital circuit design
Introduction A digital circuit design
wafawafa52
 
Field programmable Gate Arrays Chapter 6.pdf
Field programmable Gate Arrays Chapter 6.pdfField programmable Gate Arrays Chapter 6.pdf
Field programmable Gate Arrays Chapter 6.pdf
ffwwx10
 
VLSI design Dr B.jagadeesh UNIT-5.pptx
VLSI design Dr B.jagadeesh   UNIT-5.pptxVLSI design Dr B.jagadeesh   UNIT-5.pptx
VLSI design Dr B.jagadeesh UNIT-5.pptx
jagadeesh276791
 
1.FPGA for dummies: Basic FPGA architecture
1.FPGA for dummies: Basic FPGA architecture 1.FPGA for dummies: Basic FPGA architecture
1.FPGA for dummies: Basic FPGA architecture
Maurizio Donna
 
Cpld and fpga mod vi
Cpld and fpga   mod viCpld and fpga   mod vi
Cpld and fpga mod vi
Agi George
 
module 1-2 - Design Methods, parameters and examples.pptx
module 1-2 - Design Methods, parameters and examples.pptxmodule 1-2 - Design Methods, parameters and examples.pptx
module 1-2 - Design Methods, parameters and examples.pptx
Maaz609108
 
Fpga &;cpld(by alok singh)
Fpga &;cpld(by alok singh)Fpga &;cpld(by alok singh)
Fpga &;cpld(by alok singh)
Alok Singh
 
Softcore processor.pptxSoftcore processor.pptxSoftcore processor.pptx
Softcore processor.pptxSoftcore processor.pptxSoftcore processor.pptxSoftcore processor.pptxSoftcore processor.pptxSoftcore processor.pptx
Softcore processor.pptxSoftcore processor.pptxSoftcore processor.pptx
SnehaLatha68
 
Vlsi design-styles
Vlsi design-stylesVlsi design-styles
Vlsi design-styles
Praveen kumar Deverkonda
 

Similar to Session 2,3 FPGAs (20)

Pld dp
Pld dpPld dp
Pld dp
 
Implementation strategies for digital ics
Implementation strategies for digital icsImplementation strategies for digital ics
Implementation strategies for digital ics
 
Basic FPGA Architecture, Virtex CLB IO blocks
Basic FPGA Architecture, Virtex CLB IO blocksBasic FPGA Architecture, Virtex CLB IO blocks
Basic FPGA Architecture, Virtex CLB IO blocks
 
VLSI PLDS pla, pal
VLSI PLDS pla, palVLSI PLDS pla, pal
VLSI PLDS pla, pal
 
1. FPGA architectures.pdf
1. FPGA architectures.pdf1. FPGA architectures.pdf
1. FPGA architectures.pdf
 
Asic
AsicAsic
Asic
 
4_BIT_ALU
4_BIT_ALU4_BIT_ALU
4_BIT_ALU
 
Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)Spartan-II FPGA (xc2s30)
Spartan-II FPGA (xc2s30)
 
Fpga & VHDL
Fpga & VHDLFpga & VHDL
Fpga & VHDL
 
Introduction A digital circuit design
Introduction A digital circuit design Introduction A digital circuit design
Introduction A digital circuit design
 
Field programmable Gate Arrays Chapter 6.pdf
Field programmable Gate Arrays Chapter 6.pdfField programmable Gate Arrays Chapter 6.pdf
Field programmable Gate Arrays Chapter 6.pdf
 
VLSI design Dr B.jagadeesh UNIT-5.pptx
VLSI design Dr B.jagadeesh   UNIT-5.pptxVLSI design Dr B.jagadeesh   UNIT-5.pptx
VLSI design Dr B.jagadeesh UNIT-5.pptx
 
1.FPGA for dummies: Basic FPGA architecture
1.FPGA for dummies: Basic FPGA architecture 1.FPGA for dummies: Basic FPGA architecture
1.FPGA for dummies: Basic FPGA architecture
 
Actel fpga
Actel fpgaActel fpga
Actel fpga
 
Cpld and fpga mod vi
Cpld and fpga   mod viCpld and fpga   mod vi
Cpld and fpga mod vi
 
Fpga 03-cpld-and-fpga
Fpga 03-cpld-and-fpgaFpga 03-cpld-and-fpga
Fpga 03-cpld-and-fpga
 
module 1-2 - Design Methods, parameters and examples.pptx
module 1-2 - Design Methods, parameters and examples.pptxmodule 1-2 - Design Methods, parameters and examples.pptx
module 1-2 - Design Methods, parameters and examples.pptx
 
Fpga &;cpld(by alok singh)
Fpga &;cpld(by alok singh)Fpga &;cpld(by alok singh)
Fpga &;cpld(by alok singh)
 
Softcore processor.pptxSoftcore processor.pptxSoftcore processor.pptx
Softcore processor.pptxSoftcore processor.pptxSoftcore processor.pptxSoftcore processor.pptxSoftcore processor.pptxSoftcore processor.pptx
Softcore processor.pptxSoftcore processor.pptxSoftcore processor.pptx
 
Vlsi design-styles
Vlsi design-stylesVlsi design-styles
Vlsi design-styles
 

Session 2,3 FPGAs