Vous êtes sur la page 1sur 10

Plan de lexpos e

Introduction aux circuits FPGA


Introduction

Arnaud Tisserand INRIA LIP Arnaire e


OCAM (ACI-SI) Lyon, 23-24 septembre 2003

Structure des FPGA Exemples de FPGA actuels Programmation Utilisations possibles des FPGA pour OCAM

A. Tisserand OCAM Introduction circuits FPGA

2/38

Cibles technologiques
cibles processeurs gnralistes e e spciques e classiques -contrleurs o DSP ASIP Pentium 68705 ADSP-21xx PowerPC 68HC11 TMS320xx Alpha 80C51 DSP56xx MIPS AVR ... ... ... circuits programmables ddis ASIC e e FPGA ARD ASIC Xilinx full custom Altera standard cell Actel gate array ... ...

Partie 1 Introduction

FPGA : eld programmable gate array DSP : digital signal processor ASIC : application specic integrated circuit ASIP : application specic integrated processor ARD : architecture recongurable dynamiquement

A. Tisserand OCAM Introduction circuits FPGA

3/38

A. Tisserand OCAM Introduction circuits FPGA

4/38

Historique
Premiers circuits FPGA : milieu des annes 80. e Sorte de CPLD, PLA volus. e e Utiliss pour la glue logique au dbut. e e Alternative aux gate-arrays. performances de petits circuits avec la souplesse de la programmation.

Les FPGA : des vrais circuits ou juste des jouets ?


Utilisations classiques des FPGA : prototypage rapide : mulation plus rapide que simulation e ex : Intel Pentium ` qlq centaines de kHz sur plusieurs cartes FPGA a petites sries : limite les cots, mise sur le march rapide (Matrox, e u e CISCO, . . . ) recongurabilit dynamique : en pratique a ne marche pas avec les e c FPGA (tendance ARD) acclration de certains calculs : tr`s parall`les, structures ou ee e e reprsentations spciques (crypto) . . . e e Limitations en performances (surface, vitesse, consommation, temps de reconguration) par rapport aux ASIC. Une question davenir : comme le cot des masques dun ASIC deviennent u trop importants, est ce que les FPGA vont remplacer les ASIC ?

A. Tisserand OCAM Introduction circuits FPGA

5/38

A. Tisserand OCAM Introduction circuits FPGA

6/38

Structure gnrale dun circuit FPGA e e

bloc de configuration

Partie 2 Structure des FPGA

mmoire RAM (sur certains circuits) entre/sortie programmable logique programmable routage programmable gnrateur dhorloge programmable

+ mmoire de configuration

A. Tisserand OCAM Introduction circuits FPGA

7/38

A. Tisserand OCAM Introduction circuits FPGA

8/38

Blocs dentre/sortie programmables e


Les blocs dentre/sortie servent dinterface entre les pattes (plots) du e circuit et le cur du FPGA (via le routage programmable). Il y a dirents types dentres/sorties : e e entres/sorties utilisateur e adaptation des signaux (CMOS, TTL, 3.3, 2.5, 1.8, 1.5, paire di.) alimentations spares en zones : cur, bancs de plots, zones basse-consommation e e signaux dhorloge possibilit davoir plusieurs horloges e signaux de conguration programmation du FPGA signaux de test boundary scan JTAG pour debug
A. Tisserand OCAM Introduction circuits FPGA 9/38

Dirents codages des tats logiques e e


Probl`me de faire causer les composants entre eux : il y a plusieurs e codages en tension des 1 et des 0 (tension dalimentation VDD , type de marges).
V in
porte

V out

5V 4V

5.0 V

5.0 V

5.0 V

5.0 V

5.0 V

5.0 V

1 1 1
3.5 V 2.7 V 2.0 V

4.5 V

1
3.9 V

1 x
2.0 V

3.3 V

3.3 V

3V 2V 1V 0V

1
2.0 V

