Vous êtes sur la page 1sur 28

Les circuits FPGA

Eduardo Sanchez
Laboratoire de Systèmes Logiques

Ecole Polytechnique Fédérale de Lausanne


Field Programmable Gate Arrays

♦ Matrice de cellules logiques


♦ Chaque cellule est capable de réaliser une fonction, choisie parmi
plusieurs possibles: le choix se fait par programmation
♦ Les interconnexions entre les cellules sont programmables également
♦ Deux types, selon la complexité de la cellule:
• granularité fine
• granularité grossière
♦ Deux types, selon le mode de programmation:
• RAM
• anti-fusibles

Eduardo Sanchez
Page 2 Ecole Polytechnique Fédérale de Lausanne
fonctions
interconnexions programmables
programmables

configuration

cellule logique cellule I/O

Eduardo Sanchez
Page 3 Ecole Polytechnique Fédérale de Lausanne
Méthodologie de synthèse
éditeur graphique VHDL

schéma logique

partitionnement

placement

routage

bits de configuration

Eduardo Sanchez
Page 4 Ecole Polytechnique Fédérale de Lausanne
Circuits Xilinx

♦ Chaque cellule logique, appelée Configurable Logic Block (CLB), est


programmée à l’aide d’une look-up table (LUT)
♦ Le chargement de la configuration peut prendre plusiers
millisecondes, temps pendant lequel le circuit est inutilisable
♦ Plusieurs familles sont disponibles, divisées en deux grands groupes:
• les familles à grain grossier (XC3000, XC4000, XC5200, Spartan, Virtex): il
est impossible de configurer une partie isolée du circuit
• la famille à gran fin XC6200: il est possible d’accéder directement à chaque
cellule logique

Eduardo Sanchez
Page 5 Ecole Polytechnique Fédérale de Lausanne
♦ CLB de la famille X4000:
C1 C2 C3 C4

H1 DIN S/R EC
G4 S/R
Logic control

G3 function DIN
SD
F'
D Q2
G' G'
H'
G2

G1
Logic EC
function RD
H'
1
G
F4 Logic S/R
control
function DIN
SD
F3 F'
D
F' G' Q1
H'
F2

F1
EC
RD

1
F
CK

Eduardo Sanchez
Page 6 Ecole Polytechnique Fédérale de Lausanne
♦ On peut générer deux sorties par CLB, combinatoires ou
séquentielles
♦ Il est possible de générer 2 fonctions quelconques à 4 variables, une
fonction quelconque à 5 variables ou certaines fonctions à 9
variables
♦ Les look-up tables peuvent également être utilisées comme des
RAM. Dans ce cas, on peut obtenir les configurations suivantes:
une RAM 16x2, une RAM 32x1, deux RAM 16x1 ou une RAM 16x1 et
une fonction combinatoire à 4 variables
♦ Les bascules possèdent des signaux set/reset programmables et
peuvent être utilisées indépendamment des fonctions logiques de
la cellule

Eduardo Sanchez
Page 7 Ecole Polytechnique Fédérale de Lausanne
♦ Cellule I/O (IOB) de la famille X4000:

SLEW PASSIVE
RATE PULL-UP/
CONTROL PULL-DOWN
VCC

OE

D Q
OUT
FLIP-
FLOP PAD

OUTPUT
CLOCK

I1

I2
Q D Gnd
DELAY
FLIP-
FLOP/
LATCH

INPUT
CLOCK

Eduardo Sanchez
Page 8 Ecole Polytechnique Fédérale de Lausanne
♦ Modes de programmation:
• master:
∗ série
∗ parallèle avec adresses croissantes
∗ parallèle avec adresses décroissantes
• peripheral:
∗ parallèle asynchrone
∗ parallèle synchrone
• slave: série

Eduardo Sanchez
Page 9 Ecole Polytechnique Fédérale de Lausanne
La famille Virtex

System CLB Logic Maximum BlockRAM Configuration


Gates Array Cells Available I/O Bits Bits
XCV50 57’906 16x24 1’728 180 32’768 559’232
XCV100 108’904 20x30 2’700 180 40’960 781’248
XCV150 164’674 24x36 3’888 260 49’152 1’041’128
XCV200 236’666 28x42 5’292 284 57’344 1’335’872
XCV300 322’970 32x48 6’912 316 65’536 1’751’840
XCV400 468’252 40x60 10’800 404 81’920 2’546’080
XCV600 661’111 48x72 15’552 512 98’304 3’608’000
XCV800 888’439 56x84 21’168 512 114’688 4’715’684
XCV1000 1’124’022 64x96 27’648 512 131’072 6’127’772

