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

Session 2,3 FPGAs

  • 1.
  • 2.
  • 3.
    S O F T P O L Y N O M I A L S Why choose anFPGA? 3  The choice depends on design requirements / cost / availability  Excuse the old data please  Subhash Iyer
  • 4.
    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
  • 5.
    S O F T P O L Y N O M I A L S What is anFPGA?  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
  • 6.
    S O F T P O L Y N O M I A L S Why are theyof Interest?  Essential Components in modern Electronics (& Industry!) ◦ Data Acquisition (Millions Channels) ◦ Triggers ◦ Computer Interfaces 6Subhash Iyer
  • 7.
    S O F T P O L Y N O M I A L S When to usean 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
  • 8.
    S O F T P O L Y N O M I A L S What is anFPGA? 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
  • 9.
    S O F T P O L Y N O M I A L S Little bit ofHistory… 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
  • 10.
    S O F T P O L Y N O M I A L S ASICs 10  Large ComplexFunctions  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
  • 11.
    S O F T P O L Y N O M I A L S FPGAs best ofboth 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
  • 12.
    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
  • 13.
    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
  • 14.
    S O F T P O L Y N O M I A L S Structure of anFPGA  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
  • 15.
  • 16.
  • 17.
    S O F T P O L Y N O M I A L S Structure of anFPGA 17 I/O block I/O block I/Oblock I/Oblock logic block interconnection switch Subhash Iyer
  • 18.
    S O F T P O L Y N O M I A L S Structure of anFPGA 18 I/O block I/O block I/Oblock I/Oblock logic block interconnection switch Subhash Iyer
  • 19.
    S O F T P O L Y N O M I A L S Structure of anFPGA  Closer look 19Subhash Iyer
  • 20.
    S O F T P O L Y N O M I A L S Structure of anFPGA: Xilinx 20 BlockRAMs BlockRAMs Configurable Logic Blocks I/O Blocks Block RAMs Subhash Iyer
  • 21.
    S O F T P O L Y N O M I A L S Xilinx CLBs: Look UpTables (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
  • 22.
    S O F T P O L Y N O M I A L S Xilinx CLBs: Look UpTables (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
  • 23.
    S O F T P O L Y N O M I A L S Xilinx CLBs: Look UpTables (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
  • 24.
    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
  • 25.
    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
  • 26.
    S O F T P O L Y N O M I A L S Xilinx: FPGA CLBs Newer implementation 26Subhash Iyer
  • 27.
    S O F T P O L Y N O M I A L S FPGA CLBs:Altera  Usesa 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
  • 28.
  • 29.
    S O F T P O L Y N O M I A L S Structure of anFPGA 29 I/O block I/O block I/Oblock I/Oblock logic block interconnection switch Subhash Iyer
  • 30.
    S O F T P O L Y N O M I A L S FPGA – CLBs Howthey 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
  • 31.
    S O F T P O L Y N O M I A L S FPGA – Beyondthe CLBs Interconnects  3 programmable routing resources:  For flexible interconnection of CLBs, ◦ Vertical and Horizontal Channels ◦ Connection Boxes ◦ Switch Boxes 31Subhash Iyer
  • 32.
    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
  • 33.
  • 34.
    S O F T P O L Y N O M I A L S Channeled Routing Structure 34 Programmed Antifuse Horizontal Track VerticalTrack Modules Unprogrammed Antifuse Modules Horizontal Control Subhash Iyer
  • 35.
    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
  • 36.
    S O F T P O L Y N O M I A L S FPGA Interconnects: SwitchBoxes  Located at intersections of vertical and horizontal channels  Programmable links  Used to connect wire segments in the horizontal and vertical channels 36Subhash Iyer
  • 37.
    S O F T P O L Y N O M I A L S Programmable Switch Matrix 37 programmableswitch element turning the corner, etc. Subhash Iyer
  • 38.
  • 39.
  • 40.
    S O F T P O L Y N O M I A L S Structure of anFPGA 40 I/O block I/O block I/Oblock I/Oblock logic block interconnection switch Subhash Iyer
  • 41.
    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
  • 42.
    S O F T P O L Y N O M I A L S Basic I/O BlockStructure 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
  • 43.
    S O F T P O L Y N O M I A L S FPGA IO Blockexample: Xilinx 43Subhash Iyer
  • 44.
  • 45.
    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
  • 46.
    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
  • 47.
    S O F T P O L Y N O M I A L S Programmable element  AFET 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
  • 48.
  • 49.
    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
  • 50.
    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
  • 51.
  • 52.
    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
  • 53.
  • 54.
    S O F T P O L Y N O M I A L S Design Steps • Understandand 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
  • 55.
    S O F T P O L Y N O M I A L S Design process 55 Design andimplement 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
  • 56.
  • 57.
    S O F T P O L Y N O M I A L S FPGA Generic DesignFlow  Design Entry ◦ Create Design  Schematic / HDL  Design Implementation ◦ Partition ◦ Place ◦ Route  DesignVerification ◦ Simulation ◦ Physical in-circuit testing  Using logic analyser 57Subhash Iyer
  • 58.
    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
  • 59.
    S O F T P O L Y N O M I A L S Circuit Compilation 59 LUT LUT ? Assign alogical LUT to a physical location. Select wire segments And switches for Interconnection. 1. Partitioning / Technology Mapping 2. Placement 3. Routing Subhash Iyer
  • 60.
  • 61.
  • 62.
    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
  • 63.
    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
  • 64.
  • 65.
    S O F T P O L Y N O M I A L S M2M Antifuse in Multi-layerMetal Process 65 M2M = Metal-to-metal SX, SX-A, and SX-S Vialink Subhash Iyer
  • 66.
    S O F T P O L Y N O M I A L S Switch Technology  Memorybehind the switch could be ◦ SRAM ◦ EEPROM ◦ Flash 66 Read orWrite Data Configuration Memory Cell Routing Connections Subhash Iyer
  • 67.
  • 68.
  • 69.
  • 70.
    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
  • 71.
  • 72.
    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
  • 73.
    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
  • 74.
    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
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
    Slide 1Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd Field Programmable Gate Arrays A Comparison of available devices
  • 83.
    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
  • 84.
    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
  • 85.
    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
  • 86.
    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.
  • 87.
    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
  • 88.
    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
  • 89.
    Slide 8Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd
  • 90.
    Slide 9Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd
  • 91.
    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.
  • 92.
    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.
  • 93.
    Slide 12Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd Actel ACT3 Timing Model
  • 94.
    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
  • 95.
    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
  • 96.
    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
  • 97.
    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
  • 98.
    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.
  • 99.
    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.
  • 100.
    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
  • 101.
    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
  • 102.
    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.
  • 103.
    Slide 22Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd Logic Fabric
  • 104.
    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
  • 105.
    Slide 24Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd ALM Flexibility
  • 106.
    Slide 25Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd ALM Flexibility
  • 107.
    Slide 26Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd ALM Flexibility
  • 108.
    Slide 27Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd ALM Block diagram
  • 109.
    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
  • 110.
    Slide 29Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd Logic Array Blocks (LAB) and Interconnects
  • 111.
    Slide 30Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd FPGA Comparison Table
  • 112.
    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
  • 113.
    Slide 32Subhash Iyer,Program Head, Soft Polynomials (I) Pvt. Ltd Critical Condition !!! FPGA Overdose Need a Chai Break and a NEW Topic