1
2.4 V

x
0.8 V 1.0 V

x 0
0.4 V 0.0 V

x
0.8 V

0
0.0 V

0
0.0 V

0.5 V 0.0 V

0.8 V 0.0 V

0.4 V 0.0 V 0.0 V

0.4 V 0.0 V

TTL

CMOS

TTL/CMOS

CMOS 3V

A. Tisserand OCAM Introduction circuits FPGA

10/38

Exemple de bloc dentre/sortie (Xilinx Virtex II) e


D1 3tats CE CLK1 SR entre REV Q2 Q1
M L K J I H G F E D 12 mm

Boitiers et pattes dentre/sortie e


CS144 Chip-Scale BGA
AW AV AU AT AR AP
0.8 mm

FF1517 Flip-Chip Fine-Pitch BGA


40 mm

1 mm

AN AM AL AK AJ AH AG AF AE AD

OQ

C B A

9 10 11 12 13

AC AB
1.2 mm

AA Y W V U T

CLK2 sortie plot D2

R P N M L K J H G F E D C

BGA =ball grid array

B A

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

3.2 mm

A. Tisserand OCAM Introduction circuits FPGA

11/38

A. Tisserand OCAM Introduction circuits FPGA

12/38

Choix des boitiers (ex : Xilinx Virtex II)


boitier pas (mm) taille (mm) nb. E/S CS144 0.80 12 x 12 92 FG256 1.00 17 x 17 172 FG456 1.00 23 x 23 324 FG676 1.00 27 x 27 484 BG575 1.27 31 x 31 408 BG728 1.27 35 x 35 516 FF896 1.00 31 x 31 624 FF1152 1.00 35 x 35 824 FF1517 1.00 40 x 40 1,108 BF957 1.27 40 x 40 684

Blocs logiques programmables

FPGA boitier CS144 FG256 FG456 FG676 FF896 FF1152 FF1517 BG575 BG728 BF957

40 88 88 -

80 92 120 -

250 92 172 200 -

500 172 264 -

1000 172 324 432 328 -

XC2V 1500 2000 392 528 392 456 624 408 624

3000 484 720 516 684

4000 824 912 684

6000 824 1 104 684

8000 824 1 108 -

On trouve deux principaux types de ressources dans les blocs logiques : des portes logiques congurables but : faire des fonctions logiques assez simples (de la porte ` 2 entres a e ` des portes complexes jusuq` une dizaine dentres) a a e des bascules but : faire des mmoires lmentaires 1 bit e ee Il existe de nombreux types de blocs logiques, et mme chez un seul e fabricant, ils peuvent beaucoup voluer au cours du temps. e

Note : informations extraites de http://www.xilinx.com


A. Tisserand OCAM Introduction circuits FPGA 13/38 A. Tisserand OCAM Introduction circuits FPGA 14/38

Blocs logiques Actel

Bloc logique Quicklogic


OS A1 A2 A3

ACT1
D00 D01

ACT3

A4 A5 A6 B1 B2 C1 C2

AZ

OZ B M C O D Q N R NZ S Q OZ

D D10 D11 S1

OUT

S0

D1 D2 E1 E2

A1 B1 A0 B0 CLK

CLR

F1 F2 F3 F4 F5 F5 OC OR F

FZ

A. Tisserand OCAM Introduction circuits FPGA

15/38

A. Tisserand OCAM Introduction circuits FPGA

16/38

Bloc logique Xilinx 3000


DI

Routage programmable
Pour connecter les blocs logiques entre eux et les entres/sorties, les e FPGA disposent de toute une panoplie de ressources de routage programmables. En gnral dirents niveaux hirarchiques sont disponibles : e e e e connections directes vers les voisins proches connections gnrales ` travers des matrices de routages et des canaux e e a disposs suivant une topologie simple (grille, tore) e connections ` longue distance (avec driver pour haute sortance) a distribution dhorloge spcique (sur des canaux ddis) e e e

X A B C D E Y

LUT

CE 1 CLK RD O RG

A. Tisserand OCAM Introduction circuits FPGA

17/38

A. Tisserand OCAM Introduction circuits FPGA

18/38

Structure gnrale du routage e e


connection longue distance connection directe canaux gnraux bloc logique matrice de routage point de routage

Matrices de routage programmables (Xilinx 3000)

10

11

12

13

14

15

16

17

18

19

20

Remarque : lchelle est fausse (blocs logiques 5% du circuit). e

A. Tisserand OCAM Introduction circuits FPGA

19/38

A. Tisserand OCAM Introduction circuits FPGA

20/38

Routage (Xilinx Spartan II E)

Gnrateurs et distribution dhorloge e e


Lun des points importants dans les FPGA est que le concepteur na rien ` faire pour gnrer et distribuer les horloges partout o` elles sont a e e u ncessaires (probl`me complexe dans les ASIC). e e
plots dhorloge CLK CLKFB DCM signal CLK0 CLK90 CLK180 CLK270 CLKx2 CLK180x2 CLKDIV