Eduardo Sanchez
Page 10 Ecole Polytechnique Fédérale de Lausanne
Caractéristiques de base
♦ Cellules logiques et interconnexions hiérarchiques
♦ Mémoire interne double port
♦ Densités de 50K à 1M de portes
♦ Fréquence maximale: 200 MHz
♦ Exemples de performance:
• additionneur 64 bits: 7.2 ns
• multiplicateur 16x16: 6.0 ns
• décodeur d’adresse 64 bits: 6.4 ns
• multiplexeur 16:1 5.4 ns
♦ Technologie: 0.22µ CMOS, 5 couches de métal

Eduardo Sanchez
Page 11 Ecole Polytechnique Fédérale de Lausanne
Architecture

DLL

VersaRing

B B
R R
CLBs
A A
M M

IOBs

Eduardo Sanchez
Page 12 Ecole Polytechnique Fédérale de Lausanne
♦ Input/Output Block (IOB)
Chaque IOB possède 3 éléments de mémoire, configurables comme
bascules ou latches. Ces trois éléments partagent le signal
d’horloge et de set/reset, mais chacun possède son propre enable
clock (EC).
Le signal set/reset peut être configuré comme set ou reset,
synchrone ou asynchrone.

Eduardo Sanchez
Page 13 Ecole Polytechnique Fédérale de Lausanne
PS
T D Q
TCE EC
Weak
Keeper
L

SR

PS PAD
PAD
O D Q
OCE EC

SR

PS
Programmable
Programmable
D
IQ Q Delay
Delay
EC

L
Vref
SR

SR
CLK
ICE
Eduardo Sanchez
Page 14 Ecole Polytechnique Fédérale de Lausanne
♦ Configurable Logic Block (CLB)
• L’unité logique de base est la Logic Cell (LC): un générateur de fonctions
logiques à 4 variables, une logique de carry et un élément de mémoire
• Deux LC formennt un slice et deux slices forment un CLB
• En combinant les deux LCs d’un slice, on peut implémenter une fonction
quelconque à 5 entrées ou certaines fonctions jusqu’à 9 variables.
En combinant les 4 LCs d’un CLB, on peut implémenter une fonction
quelconque à 6 entrées ou certaines jusqu’à 19 variables.
• Chaque slice contient une chaîne à carry, ce qui permet l’implémentation d’un
full adder par LC.
On peut également utiliser ces chaînes pour réaliser des fonctions logiques
plus larges
• L’élément de mémoire du LC peut être configuré comme une bascule ou
comme un latch, avec CLK et EC, set et reset (synchrone ou asynchrone)

Eduardo Sanchez
Page 15 Ecole Polytechnique Fédérale de Lausanne
Cout Cout

slice
LC
LC LC
LC

LC
LC LC
LC

CLB
Cin Cin

Cout

YB
Y
G4
SP
G3 Carry
Carry &&
LUT Control
D Q YQ
G2 Control EC

G1

RC

BY

Cin

Eduardo Sanchez
Page 16 Ecole Polytechnique Fédérale de Lausanne
• Chaque LUT (Look-Up Table) peut être utilisée comme une RAM 16x1
synchrone. Les deux LUTs d’un slice peuvent se combiner pour obtenir une
RAM synchrone de dimension:
∗ 16x2
∗ 32x1
∗ 16x1 double port
• En plus, une LUT peut être utilisée comme registre à décalage
• Par circuit, il y a deux colonnes de mémoire RAM, appelée BlockSelectRAM.
Une colonne est formée de plusieurs blocs, un par 4 CLB de hauteur (un FPGA
avec 64 CLB de hauteur possède donc 16 blocs de mémoire par colonne, pour
un total de 32 pour le circuit).
Chacun des blocs est une mémoire double port de 4096 bits, avec des
signaux de contrôle indépendants par port. La largeur de la mémoire peut
être configurée a 1, 2, 4, 8 ou 16 bits

Eduardo Sanchez
Page 17 Ecole Polytechnique Fédérale de Lausanne
♦ Interconnexions
• A côté de chaque CLB il y a un GRM (General Routing Matrix): c’est un switch
d’interconnexion avec les 4 CLBs adjacents
∗ 24 lignes avec chacun des GRM adjacents
∗ 96 lignes avec les GRM situés 6 CLB plus loin
∗ 12 lignes horizontales et verticales, tout au long du circuit
• Il y a 4 lignes par rangée de CLB, pour transmettre les tri-states (deux par CLB)
• Le VersaRing est un réseau additionnel de lignes d’interconnexion entre les IOB
et les CLB: cela permet de changer facilement la configuration interne du
circuit tout en gardant le même brochage
• Il y a 4 signaux globaux d’horloge, capable d’arriver sur toutes les entrées
d’horloge internes avec un skew minimal.
Associé à chaque signal d’horloge global il y a un DLL (Delay-Locked Loop)

