Vous êtes sur la page 1sur 28

Les circuits FPGA

Eduardo Sanchez Laboratoire de Systmes Logiques Ecole Polytechnique Fdrale de Lausanne

Field Programmable Gate Arrays


Matrice de cellules logiques Chaque cellule est capable de raliser 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 grossire

Deux types, selon le mode de programmation:


RAM anti-fusibles

Page 2

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

interconnexions programmables

fonctions programmables

configuration cellule logique cellule I/O


Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Page 3

Mthodologie de synthse
diteur graphique schma logique partitionnement placement routage bits de configuration VHDL

Page 4

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Circuits Xilinx
Chaque cellule logique, appele Configurable Logic Block (CLB), est programme laide dune look-up table (LUT) Le chargement de la configuration peut prendre plusiers millisecondes, temps pendant lequel le circuit est inutilisable Plusieurs familles sont disponibles, divises en deux grands groupes:
les familles grain grossier (XC3000, XC4000, XC5200, Spartan, Virtex): il est impossible de configurer une partie isole du circuit la famille gran fin XC6200: il est possible daccder directement chaque cellule logique

Page 5

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

CLB de la famille X4000:


C1 H1 G4 G3 G2 G1
Logic function EC RD

C2 DIN

C3 S/R

C4 EC
S/R control

Logic function G'

DIN F' G' H'

SD

Q2

H' F4 F3 F2 F1

1 G
S/R control DIN F' G' H' SD D

Logic function F'

Q1

EC RD

1 CK F

Page 6

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

On peut gnrer deux sorties par CLB, combinatoires ou squentielles Il est possible de gnrer 2 fonctions quelconques 4 variables, une fonction quelconque 5 variables ou certaines fonctions 9 variables Les look-up tables peuvent galement tre utilises 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 possdent des signaux set/reset programmables et peuvent tre utilises indpendamment des fonctions logiques de la cellule

Page 7

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Cellule I/O (IOB) de la famille X4000:


SLEW RATE CONTROL PASSIVE PULL-UP/ PULL-DOWN

VCC

OE

D OUT

Q FLIPFLOP PAD

OUTPUT CLOCK

I1

I2 Q D FLIPFLOP/ LATCH INPUT CLOCK DELAY

Gnd

Page 8

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Modes de programmation:
master:
srie parallle avec adresses croissantes parallle avec adresses dcroissantes

peripheral:
parallle asynchrone parallle synchrone

slave: srie

Page 9

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

La famille Virtex
System Gates XCV50 XCV100 XCV150 XCV200 XCV300 XCV400 XCV600 XCV800 XCV1000 57906 108904 164674 236666 322970 468252 661111 888439 1124022 CLB Array 16x24 20x30 24x36 28x42 32x48 40x60 48x72 56x84 64x96 Logic Cells 1728 2700 3888 5292 6912 10800 15552 21168 27648 Maximum BlockRAM Available I/O Bits 180 180 260 284 316 404 512 512 512 32768 40960 49152 57344 65536 81920 98304 114688 131072 Configuration Bits 559232 781248 1041128 1335872 1751840 2546080 3608000 4715684 6127772

Page 10

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Caractristiques de base
Cellules logiques et interconnexions hirarchiques Mmoire interne double port Densits de 50K 1M de portes Frquence maximale: 200 MHz Exemples de performance:
additionneur 64 bits: multiplicateur 16x16: dcodeur dadresse 64 bits: multiplexeur 16:1 7.2 ns 6.0 ns 6.4 ns 5.4 ns

Technologie: 0.22 CMOS, 5 couches de mtal

Page 11

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Architecture
DLL

VersaRing B R A M B R A M

CLBs

IOBs

Page 12

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Input/Output Block (IOB) Chaque IOB possde 3 lments de mmoire, configurables comme bascules ou latches. Ces trois lments partagent le signal dhorloge et de set/reset, mais chacun possde son propre enable clock (EC). Le signal set/reset peut tre configur comme set ou reset, synchrone ou asynchrone.

Page 13

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

PS T TCE D EC L SR Q Weak Keeper

PS O OCE D EC L SR Q

PAD PAD

I PS IQ Q D EC L Vref SR SR CLK ICE Page 14 Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Programmable Programmable Delay Delay

Configurable Logic Block (CLB)


Lunit logique de base est la Logic Cell (LC): un gnrateur de fonctions logiques 4 variables, une logique de carry et un lment de mmoire Deux LC formennt un slice et deux slices forment un CLB En combinant les deux LCs dun slice, on peut implmenter une fonction quelconque 5 entres ou certaines fonctions jusqu 9 variables. En combinant les 4 LCs dun CLB, on peut implmenter une fonction quelconque 6 entres ou certaines jusqu 19 variables. Chaque slice contient une chane carry, ce qui permet limplmentation dun full adder par LC. On peut galement utiliser ces chanes pour raliser des fonctions logiques plus larges Llment de mmoire du LC peut tre configur comme une bascule ou comme un latch, avec CLK et EC, set et reset (synchrone ou asynchrone)