CLB

CLB

CLB

CLB

interne

CTRL STATUS

BUF vers distribution par zone

DCM

Divisions possibles dans un Virtex II : 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 9, 10, 11, 12, 13, 14, 15, et 16.
A. Tisserand OCAM Introduction circuits FPGA 21/38 A. Tisserand OCAM Introduction circuits FPGA 22/38

Mmoires utilisateurs e
On peut utiliser les blocs logiques pour faire des petites mmoires e (distributed memory), mais a nest pas tr`s ecace. Il y a des blocs c e mmoire complets. e

Partie 3 Exemples de FPGA actuels


Cas des Virtex II : bloc de 18Kb simple ou double port, congurable en 16K x 1, 8K x 2, 4K x 4, 1K x 18, 2K x 9, 512 x 36. Il y a entre 4 (XC2V40) et 168 (XC2V8000) blocs.
A. Tisserand OCAM Introduction circuits FPGA 23/38 A. Tisserand OCAM Introduction circuits FPGA 24/38

Architecture Actel de base


E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL BL E/S E/S E/S E/S E/S E/S E/S E/S E/S E/S

Spartan II E : vue globale


DLL CLB CLB CLB CLB CLB CLB CLB CLB DLL

BLOCK RAM

E/S E/S E/S E/S

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

BLOCK RAM

CLB

CLB

CLB

CLB

CLB

CLB

CLB CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

IOB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

BLOCK RAM

CLB CLB BLOCK RAM DLL CLB CLB

CLB

CLB

CLB

CLB

CLB

CLB CLB CLB

E/S E/S E/S E/S


DLL

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

A. Tisserand OCAM Introduction circuits FPGA

25/38

A. Tisserand OCAM Introduction circuits FPGA

CLB

CLB

CLB

26/38

Caractristiques de la famille Spartan II E e


Valeurs provenant de la documentation Xilinx :
type XC2S50E XC2S100E XC2S150E XC2S200E XC2S300E XC2S400E C2S600E portes logiques 1 728 2 700 3 888 5 292 6 912 10 800 15 552 portes quivalentes e 23 000 50 000 37 000 100 000 52 000 150 000 71 000 200 000 93 000 300 000 145 000 400 000 210 000 600 000 matrice LC 16 20 24 28 32 40 48 nb. CLB 384 600 864 1 176 1 536 2 400 3 456 nb. I/O 182 202 265 289 329 410 514 Paires Di. 83 86 114 120 120 172 205 DRAM bits 24 576 38 400 55 296 75 264 98 304 153 600 221 184 BRAM bits 32K 40K 48K 56K 64K 160K 288K

Bloc logique Xilinx Spartan II E


COUT YB Y YQ DFF G4 G3 G2 G1 F5IN BY SR XB CARRY + CTRL F4 F3 F2 F1 BX CLK CE CIN X XQ DFF LUT CARRY + CTRL

24 30 36 42 48 60 72

LUT

Packages famille Spartan II E : TQ144, PQ208, FT256, FG456, FG676 Taille des mmoires de conguration (en bits) : e
XC2S50E 630 048 XC2S100E 863 840 XC2S150E 1 134 496 XC2S200E 1 442 016 XC2S300E 1 875 648 XC2S400E 2 693 440 XC2S600E 3 961 632

Deux tranches par CLB, deux LUT par tranche.

A. Tisserand OCAM Introduction circuits FPGA

27/38

A. Tisserand OCAM Introduction circuits FPGA

28/38

Comment faire des grandes tables


24 H 24 V
LUT

Routage dans un Virtex II

120 H 120 V
LUT

MUXF5 MUXF6
LUT

40 H 40 V

16

SLICE
LUT

MUXF5

CLB

A. Tisserand OCAM Introduction circuits FPGA

29/38

A. Tisserand OCAM Introduction circuits FPGA

30/38

Flot de conception

Partie 4 Programmation
.VHD

LIB VHDL

LIB FPGA

Compil. VHDL

Synthse

P&R

Config.

A. Tisserand OCAM Introduction circuits FPGA

31/38

A. Tisserand OCAM Introduction circuits FPGA

32/38

Mesures de performances
An de compl`ter les analyses de complexit plus ou moins nes, nous e e allons implanter sur FPGA les diverses briques de base et une ou des applications dans le cadre de notre tude. e

