How Does FPGA Work: Outline
How Does FPGA Work: Outline
How Does FPGA Work: Outline
Outline
FPGA Basics
Virtex 5
Power Consumption in FPGAs
Low Power Approaches
2008-2-19
STANDARD
IC
ASIC
FPGA Basics
FULL
CUSTOM
STANDARD
CELL
Programmable
Logic
SEMICUSTOM
GATE ARRAY,
SEA OF GATES
FPGA
CPLD
Two programmable
planes
Any combination of
ANDs / Ors
One programmable
plane - AND / fixed
OR
Finite combination
of ANDs / Ors
Programmable switches
between horizontal and
vertical lines
Fewer switch
count
Programmable
OR array
Programmable
AND array
Q0
Q1
Q2
Q3
Fixed OR
Q0
Q1
Q2
Q3
Programmable
AND array
PAL / PLA
Registers
I/O
Interconnect
includes
Full crossbar
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Logic
Block
Programmable
interconnect
Logic Block
contains
Logic
Block
Logic
Block
Why FPGAs?
I/O
Logic
Block
Partial interconnect
Programmable Elements
Overview
Summary
performance
NREs
Unit
cost
TTM
ASIC
FPGA
MICRO
ASIC
FPGA
MICRO
FPGA
MICRO
ASIC
ASIC
FPGA
MICRO
Antifuse
Read or Write
Data
Routing Connections
No
Yes
No
Register
Or any kind of logic
Adder, Multiplier, Memory,
Microprocessor
Programmable interconnect
Wires to connect inputs and
Medium
Low
Embedded microprocessors/microcontrollers
High-speed serial transceivers
a&b
F=
0
0
0
0
X
Y
Y
1
1
1
0
X
Y
Y
0
0
1
0
0
1
0
1
1
X
Y
X
X
X
Y
1
0
X
Y
XY
XY
XY
X+ Y
X
Y
1
Programmable Interconnect
Fast local interconnect
Horizontal and vertical lines of various lengths
Switch matrixes
Switch Matrix
Interconnect
FPGA Variations
Families of FPGAs differ in
Physical means of implementing user
programmability
Arrangement of interconnection wires
Basic functionality of the logic blocks
Sea-Of-Module Architecture
Channel Architecture
Actel FPGA
8 input, single output combinational logic blocks
Rows of programmable logic building blocks
I/O Buffers, Programming and Test Logic
Anti-fuse Technology
rows of interconnect
Wiring Tracks
S0
S1
D0
"0"
2:1 MUX
2:1 MUX
"0"
D1
2:1 MUX
2:1 MUX
"1"
D2
2:1 MUX
2:1 MUX
SOB
D3
Actel Interconnect
Logic Module
Horizontal
Track
Vertical
Track
Anti-fuse
XC4000E CLB
2 Four input function
Generators(LUTS)
1 Three-input function
2 Registers
Possible functions:
Any fct of 5 var
Two fcts of 4 var+one
Fct of 3 var
Example
Implement the following functions on a single
CLB of the XC4000 FPGA:
X = AB (C + D)
Y = AK + BK + CDK + AEJL
Use look up table F to implement X
Use look up table G for AEJL
Use F, G and H for Y:
Y = K(A+B + CD) + AEJL
= KX + AEJL= KF+G
Example
Virtex 5
Virtex 5
High end of the Xilinx FPGA's Family
High performance (550MHz)
Low-power conception
65nm CMOS process
CLBs
2 slices per CLB
Slices
4 Register
4 LUT
Carry logic
CLBs
Slices
Slices (contd)
SLICEL
Many configuration possible
Slices (contd)
SLICEM
Only Rom or LUT
64x1
64x1Single
Singleport
portRAM
RAM
32x1
Dual
port
32x1 Dual portRAM
RAM
32
32stages
stagesShift
ShiftRegister
Register
64x1
64x1ROM
ROM
LUT
LUT
6 Input LUT
Optimize common logic implementation
DSP Slices
High-performances DSP-Slices
Up to 250 GMACs!
Single precision float optimized
40 Operating mode adaptable dynamically
RAM
2 Types of RAM usable
Distributed RAM
Used the LUTs as RAM
Closed to the logic
Less RAM
Use CLBs
Global RAM
More RAM
555MHz
Far from the logic
Routing problem
Speed problem
Clock frequency
Supply voltage
Switching activity
Resource utilization
Frequency Reduction
Voltage Scaling
Capacitance Reduction
Input capacitance of the fan-out gates,
Capacitance associated with Programmable
interconnects
Parasitic capacitance of the gate.
Switching Activity Reduction
Switched Capacitance Reduction
Resource Utilization Reduction
References
The Design Warriors Guide to FPGAS
Low Power FPGA Design Techniques for Embedded
Systems(PHD Thesis by Anurag Tiwari )
WWW.XILINX.COM
Architecture of FPGAs and CPLDs: A Tutorial by
Stephen Brown and Jonathan Rose
Department of Electrical and Computer
Engineering University of Toronto
Peter.Nilsson: Slides of Advanced Digital IC Design