Page 15

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Cout

Cout

slice
LC LC LC LC LC LC LC LC

CLB
Cin Cin Cout YB Y SP G3 G2 G1 RC BY Cin Page 16 Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

G4

LUT

Carry & Carry & Control Control

D EC

YQ

Chaque LUT (Look-Up Table) peut tre utilise comme une RAM 16x1 synchrone. Les deux LUTs dun slice peuvent se combiner pour obtenir une RAM synchrone de dimension:
16x2 32x1 16x1 double port

En plus, une LUT peut tre utilise comme registre dcalage Par circuit, il y a deux colonnes de mmoire RAM, appele BlockSelectRAM. Une colonne est forme de plusieurs blocs, un par 4 CLB de hauteur (un FPGA avec 64 CLB de hauteur possde donc 16 blocs de mmoire par colonne, pour un total de 32 pour le circuit). Chacun des blocs est une mmoire double port de 4096 bits, avec des signaux de contrle indpendants par port. La largeur de la mmoire peut tre configure a 1, 2, 4, 8 ou 16 bits

Page 17

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Interconnexions
A ct de chaque CLB il y a un GRM (General Routing Matrix): cest un switch dinterconnexion avec les 4 CLBs adjacents
24 lignes avec chacun des GRM adjacents 96 lignes avec les GRM situs 6 CLB plus loin 12 lignes horizontales et verticales, tout au long du circuit

Il y a 4 lignes par range de CLB, pour transmettre les tri-states (deux par CLB) Le VersaRing est un rseau additionnel de lignes dinterconnexion entre les IOB et les CLB: cela permet de changer facilement la configuration interne du circuit tout en gardant le mme brochage Il y a 4 signaux globaux dhorloge, capable darriver sur toutes les entres dhorloge internes avec un skew minimal. Associ chaque signal dhorloge global il y a un DLL (Delay-Locked Loop)

Page 18

Eduardo Sanchez Ecole Polytechnique Fdrale 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 ltat de toutes les bascules, les LUTs et les BRAM boundary-scan

Page 19

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

La famille Virtex-E
System Gates XCV50E XCV100E XCV200E XCV300E XCV400E XCV600E XCV1000E XCV1600E XCV2000E XCV2600E XCV3200E CLB Array Logic Cells 1728 2700 5292 6912 10800 15552 27648 34992 43200 57132 73008 Maximum Available I/O 176 176 284 316 404 512 660 724 804 804 804 BlockRAM Bits 65536 81920 114688 131072 163840 294912 393216 589824 655360 753664 851968 Configuration Bits 630048 836840 1442106 1875648 2693440 3961632 6587520 8308992 10159648 -

57906 16x24 95468 20x30 214640 28x42 411955 32x48 569952 48x60 985882 48x72 1569178 64x96 2188742 72x108 2541952 80x120 3263755 92x138 4074387 104x156

Page 20

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Caractristiques de base
Technologie: 0.18 CMOS, 6 couches de mtal, 1.8 V 30% plus rapide que la famille Virtex Exemples de performance:
additionneur 64 bits: multiplicateur 16x16: dcodeur dadresse 64 bits: multiplexeur 16:1 6.3 ns 5.1 ns 5.5 ns 4.6 ns

Mmoire interne double port plus rapide Densits de 58K 4M de portes

Page 21

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Architecture
DLL DLL DLL DLL

VersaRing

I O B

B B B B C C C C R R R R L L L L A A A A B B B B M M M M

I O B

DLL DLL

DLL DLL

Les blocs de mmoire interne sont toujours de 4096 bits, organiss en colonnes, mais il y plus de colonnes de mmoire: une chaque 12 colonnes de CLBs, lexception du milieu du circuit
Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Page 22

50M gates 50M Density (system gates) 10M 4M 2M 1M 500K Virtex V1000 Virtex 0.15 Virtex 0.18 Virtex 0.13

1998

1999

2000

2001

2002

2003

2004

Page 23

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Les circuits intgrs sur mesure

Full-custom

Semi-custom Masked gate array (MGA)

Programmable
PLD CPLD FPGA

Cell-based (CBIC) (standard cells)


Page 24

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

wafer size wafer cost design density utilization die size die/wafer defect density yield die cost price/gate part cost

FPGA 6 1.4 10 10 60 1.67 88 1.1 65 25 0.39 39

MGA 6 1.3 10 20 85 0.59 248 0.9 72 7 0.1 10

CBIC 6 1.5 10 25 100 0.4 365 1 80 5 0.08 8

inches K$ Kgates Kgates/cm2 % cm2 defects/cm2 % $ cents $

Page 25

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

cost of parts $1000,000

FPGA MGA CBIC

$100,000 20,000

$10,000 10 100 2000

1000

10,000

100,000

number of parts or volume 4000

Page 26

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Page 27

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Field Programmable Interconnection Circuits


transistor de passage

cellule de SRAM connexion permanente

buffers programmables pins I/O


Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Page 28

Vous aimerez peut-être aussi