Partie 5 Utilisation des FPGA pour OCAM

Les informations que nous souhaitons obtenir sont : La vitesse frquence de fonctionnement avec pipeline limit e e frquence de fonctionnement avec pipeline intensif e La surface de circuit ncessaire e compter le nombre de blocs logiques de base dcompte par type dopration de base e e Des informations plus qualitatives gnration automatique de portions de circuit e e besoins spciques en placement et en routage e support dans les langages de haut niveau
33/38 A. Tisserand OCAM Introduction circuits FPGA 34/38

A. Tisserand OCAM Introduction circuits FPGA

Matriel ` notre disposition e a


Nous avons 4 cartes ` notre disposition : a 1 RC1000 de Celoxica avec un Virtex 1000 (carte PCI) 1 RC1000 de Celoxica avec un Virtex 2000 (carte PCI) 1 carte traitement vido avec un Virtex 400 e 1 carte dtude Altera avec petit MAX e

Logiciels ` notre disposition a


Nous avons les outils pour utiliser correctement des FPGA : outils bas niveau (synth`se physique, P & R, prog.) : e Xilinx ISE (5.2 6.1) Altera synth`se : e Xilinx XST Altera Leonardo Simplify (` venir prochainement) a simulation : Modelsim

A. Tisserand OCAM Introduction circuits FPGA

35/38

A. Tisserand OCAM Introduction circuits FPGA

36/38

Dmonstrateur e
But : faire une petite carte FPGA pour signer ` une certaine cadence a (` xer). a Caractristiques : e E/S via lien USB car dbit faible e type de calcul // la vitesse est directement proportionnelle au nombre de FPGA sur la carte FPGA avec petit boitier car peu de communication et simplicit e fabrication carte FPGA cible : Xilinx Spartan probablement Main duvre : conception carte : AT conception application sur carte : JLB, GV + AT soft du reste du dmonstrateur : ? e
A. Tisserand OCAM Introduction circuits FPGA 37/38 A. Tisserand OCAM Introduction circuits FPGA

Fin

Questions ?

Pour me contacter : arnaud.tisserand@ens-lyon.fr http://www.ens-lyon.fr/~atissera/ (va changer) Laboratoire LIP. ENS Lyon. 46 alle dItalie. F-69364 Lyon cedex 07. e

Merci.
38/38

Vous aimerez peut-être aussi