Eduardo Sanchez
Page 18 Ecole Polytechnique Fédérale de Lausanne
♦ Modes de configuration
• slave-serial
• master-serial
• selectMAP
Dans ce mode, il est possible de lire tout le contenu de la configuration, ainsi
que l’état de toutes les bascules, les LUTs et les BRAM
• boundary-scan

Eduardo Sanchez
Page 19 Ecole Polytechnique Fédérale de Lausanne
La famille Virtex-E
System CLB Logic Maximum BlockRAM Configuration
Gates Array Cells Available I/O Bits Bits

XCV50E 57’906 16x24 1’728 176 65’536 630’048


XCV100E 95’468 20x30 2’700 176 81’920 836’840
XCV200E 214’640 28x42 5’292 284 114’688 1’442’106
XCV300E 411’955 32x48 6’912 316 131’072 1’875’648
XCV400E 569’952 48x60 10’800 404 163’840 2’693’440
XCV600E 985’882 48x72 15’552 512 294’912 3’961’632
XCV1000E 1’569’178 64x96 27’648 660 393’216 6’587’520
XCV1600E 2’188’742 72x108 34’992 724 589’824 8’308’992
XCV2000E 2’541’952 80x120 43’200 804 655’360 10’159’648
XCV2600E 3’263’755 92x138 57’132 804 753’664 -
XCV3200E 4’074’387 104x156 73’008 804 851’968 -

Eduardo Sanchez
Page 20 Ecole Polytechnique Fédérale de Lausanne
Caractéristiques de base
♦ Technologie: 0.18µ CMOS, 6 couches de métal, 1.8 V
♦ 30% plus rapide que la famille Virtex
♦ Exemples de performance:
• additionneur 64 bits: 6.3 ns
• multiplicateur 16x16: 5.1 ns
• décodeur d’adresse 64 bits: 5.5 ns
• multiplexeur 16:1 4.6 ns
♦ Mémoire interne double port plus rapide
♦ Densités de 58K à 4M de portes

Eduardo Sanchez
Page 21 Ecole Polytechnique Fédérale de Lausanne
Architecture
DLL DLL DLL DLL
VersaRing

B B B B
I C C C C I
O R R R R O
L L L L
B A A A A B
B B B B
M M M M

DLL DLL DLL DLL

♦ Les blocs de mémoire interne sont toujours de 4096 bits,


organisés en colonnes, mais il y plus de colonnes de mémoire: une
chaque 12 colonnes de CLBs, à l’exception du milieu du circuit

Eduardo Sanchez
Page 22 Ecole Polytechnique Fédérale de Lausanne
50M gates
50M
Density (system gates)

10M Virtex 0.13 µ

4M Virtex 0.15
µ
2M Virtex 0.18µ

1M Virtex V1000

500K

1998 1999 2000 2001 2002 2003 2004

Eduardo Sanchez
Page 23 Ecole Polytechnique Fédérale de Lausanne
Les circuits intégrés sur mesure

Full-custom Semi-custom Programmable

PLD
Masked gate array CPLD FPGA
Cell-based (MGA)
(CBIC)
(standard cells)

Eduardo Sanchez
Page 24 Ecole Polytechnique Fédérale de Lausanne
FPGA MGA CBIC
wafer size 6 6 6 inches
wafer cost 1.4 1.3 1.5 K$
design 10 10 10 Kgates
density 10 20 25 Kgates/cm2
utilization 60 85 100 %
die size 1.67 0.59 0.4 cm2
die/wafer 88 248 365
defect density 1.1 0.9 1 defects/cm2
yield 65 72 80 %
die cost 25 7 5 $
price/gate 0.39 0.1 0.08 cents
part cost 39 10 8 $

Eduardo Sanchez
Page 25 Ecole Polytechnique Fédérale de Lausanne
cost of parts
FPGA
$1’000,000
MGA
CBIC

$100,000

20,000

$10,000
10 100 1000 10,000 100,000
number of parts or volume
2000
4000

Eduardo Sanchez
Page 26 Ecole Polytechnique Fédérale de Lausanne
Eduardo Sanchez
Page 27 Ecole Polytechnique Fédérale de Lausanne
Field Programmable Interconnection Circuits

transistor de passage

cellule de SRAM

connexion permanente

buffers programmables

pins I/O

Eduardo Sanchez
Page 28 Ecole Polytechnique Fédérale de Lausanne

Vous aimerez peut-être aussi