Vous êtes sur la page 1sur 212

FPGA

Gnie lectrique 3me anne


Option Microlectronique
ENIT 2007 2008
BOURGUIBA Riad
2
FPGA
1. Introduction
2. Concepts fondamentaux
3. A lorigine des FPGA
4. Les caractristiques des FPGA
5. La configuration

Bourguiba Riad - ENIT 2007 - FPGA


3
1. Introduction
A. Que sont les FPGA?
B. Pourquoi sont-ils si intressants?
C. A quoi peuvent-ils servir?
D. Objectifs de ce cours

Bourguiba Riad - ENIT 2007 - FPGA


4
A. Que sont les FPGA?
FPGA (in Field Programmable Gate Array)
Cest un rseau logique programmable sur site.

Sur site : sur le lieu de mise au point, de


prototypage ou de production du systme qui
lintgre. Bref, pas lusine de fabrication du FPGA.

Bourguiba Riad - ENIT 2007 - FPGA


5
1. Introduction
A. Que sont les FPGA?
B. Pourquoi sont-ils si intressants?
C. A quoi peuvent-ils servir?
D. Objectifs de ce cours

Bourguiba Riad - ENIT 2007 - FPGA


6
B. Pourquoi sont-ils si intressants?
Complexit
Les PLD sont programmables, mais trop simples.

Les ASIC sont trs denses, mais figs.

Les FPGA sont un intermdiaire.

Programmation
Les CPU sont programmables, mais mal adapts au calcul rptitif sur
de gros volumes de donnes.

Les ASIC sont adapts ce problme, mais restent non programmables.

Les FPGA sont un intermdiaire.

Bourguiba Riad - ENIT 2007 - FPGA


7
B. Pourquoi sont-ils si intressants?
Estimation du nombre de projets en 2003, par
technologie

ASIC : 1500 4000 projets, en baisse


(Application Specific Integrated Circuit)

ASSP : 5000 projets, en baisse


(Application Specific Standard Parts)

FPGA : 450 000 projets, en hausse


(in Field Programmable Gate Array)
Bourguiba Riad - ENIT 2007 - FPGA
8
1. Introduction
A. Que sont les FPGA?
B. Pourquoi sont-ils si intressants?
C. A quoi peuvent-ils servir?
D. Objectifs de ce cours

Bourguiba Riad - ENIT 2007 - FPGA


9
C. A quoi peuvent-ils servir?
Utilisations
Milieu des annes 80
Glue-logic
Machines tats de complexit moyenne
Traitement de donnes simple

Dbut des annes 90


Tlcommunication
Rseaux
Principalement du routage de donnes avec un peu de contrle.

Fin des annes 90


Applications industrielles (traitement dimage, robotique, contrle,)
Applications personnelles (multimdia, priphriques PC,)
Applications automobiles (automotive)

Dbut des annes 2000


DSP
Systmes sur une puce programmables
Bref, tout du moment quil y a assez de place et de temps pour effectuer les calculs!

Bourguiba Riad - ENIT 2007 - FPGA


10
C. A quoi peuvent-ils servir?
Secteurs en conqute :

Couche physique des protocoles de communication


Depuis la glue-logic, un long chemin a t parcouru. Grce leurs I/O srie ultra
rapides, les FPGA peuvent aujourdhui intervenir dans les routeurs tlcom.

ASIC
Les FPGA sattaquent ce secteur depuis plusieurs annes dj. Leur cycle de
conception, court, en fait une solution idale pour les sries moyennes ou en dbut
de production.

DSP
Les multiplieurs rapides, les RAM de taille consquentes, loptimisation des oprations
arithmtiques, ajouts au paralllisme intrinsque permet de surpasser les DSP les
plus sophistiqus.

Microcontrleurs
Les processeurs synthtisables peuvent tre combins des priphriques pr-
existants ou custom, pour crer de vritables SoC avec un prix comparable celui
dun microcontrleur.

Bourguiba Riad - ENIT 2007 - FPGA


11
C. A quoi peuvent-ils servir?
Nouveau secteur :
calculateurs reconfigurables (reconfigurable computing)
Lexploitation combine du paralllisme massif et de la
reprogrammation des FPGA permet de construire de
nouveaux types de calculateurs qui sadaptent la
nature des donnes en cours de fonctionnement.

Bourguiba Riad - ENIT 2007 - FPGA


12
1. Introduction
A. Que sont les FPGA?
B. Pourquoi sont-ils si intressants?
C. A quoi peuvent-ils servir?
D. Objectifs de ce cours

Bourguiba Riad - ENIT 2007 - FPGA


13
D. Objectifs de ce cours
Au milieu des annes 80, les FPGA taient des composants
programmables simples.

Leur capacit, mesure en portes logiques quivalentes, tait dun millier


de portes.

Le dveloppement dapplication tait bas sur la saisie de schma.

Aujourdhui, les FPGA ont une capacit qui peut atteindre quelques
dizaines de millions de portes.

Le flot de dveloppement peut tre complexe, empruntant la fois au


flot hardware et au flot software.

Les outils sont nombreux et varis.


Bourguiba Riad - ENIT 2007 - FPGA
14
D. Objectifs de ce cours
Les objectifs seront de :
comprendre comment est fait un FPGA et comment il fonctionne,

vous familiariser avec les termes et expressions employes dans le


domaine,

vous clairer sur le flot de conception,

Vous montrer comment un FPGA sintgre dans un systme


numrique.

Nous essaierons pour tout cela de rester gnriques, cest--


dire de ne pas nous attacher un fabricant particulier, ni
un outil spcifique.

Bourguiba Riad - ENIT 2007 - FPGA


15
FPGA
1. Introduction
2. Concepts fondamentaux
3. A lorigine des FPGA
4. Les caractristiques des FPGA
5. La configuration

Bourguiba Riad - ENIT 2007 - FPGA


16
2. Concepts fondamentaux
A. Quest-ce la logique programmable?
B. Fonction logique programmable circuit
combinatoire
C. Fonction logique programmable LUT
D. En rsum

Bourguiba Riad - ENIT 2007 - FPGA


17
A. Quest-ce la logique programmable?
Le point cl des FPGA rside dans sa programmation.

Cest cette programmation qui le rend prfrable lASIC dans bien des
applications.

Elle repose sur lutilisation dune mmoire dite de configuration pour dfinir le
comportement du circuit.

Elle seffectue de diffrentes manires, en fonction des caractristiques


technologiques.

Les anctres des FPGA taient des composants logiques programmables tels
que:
Les PROM (Programmable ROM)
les PLA (Programmable Logic Array)
les PAL (Programmable Array Logic)
les GAL (Generic Array Logic)
les CPLD (Complex Programmable Logic Devices)

Les FPGA ont hrit de certaines de leurs caractristiques.

Bourguiba Riad - ENIT 2007 - FPGA


18
2. Concepts fondamentaux
A. Quest-ce la logique programmable?
B. Fonction logique programmable circuit
combinatoire
C. Fonction logique programmable LUT
D. En rsum

Bourguiba Riad - ENIT 2007 - FPGA


B. Fonction logique programmable 19
circuit combinatoire
i. Principe
ii. Technologie fusibles
iii. Technologie antifusibles

Bourguiba Riad - ENIT 2007 - FPGA


20
i. Principe
Considrons le circuit suivant :

Bourguiba Riad - ENIT 2007 - FPGA


21
i. Principe
Les entres de notre fonction sont les variables a et
b, ainsi que leurs inverses.

La sortie y est celle de la porte AND.

Dans sont tat actuel, les rsistances de pull-up


maintiennent y 1.

En ajoutant des connexions entre les entres et la


porte AND, ont peut modifier la valeur de la sortie.

Bourguiba Riad - ENIT 2007 - FPGA


22
i. Principe
8 fonctions logiques deux entres a et b peut tre cres partir de
ce circuit, ainsi que le 1 et le 0.

Fat Faf Fbt Fbf y Fat Faf Fbt Fbf y


0 0
0 a.b
0 a.b
0 a
0 0
a.b b
a.b b
a 1

: connexion tablie
Bourguiba Riad - ENIT 2007 - FPGA
B. Fonction logique programmable 23
circuit combinatoire
i. Principe
ii. Technologie fusibles
iii. Technologie antifusibles

Bourguiba Riad - ENIT 2007 - FPGA


24
ii. Technologie fusibles
Dans cette premire solution, tous les contacts sont raliss
en usine avec des fusibles miniatures gravs sur silicium.

Bourguiba Riad - ENIT 2007 - FPGA


25
ii. Technologie fusibles
Lutilisateur grille les fusibles un par un au cours dune phase de
programmation, pour obtenir la fonction logique quil souhaite.

OTP : One Time Programmable

Bourguiba Riad - ENIT 2007 - FPGA


B. Fonction logique programmable 26
circuit combinatoire
i. Principe
ii. Technologie fusibles
iii. Technologie antifusibles

Bourguiba Riad - ENIT 2007 - FPGA


27
iii. Technologie antifusibles
Par opposition, il existe une technologie antifusibles.

Un antifusible a par dfaut une impdance trs grande (plusieurs


mgohms).

Il est constitu de silicium amorphe donc non conducteur, qui se


cristallise lors du passage dun fort courant. Il devient alors conducteur.

Bourguiba Riad - ENIT 2007 - FPGA


28
iii. Technologie antifusibles
A la sortie dusine, il ny a pas de connexion.

Bourguiba Riad - ENIT 2007 - FPGA


29
iii. Technologie antifusibles
Lapplication dune tension de programmation fera
apparatre les connexions ncessaires.

Bourguiba Riad - ENIT 2007 - FPGA


30
2. Concepts fondamentaux
A. Quest-ce la logique programmable?
B. Fonction logique programmable circuit
combinatoire
C. Fonction logique programmable LUT
D. En rsum

Bourguiba Riad - ENIT 2007 - FPGA


C. Fonction logique programmable 31
LUT
i. Principe
ii. Technologie masques
iii. Technologie PROM
iv. Technologie EPROM (UV-EPROM)
v. Technologie EEPROM
vi. Technologie FLASH
vii. Technologie SRAM

Bourguiba Riad - ENIT 2007 - FPGA


32
i. Principe
LUT : Look Up Table

Une autre faon de raliser une fonction logique consiste programmer


une mmoire.

Mmoire
variables rsultats
Adresses Donnes
logiques

Cela revient "apprendre par cur" tous les rsultats de la fonction.

Cette solution est plus simple mettre en uvre, mais elle utilise plus
de surface sur le silicium.

De plus, elle nest utilisable que pour un nombre de variables logiques


limit.
Bourguiba Riad - ENIT 2007 - FPGA
C. Fonction logique programmable 33
LUT
i. Principe
ii. Technologie masques
iii. Technologie PROM
iv. Technologie EPROM (UV-EPROM)
v. Technologie EEPROM
vi. Technologie FLASH
vii. Technologie SRAM

Bourguiba Riad - ENIT 2007 - FPGA


34
ii. Technologie masques
Point mmoire

Bourguiba Riad - ENIT 2007 - FPGA


C. Fonction logique programmable 35
LUT
i. Principe
ii. Technologie masques
iii. Technologie PROM
iv. Technologie EPROM (UV-EPROM)
v. Technologie EEPROM
vi. Technologie FLASH
vii. Technologie SRAM

Bourguiba Riad - ENIT 2007 - FPGA


36
iii. Technologie PROM
Point mmoire

Bourguiba Riad - ENIT 2007 - FPGA


C. Fonction logique programmable 37
LUT
i. Principe
ii. Technologie masques
iii. Technologie PROM
iv. Technologie EPROM (UV-EPROM)
v. Technologie EEPROM
vi. Technologie FLASH
vii. Technologie SRAM

Bourguiba Riad - ENIT 2007 - FPGA


38
iv. Technologie EPROM
Point mmoire

Bourguiba Riad - ENIT 2007 - FPGA


39
iv. Technologie EPROM
Fonctionnement
Une surtension applique entre la grille de commande et le drain
attire des lectrons dans la grille flottante o ils restent pigs.

Un rayonnement ultraviolet permet de les librer.

Bourguiba Riad - ENIT 2007 - FPGA


40
iv. Technologie EPROM
Avantages
On peut reprogrammer la donne.
Le point mmoire est plus compact que pour une simple
PROM.
On va pouvoir crer des mmoires plus grandes.

Bourguiba Riad - ENIT 2007 - FPGA


C. Fonction logique programmable 41
LUT
i. Principe
ii. Technologie masques
iii. Technologie PROM
iv. Technologie EPROM (UV-EPROM)
v. Technologie EEPROM
vi. Technologie FLASH
vii. Technologie SRAM

Bourguiba Riad - ENIT 2007 - FPGA


42
v. Technologie EEPROM
Le point mmoire est celui dune EPROM, auquel on ajoute
un transistor qui ne servira que pour leffacement.

Inconvnient : la mmoire occupe deux fois plus de place


sur le silicium.

Bourguiba Riad - ENIT 2007 - FPGA


C. Fonction logique programmable 43
LUT
i. Principe
ii. Technologie masques
iii. Technologie PROM
iv. Technologie EPROM (UV-EPROM)
v. Technologie EEPROM
vi. Technologie FLASH
vii. Technologie SRAM

Bourguiba Riad - ENIT 2007 - FPGA


44
vi. Technologie FLASH
La mmoire FLASH est ne de la volont dacclrer
le processus de reprogrammation de lEEPROM.

Il existe plusieurs points mmoires optimiss,


exploitants diffrentes techniques.

Bourguiba Riad - ENIT 2007 - FPGA


C. Fonction logique programmable 45
LUT
i. Principe
ii. Technologie masques
iii. Technologie PROM
iv. Technologie EPROM (UV-EPROM)
v. Technologie EEPROM
vi. Technologie FLASH
vii. Technologie SRAM

Bourguiba Riad - ENIT 2007 - FPGA


46
vii. Technologie SRAM
Point mmoire

Rsistances

Interrupteurs Interrupteurs

Bourguiba Riad - ENIT 2007 - FPGA


47
vii. Technologie SRAM
Modle simplifi

Rsistances

Interrupteurs Interrupteurs

Bourguiba Riad - ENIT 2007 - FPGA


48
vii. Technologie SRAM
Ecriture de 0

1 1
0 0 1 1

1 0

Bourguiba Riad - ENIT 2007 - FPGA


49
vii. Technologie SRAM
Rtention de 0

0 0
0 1

1 0

Bourguiba Riad - ENIT 2007 - FPGA


50
vii. Technologie SRAM
criture de 1

1 1
1 1 0 0

0 1

Bourguiba Riad - ENIT 2007 - FPGA


51
vii. Technologie SRAM
Rtention de 1

0 0
1 0

0 1

Bourguiba Riad - ENIT 2007 - FPGA


52
2. Concepts fondamentaux
Quest-ce la logique programmable?
Fonction logique programmable circuit
combinatoire
Fonction logique programmable LUT
En rsum

Bourguiba Riad - ENIT 2007 - FPGA


53
D. En rsum

Bourguiba Riad - ENIT 2007 - FPGA


54
FPGA
1. Introduction
2. Concepts fondamentaux
3. A lorigine des FPGA
4. Les caractristiques des FPGA
5. La configuration

Bourguiba Riad - ENIT 2007 - FPGA


55
3. A lorigine des FPGA
A. Situation par rapport dautres
technologies
B. Les diffrentes familles de composants logiques
programmables
C. Les diffrentes familles de composants logiques
cbls
D. Les FPGA

Bourguiba Riad - ENIT 2007 - FPGA


A. Situation par rapport dautres 56
technologies
Dates dapparition de chaque technologie

Un certain temps peut tre ncessaire entre lapparition


dune technologie et son adoption par les ingnieurs.
Bourguiba Riad - ENIT 2007 - FPGA
57
3. A lorigine des FPGA
A. Situation par rapport dautres technologies
B. Les diffrentes familles de composants
logiques programmables
C. Les diffrentes familles de composants logiques
cbls
D. Les FPGA

Bourguiba Riad - ENIT 2007 - FPGA


B. Les diffrentes familles de composants
58
logiques programmables
i. Prsentation
ii. PROM
iii. PLA
iv. PAL et GAL
v. CPLD
vi. La mthode de dveloppement

Bourguiba Riad - ENIT 2007 - FPGA


59
i. Prsentation
Les premiers composants logiques programmables sont apparus au
dbut des annes 70.

Ils taient raliss par des mmoires PROM.

PLD : Programmable Logic Devices

Les PLD sont programmables grce aux techniques vues prcdemment


(antifusibles, etc.).
Bourguiba Riad - ENIT 2007 - FPGA
B. Les diffrentes familles de composants
60
logiques programmables
i. Prsentation
ii. PROM
iii. PLA
iv. PAL et GAL
v. CPLD
vi. La mthode de dveloppement

Bourguiba Riad - ENIT 2007 - FPGA


61
ii. PROM
PROM : Programmable ROM

Exemple :
3 bits dadresse
3 bits de donnes

Le rseau ET est fixe.

Le rseau OU est programmable.

Bourguiba Riad - ENIT 2007 - FPGA


62
ii. PROM
Exemple dapplication
a b c w x y
0 0 0 0 1 0
0 0 1 0 1 1
0 1 0 0 1 0
0 1 1 0 1 1
1 0 0 0 1 0
1 0 1 0 1 1
1 1 0 1 0 1
1 1 1 1 0 0

Fonction raliser Contenu de la PROM

Bourguiba Riad - ENIT 2007 - FPGA


63
ii. PROM

a b c w x y
0 0 0 0 1 0
0 0 1 0 1 1
0 1 0 0 1 0
0 1 1 0 1 1
1 0 0 0 1 0
1 0 1 0 1 1
1 1 0 1 0 1
1 1 1 1 0 0

Contenu de la PROM Programmation


Bourguiba Riad - ENIT 2007 - FPGA
64
ii. PROM
Les PROM ont surtout servi remplacer les amas de portes
logiques TTL ou CMOS sur circuit imprim (glue-logic).

Les gains obtenus sont :


Une circuit imprim plus simple router.

Une carte plus lgre.

Moins de sources de pannes mcaniques.

La possibilit de corriger la fonction logique, simplement en


programmant une nouvelle PROM.

Bourguiba Riad - ENIT 2007 - FPGA


B. Les diffrentes familles de composants
65
logiques programmables
i. Prsentation
ii. PROM
iii. PLA
iv. PAL et GAL
v. CPLD
vi. La mthode de dveloppement

Bourguiba Riad - ENIT 2007 - FPGA


66
iii. PLA
PLA : Programmable Logic Array

Exemple :
3 entres
3 sorties

Le rseau ET est programmable.


Le nombre de produits et
de sommes peuvent varier
Le rseau OU est programmable.
Bourguiba Riad - ENIT 2007 - FPGA
67
iii. PLA
Exemple dapplication

w=(a.c)+(b.c)

x=(a.b.c)+(b.c)

Y=(a.b.c)

Bourguiba Riad - ENIT 2007 - FPGA


68
iii. PLA
Curieusement, les PLA nont jamais rencontr le succs commercial.

Quelques fabricants se sont risqus dautres structures, telles que :


un rseau ET alimentant un rseau Non OU
un rseau Non ET alimentant un rseau Non OU
un rseau Non ET alimentant un rseau OU

Finalement, il est plus simple dutiliser un rseau ET alimentant un


rseau OU, tout simplement parce que cela reflte une criture courante
des fonctions logiques sous la forme dune somme de produits.

Les autres solutions ncessitent un traitement informatique de la


fonction pour gnrer le fichier de programmation.

Du fait que les deux rseaux sont programmables, les PLA sont plus
lents que les PROM.

Bourguiba Riad - ENIT 2007 - FPGA


B. Les diffrentes familles de composants
69
logiques programmables
Prsentation
PROM
PLA
PAL et GAL
CPLD
La mthode de dveloppement

Bourguiba Riad - ENIT 2007 - FPGA


70
iv. PAL et GAL
PAL : Programmable Array Logic

Pour amliorer les performances des PLA, on a fait le


complment dune PROM.

Rseau ET programmable

Rseau OU fixe

Bourguiba Riad - ENIT 2007 - FPGA


71
iv. PAL et GAL
Avantages
Un PAL est aussi rapide
quune PROM.

Inconvnients :
Un PAL est moins
souple quun PLA.

Le nombre de produits
combins est infrieur
celui dune PROM ou
dun PLA.

Bourguiba Riad - ENIT 2007 - FPGA


72
iv. PAL et GAL
GAL : Generic Array Logic

Pour compenser les dfauts du PAL, on va lui


ajouter :
des bascules optionnelles sur les sorties,
des sorties 3 tats,
la possibilit de reboucler les sorties vers le rseau ET,
la possibilit de transformer des sorties en entres,
etc.

Bourguiba Riad - ENIT 2007 - FPGA


B. Les diffrentes familles de composants
73
logiques programmables
Prsentation
PROM
PLA
PAL et GAL
CPLD
La mthode de dveloppement

Bourguiba Riad - ENIT 2007 - FPGA


74
v. CPLD
CPLD : Complex Programmable Logic Device

Dans la course lamlioration (toujours plus grand, toujours plus


rapide, toujours moins cher), deux circuits vont apparatre
sucessivement.

Dbut 80 : MegaPAL de Monolithic Memories Industries (MMI)

Circuit contenant 4 PAL connects entre eux par un rseau de connexions.

Sa consommation tait 4 fois celle dun simple PAL.

Il na pas vraiment connu de succs commercial, car il napportait pas


grand-chose : Si on peut mettre un PAL sur une carte imprime, alors on
peut souvent en mettre quatre.

Bourguiba Riad - ENIT 2007 - FPGA


75
v. CPLD
84 : CPLD par Altera
Combine la technologie CMOS celle de lEPROM.
Forte densit, avec faible consommation

Contrairement MMI, Altera ne connecte pas toutes les entres et toutes


les sorties des PAL au rseau de communication interne (car toutes les
connexions ne sont pas toujours utilises).
Rduction de la taille et du cot

Meilleures des performances

Bourguiba Riad - ENIT 2007 - FPGA


76
v. CPLD
Le logiciel, plus complexe, se charge de crer les fichiers de programmation
des ressources logiques et du rseau de communication programmable.

Finalement, quel que soit le fabricant, un CPLD contient :


Plusieurs PAL ou GAL

Un rseau de communication programmable

Bourguiba Riad - ENIT 2007 - FPGA


B. Les diffrentes familles de composants
77
logiques programmables
Prsentation
PROM
PLA
PAL et GAL
CPLD
La mthode de dveloppement

Bourguiba Riad - ENIT 2007 - FPGA


78
vi. La mthode de dveloppement
Les PLD sont apparus au moyen ge de linformatique.

Les ordinateurs taient rares, chers et peu performants.

Les logiciels de CAO taient rudimentaires.

La mthode de dveloppement des PLD tait donc base


principalement sur le papier et le crayon.

Dessiner le circuit logique.

Faire la correspondance avec larchitecture du PLD.

Identifier les connexions tablir ou celles supprimer.


Bourguiba Riad - ENIT 2007 - FPGA
79
vi. La mthode de dveloppement
1. Les consigner dans un fichier de texte avec une syntaxe spcifique
chaque fabricant.

3. Programmer le circuit partir de ce fichier et un programmateur.

Cette mthode de dveloppement est longue, ncessite de connatre


les dtails de chaque circuit et de chaque format de fichier. Bref, elle
est inefficace car source de nombreuses erreurs.

Bourguiba Riad - ENIT 2007 - FPGA


80
vi. La mthode de dveloppement
Heureusement, cette situation sest progressivement amliore :

1980 : Le format de fichier JEDEC (Joint Electron Device Engineering


Council) est adopt par les fabricants de programmateurs.

La mme anne, apparat le logiciel PALASM, qui gnre automatiquement


un fichier JEDEC partir des quations logiques crites dans le langage du
mme nom.

1983 : Le langage ABEL (Advanced Boolean Expression Language) est mis


au point par le fabricant de programmateurs Data I/O.

Simultanment, le langage CUPL apparat avec les outils associs de


synthse et doptimisation.

Les premiers langages HDL pour la logique programmable taient ns!

Bourguiba Riad - ENIT 2007 - FPGA


81
3. A lorigine des FPGA
Situation par rapport dautres technologies
Les diffrentes familles de composants logiques
programmables
Les diffrentes familles de composants
logiques cbls
Les FPGA

Bourguiba Riad - ENIT 2007 - FPGA


C. Les diffrentes familles de 82
composants logiques cbls
Prsentation
Full custom
Micromatrix et Micromosaic
Gate arrays
Standard cell
ASIC structurs

Bourguiba Riad - ENIT 2007 - FPGA


83
i. Prsentation
ASIC : Application Specific Integrated Circuit

Quatre classes dASIC peuvent tre identifies.

Nous allons les prsenter dans lordre chronologique


dapparition.
Bourguiba Riad - ENIT 2007 - FPGA
C. Les diffrentes familles de 84
composants logiques cbls
Prsentation
Full custom
Micromatrix et Micromosaic
Gate arrays
Standard cell
ASIC structurs

Bourguiba Riad - ENIT 2007 - FPGA


85
ii. Full custom
Aux dbuts de la microlectronique numrique (annes 50), tout tait
faire.

Il ny avait ni ordinateurs, ni CAO, ni librairies, ni rien du tout!

La conception des premiers circuits se faisait directement par le dessin


des masques des transistors, la rgle et au marqueur, sur des
transparents.

Les dimensions des transistors taient adaptes au cas par cas.

Les portes logiques taient dessines manuellement, puis leurs masques


taient recopis chaque instanciation dans le circuit.

Les ingnieurs avaient une libert totale, mais les designs restaient
simples cause de la complexit de la tche

Bourguiba Riad - ENIT 2007 - FPGA


C. Les diffrentes familles de 86
composants logiques cbls
Prsentation
Full custom
Micromatrix et Micromosaic
Gate arrays
Standard cell
ASIC structurs

Bourguiba Riad - ENIT 2007 - FPGA


87
iii. Micromatrix et Micromosaic
Milieu des annes 1960 : Pour acclrer le processus de conception,
Fairchild Semiconductor introduit la premire matrice de transistors
connecter (100 transistors) appele Micromatrix.

Les transistors taient dj dessins et les ingnieurs navaient plus qu


complter les masques de mtallisation avec des marqueurs :
en vert les connexions verticales,

en rouge, les connexions horizontales,

Avec dautres couleurs, les vias (connexions entre couches diffrentes)

Les ingnieurs se concentrent alors sur leur circuit, plus sur la taille ou
lorientation des transistors.

Bourguiba Riad - ENIT 2007 - FPGA


88
iii. Micromatrix et Micromosaic
1967 : Fairchild Semiconductor ritre sa premire
exprience avec une autre matrice appele Micromosaic qui
contient plusieurs centaines de transistors connecter.

Cette fois ci, on range la table dessin au placard et on


allume lordinateur :
Lingnieur crit ses quations dans un fichier.
Lordinateur dessine automatiquement les masques des connexions.

Une vraie rvolution pour lpoque!

Bourguiba Riad - ENIT 2007 - FPGA


C. Les diffrentes familles de 89
composants logiques cbls
Prsentation
Full custom
Micromatrix et Micromosaic
Gate arrays
Standard cell
ASIC structurs

Bourguiba Riad - ENIT 2007 - FPGA


90
iv. Gate arrays
Fin des annes 60, le japonais Fujitsu comme lamricain IBM tendent le
concept de transistors prts connecter, celui de portes logiques prtes
connecter.

En fait, les gate arrays sont des matrices de cellules interconnecter.

Chaque fabricant a dfinit sa cellule, selon ses propres critres dintrt.

Dabord rserv un usage strictement interne, cette technologie sera mise sur
le march au milieu des annes 70.

Bourguiba Riad - ENIT 2007 - FPGA


91
iv. Gate arrays
Les cellules peuvent tre disposes de 3 faons diffrentes :
Avec canal de routage (channeled gate array) :
Simple colonne
Double colonne
Sans canal de routage (channel free gate array, sea of gates)

Bourguiba Riad - ENIT 2007 - FPGA


92
iv. Gate arrays
Les ingnieurs dcrivent leur circuit de portes logiques dans
un logiciel de CAO.

Le logiciel effectue
loptimisation,
Simplification du schma et/ou des quations logiques.

le mapping,
Mise en correspondance des portes logiques et des cellules.

le placement,
Distribution des portes sur les cellules.

le routage.
Connexion des cellules.

Bourguiba Riad - ENIT 2007 - FPGA


93
iv. Gate arrays
Le cot de fabrication est considrablement rduit,
puisque :
Les cellules sont pr-graves en masse sur plusieurs tranches de
silicium.

Seuls les masques des couches de mtallisation sont spcifiques.

Par contre, cela se paie au niveau des performances et de la


consommation :
Le placement des cellules est contraint.

De lespace vide est perdu dans les canaux.

Des cellules sont non utilises.

Le routage est sous-optimal.


Bourguiba Riad - ENIT 2007 - FPGA
C. Les diffrentes familles de 94
composants logiques cbls
Prsentation
Full custom
Micromatrix et Micromosaic
Gate arrays
Standard cell
ASIC structurs

Bourguiba Riad - ENIT 2007 - FPGA


95
v. Standard cell
Pour gommer les inconvnients des gate arrays, les fabricants dASIC ont
propos au dbut des annes 80 des bibliothques de cellules logiques
connecter.

Ces cellules sont dj testes et ont des formes standardises, qui permettent
de les juxtaposer comme les pices dun puzzle, pour construire des modules
logiques plus gros.

AND NOT D flip flop

Des outils de CAO gnrent une netlist de cellules (liste de cellules


interconnectes) partir de la description du schma.

Seules les cellules ncessaires seront graves sur le silicium, ce qui rduit la
surface, vite le gaspillage, diminue la consommation et augmente les
performances.
Bourguiba Riad - ENIT 2007 - FPGA
C. Les diffrentes familles de 96
composants logiques cbls
Prsentation
Full custom
Micromatrix et Micromosaic
Gate arrays
Standard cell
ASIC structurs

Bourguiba Riad - ENIT 2007 - FPGA


97
v. ASIC structurs
Depuis 2003, on voit apparatre une nouvelle gamme dASIC
inspirs des gate arrays.

Cette fois ci, la cellule de base (module ou tile) va combiner


des portes logiques, des bascules et une SRAM locale.

Bourguiba Riad - ENIT 2007 - FPGA


98
v. ASIC structurs
Cette cellule va tre rplique en une matrice travers tout le circuit.

Il ne restera plus qu effectuer les connexions.

Des lments spcifiques supplmentaires (PLL, I/O srie, tampons trois


tats, etc.) seront ajouts en priphrie.
Bourguiba Riad - ENIT 2007 - FPGA
99
3. A lorigine des FPGA
Situation par rapport dautres technologies
Les diffrentes familles de composants logiques
programmables
Les diffrentes familles de composants logiques
cbls
Les FPGA

Bourguiba Riad - ENIT 2007 - FPGA


100
D. Les FPGA
Origine
Structure
Platform FPGA
Hybrides FPGA-ASIC
Un mot sur la conception des FPGA

Bourguiba Riad - ENIT 2007 - FPGA


101
i. Origine
Au dbut des annes 80, on pouvait distinguer 2 types de
circuits numriques.

Les PLD Les ASIC


Hautement configurables Grandes performances
Cycle de dveloppement Haute densit dintgration
rapide Cycle de dveloppement
Systmes modifiables extrmement long
Capacit dintgration limite Aucune modification nest
possible.

Bourguiba Riad - ENIT 2007 - FPGA


102
i. Origine
Comment combler le gouffre (gap) entre deux technologies?

Bourguiba Riad - ENIT 2007 - FPGA


103
i. Origine
En 1984, Xilinx tente dapporter une rponse en proposant
le premier FPGA.

FPGA : in Field Programmable Gate Array

Les premiers FPGA utilisent une technologie CMOS et des


cellules base de LUT (SRAM) disposes en matrice.

Un design (projet, systme) sera dcompos en cellules et


plac sur la matrice.

Cette structure simple est encore utilise aujourdhui.

Bourguiba Riad - ENIT 2007 - FPGA


104
D. Les FPGA
Origine
Structure
Platform FPGA
Hybrides FPGA-ASIC
Un mot sur la conception des FPGA

Bourguiba Riad - ENIT 2007 - FPGA


105
ii. Structure
La cellule ou PLB (Programmable Logic Block) contient
principalement une LUT (Look Up Table) 3 entres/1
sortie, un multiplexeur et un verrou/bascule.

Bourguiba Riad - ENIT 2007 - FPGA


106
ii. Structure

La LUT peut tre programme pour raliser nimporte quelle fonction logique
3 entres.

Le verrou/bascule peut tre programm pour raliser nimporte quel latch


(verrou) ou flip-flop (bascule), avec ou sans :
set ou reset,
enable ou disable

Le multiplexeur permet de stocker la sortie de la LUT ou une entre du PLB.

Bourguiba Riad - ENIT 2007 - FPGA


107
ii. Structure
Exemple
On veut raliser la fonction logique suivante :

y = a & b | !c
(y = a and b or not c)

Il suffit dcrire la table de vrit dans la LUT.

Bourguiba Riad - ENIT 2007 - FPGA


108
ii. Structure
Les cellules sont disposes en matrice et entoures de ressources de routage galement
configurables.

Au dmarrage du systme, les LUT sont programmes, ainsi que les blocs
dinterconnexion.

Dautres ressources non reprsentes se trouvent en priphrie du FPGA (I/O pad)

Bourguiba Riad - ENIT 2007 - FPGA


109
ii. Structure
switch matrix
Le rseau de routage est hirarchis.

Niveau 3
cellule
Niveau 2

Niveau 1

Niveau 1 : connecte des cellules voisines (propagation de retenues)

Niveau 2 : permet de sauter une cellule (communication courte distance)

Niveau 3 : permet de sauter 3 cellules (communication moyenne distance)

Selon le FPGA, le nombre de niveaux et leur porte varie.


Bourguiba Riad - ENIT 2007 - FPGA
110
ii. Structure
La structure simple, intrinsquement parallle,
dense et hautement configurable a permis aux
FPGA de combler effectivement le vide entre PLD et
ASIC.

Ils allient la configurabilit et la facilit de


conception des PLD, la complexit des ASIC et
leur grandes capacit dintgration.

Bourguiba Riad - ENIT 2007 - FPGA


111
D. Les FPGA
Origine
Structure
Platform FPGA
Hybrides FPGA-ASIC
Un mot sur la conception des FPGA

Bourguiba Riad - ENIT 2007 - FPGA


112
iii. Platform FPGA
La concept de plateforme de rfrence ou de design de
rfrence vient du monde des circuits imprims.

Elle dsigne un systme servant de rfrence, duquel on peut


driver plusieurs version adaptes des problmes proches.

Avec leurs capacits accrues, les FPGA intgrent aujourdhui de


nombreuses ressources (cellules logiques, multiplieurs, RAM, CPU,
entres/sorties srie rapides, ).

Un FPGA peut donc contenir un vritable design de rfrence.

Un tel composant est appel Platform FPGA.

Bourguiba Riad - ENIT 2007 - FPGA


113
D. Les FPGA
Origine
Structure
Platform FPGA
Hybrides FPGA-ASIC
Un mot sur la conception des FPGA

Bourguiba Riad - ENIT 2007 - FPGA


114
iv. Hybrides FPGA-ASIC
Le cot lev dun ASIC et sa structure fige dans
le silicium limite son utilisation.

Pour remdier cela, des hybrides FPGA-ASIC sont


ns la fin des annes 90 :
La partie cble ralise la fonction commune une
classe dapplication.

La partie programmable ralise la fonction spcifique


chaque application cible et permet des volutions.

Bourguiba Riad - ENIT 2007 - FPGA


115
iv. Hybrides FPGA-ASIC
De plus, ces hybrides rduisent la taille et le cot des
systmes o cohabitaient cte cte un circuit ASIC et un
circuit FPGA.

Bourguiba Riad - ENIT 2007 - FPGA


116
D. Les FPGA
Origine
Structure
Platform FPGA
Hybrides FPGA-ASIC
Un mot sur la conception des FPGA

Bourguiba Riad - ENIT 2007 - FPGA


v. Un mot sur la conception 117
des FPGA
On distingue trois acteurs dans le monde FPGA :
le fabricant/concepteur du FPGA
Il conoit la structure du FPGA, dveloppe les outils de
mapping/placement/routage et fabrique le FPGA.

le fabricant/concepteur dun systme


Il conoit un systme numrique, le spcifie en langage
HDL et achte les FPGA pour les programmer.

lutilisateur final
Il achte le systme pour rpondre un besoin
particulier.

Bourguiba Riad - ENIT 2007 - FPGA


v. Un mot sur la conception 118
des FPGA
Les FPGA sont des ASIC full custom un peu particuliers.

Leur rle consiste simuler le fonctionnement de circuits logiques


quelconques.

Ils y parviennent grce leur architecture hautement parallle et


programmable.

Les fabricants/concepteurs de FPGA les conoivent comme des ASIC.

Au cours du placement et du routage, il leur suffit de dessiner


soigneusement les masques de chaque ressource (cellule, RAM, ) une
seule fois, puis de les copier/coller sur toute la surface du silicium.

Les fabricants/concepteurs de systme viendront ensuite programmer


ces circuits selon les besoins de lutilisateur final.

Bourguiba Riad - ENIT 2007 - FPGA


119
FPGA
n Introduction
n Concepts fondamentaux
n A lorigine des FPGA
n Les caractristiques des FPGA
n La configuration

Bourguiba Riad - ENIT 2007 - FPGA


120
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
121
A. Introduction
Nous allons passer en revue les diffrentes
caractristiques des FPGA.

Lvolution technologique tant trs rapide dans ce


domaine, elles changent sans arrt.

Pour information, les principaux fabricants de FPGA sont :


Xilinx, Altera, Actel, Atmel, Lattice, Cypress

Dun fabricant lautre, les fonctions disponibles sont


variables et implmentes avec diverses adaptations.
Bourguiba Riad - ENIT 2007 - FPGA
122
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
123
B. Technologie
SRAM
Antifusibles
EPROM et FLASH
Hybrides FLASH/SRAM
Rsum

Bourguiba Riad - ENIT 2007 - FPGA


124
i. SRAM
La majorit des FPGA sont bass sur la SRAM.

Le FPGA est programm (configur) chaque


dmarrage.

EPROM
FPGA
ou FLASH
SRAM
(configuration)

Bourguiba Riad - ENIT 2007 - FPGA


125
i. SRAM
Elle permet de reprogrammer un FPGA une infinit de fois.

Un design peut tre mis jour au cours de la vie du produit,


en fonction de lvolution des standards.

Un systme peut exploiter cette reconfiguration en cours de


fonctionnement pour effectuer plusieurs tches.

Exemple :
Programmation dun design de diagnostic systme,
puis programmation de lapplication principale.

Bourguiba Riad - ENIT 2007 - FPGA


126
i. SRAM
Un avantage majeur vient du fait que la SRAM est la pointe de la
technologie.

Ce type de FPGA bnficie donc directement des lourds investissements en


Recherche et Dveloppement (R&D) faits par les compagnies spcialises
dans la SRAM pour amliorer les performances.

Auparavant, les SRAM servaient de rfrence pour la qualification des


nouvelles technologies CMOS.

Aujourdhui, leur structure rgulire avec des motifs complexes et aux tailles
varies ont permis aux FPGA de leur ravir cette place.

Exemple :
IBM et UMC ont choisit les FPGA Xilinx pour mettre au point leur technologie
CMOS 90 nanomtres.

Bourguiba Riad - ENIT 2007 - FPGA


127
i. SRAM
Malheureusement, tous ces avantages ont un cot :
La configuration chaque dmarrage ncessite une mmoire
de stockage externe pour les configurations

Un processeur peut aussi tre ncessaire dans certains cas


dutilisation.

Il en rsulte des cartes imprimes :


plus grandes et plus compliques => plus chres concevoir et
fabriquer

qui consomment plus dnergie => autonomie plus faible

et qui cotent finalement plus dargent

Bourguiba Riad - ENIT 2007 - FPGA


128
i. SRAM
Aspects scurit
Ils sont de plus en plus importants dans un contexte de
concurrence acharne.

En fait, il faut plutt parler de confidentialit.

Si les donnes de configuration sont stockes dans un composant


externe, il suffit despionner les signaux entre ce composant et le
FPGA pour reconstituer lensemble des donnes.

Mme sil est difficile de remonter au schma ou au code HDL, il


reste tout de mme possible de reproduire le systme, mme
sans rien comprendre la conception de circuits numriques!

Ce risque est inacceptable pour les applications militaires.

Bourguiba Riad - ENIT 2007 - FPGA


129
i. SRAM
La solution imagine repose sur le cryptage des donnes
de configuration.
La mmoire externe contient la configuration crypte.

Un registre interne du FPGA contient la cl de dcryptage.

Au moment de la configuration, la cl permet de dcoder les


donnes.

Mais encore une fois tout un prix :


Le FPGA tant base sur la SRAM, le registre ne peut conserver
la cl sans une batterie externe.

La batterie externe ncessite un circuit de recharge.

La batterie et son circuit ne sont pas gratuits


Bourguiba Riad - ENIT 2007 - FPGA
130
B. Technologie
SRAM
Antifusibles
EPROM et FLASH
Hybrides FLASH/SRAM
Rsum

Bourguiba Riad - ENIT 2007 - FPGA


131
ii. Antifusibles
Cet autre type de FPGA est programm une fois pour toutes.

Programmation lors de la fabrication du systme lectronique, avec un


programmateur spcifique.

Avantages :
Les donnes de configuration sont non volatiles.

Pas besoin de mmoire externe, do une rduction du cot de la carte PCB


(Printed Circuit Board).

Protection du design par un bit de scurit qui empche la relecture de la


configuration.

Plus dense donc plus rapide : les transistors sont plus petits et les pistes
plus courtes.

Bourguiba Riad - ENIT 2007 - FPGA


132
ii. Antifusibles
Consommation plus faible quavec la SRAM :
La circuiterie destine la programmation contient moins de
transistors.

Elle est dfinitivement dsactive une fois le circuit configur.

Bonne rsistance des donnes de configuration aux radiations :


Ltat dun antifusible ne peut pas tre chang par des radiations
lectromagntiques.

Possibilit dutilisation dans les applications militaires et spatiales.

Par contre le contenu des bascules peut changer

=> Prvoir de la redondance et des mcanismes de vote.

Bourguiba Riad - ENIT 2007 - FPGA


133
ii. Antifusibles
Inconvnients :
Limpossibilit de reprogrammer les circuits limite leur utilisation.

Le process technologique de fabrication des circuits antifusibles


ncessite 3 tapes supplmentaires par rapport la technologie
CMOS standard.

La qualification (certification) de ces tapes retarde la mise en


exploitation des chanes de fabrication.

Les FPGA antifusibles ont toujours au moins une technologie de


retard par rapport aux FPGA SRAM.

Les performances sont comparables, voir infrieures.


Bourguiba Riad - ENIT 2007 - FPGA
134
B. Technologie
SRAM
Antifusibles
EPROM et FLASH
Hybrides FLASH/SRAM
Rsum

Bourguiba Riad - ENIT 2007 - FPGA


135
iii. EPROM et FLASH
Ces FPGA sont reprogrammables, mais ncessitent 3 fois
plus de temps que pour ceux base de SRAM.

Avantages :
Ils ne perdent pas leur configuration avec une coupure
dalimentation.

Oprationnels ds la mise sous-tension.

Protection par cl binaire :


Une fois le FPGA programm, on charge une cl pour protger la
configuration contre la relecture.

Toute relecture ne sera possible quaprs rechargement de la cl.

Bourguiba Riad - ENIT 2007 - FPGA


136
iii. EPROM et FLASH
Plus rapides que les FPGA SRAM :
Le point mmoire tant plus petit, les FPGA EPROM ou
FLASH sont plus compacts, donc plus rapides.

Inconvnients :
Leur procd de fabrication ncessit 5 tapes
supplmentaires par rapport la technologie CMOS
standard.

Ils ont toujours plusieurs technologies de retard

Ils contiennent plusieurs rsistances de pull-up, ce qui


augmente considrablement la consommation statique.
Bourguiba Riad - ENIT 2007 - FPGA
137
B. Technologie
SRAM
Antifusibles
EPROM et FLASH
Hybrides FLASH/SRAM
Rsum

Bourguiba Riad - ENIT 2007 - FPGA


138
iv. Hybrides FLASH/SRAM
Nouveaut encore assez rare.

La Flash est prprogramme.

Au dmarrage, elle est copie dans la SRAM.

La configuration est non volatile.

Le systme dmarre quasi-instantanment.

La FLASH peut tre reprogramme pendant le fonctionnement du


systme.

Les donnes de configuration sont protges par cl.

Bourguiba Riad - ENIT 2007 - FPGA


139
B. Technologie
SRAM
Antifusibles
EPROM et FLASH
Hybrides FLASH/SRAM
Rsum

Bourguiba Riad - ENIT 2007 - FPGA


140
v. Rsum

Bourguiba Riad - ENIT 2007 - FPGA


141
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
142
C. Taille du grain logique
La structure des FPGA est constitue de blocs logiques (lots) disperss
dans un rseau de connexions programmables (mer) .

On parle de mer de portes (sea of gates)

Bourguiba Riad - ENIT 2007 - FPGA


143
C. Taille du grain logique
Il est courant de classer les FPGA selon 2 catgories :

FPGA grain fin (fine grained)


La taille des blocs logiques est lmentaire. Typiquement, elle permet de raliser
une fonction combinatoire 4 entres et une bascule.

Structure intressante pour les architectures massivement parallles.

Algorithmes de synthse proches des ASIC standard cells.

Trs en vogue dans les annes 90.

FPGA gros grain (coarse grained)


Les blocs logiques lmentaires permettent de raliser plusieurs fonctions
combinatoires simultanment, ainsi que plusieurs bascules.

Tendent supplanter les premiers depuis dbut 2000.

Bourguiba Riad - ENIT 2007 - FPGA


144
C. Taille du grain logique
Le rapport portes logiques/ressources de routage tend diminuer quand
la taille du grain augmente :
Les communications qui avaient lieu entre petits blocs proches ont lieu
lintrieur dun bloc plus gros.

Les pertes de temps dues aux communications, et qui occupent la majorit


du temps de cycle dans un FPGA, diminuent.

=> Les FPGA coarse grained sont plus performants de ce point de vue.

Certains fabricants de circuits poussent lide jusqu assembler des


blocs algorithmiques (FFT, DCT, CPU, ) dans un interconnect
programmable pour crer des supers composants programmables.

Du coup les FPGA gros grain sont dornavant classs FPGA grain
moyen (medium grained).

Bourguiba Riad - ENIT 2007 - FPGA


145
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
146
D. Cellules Logiques
Introduction
Cellules multiplexeurs vs cellules LUT
Exemple : les cellules logiques de Xilinx

Bourguiba Riad - ENIT 2007 - FPGA


147
i. Introduction
La cellule logique est llment de base de
ralisation des fonctions logiques et/ou
squentielles dans un FPGA.

Les solutions existantes sont trs varies et


constituent une vraie jungle, o les chemins se
croisent.

Plutt que de prsenter chaque solution


indpendamment, nous avons prfr procder par
comparaison.
Bourguiba Riad - ENIT 2007 - FPGA
148
D. Cellules Logiques
Introduction
Cellules multiplexeurs vs cellules LUT
Exemple : les cellules logiques de Xilinx

Bourguiba Riad - ENIT 2007 - FPGA


ii. Cellules multiplexeurs vs 149
cellules LUT
Il existe deux types de cellules apparues
spontanment.

Pour les illustrer prenons un exemple, raliser la


fonction logique suivante avec chaque type de
cellule :
y=(a&b)|c

Bourguiba Riad - ENIT 2007 - FPGA


ii. Cellules multiplexeurs vs 150
cellules LUT
Solution avec cellule multiplexeur

Chaque entre du block peut tre programm pour recevoir 0, 1, un


signal (a,b,c) ou son inverse (!a,!b,!c).
Bourguiba Riad - ENIT 2007 - FPGA
ii. Cellules multiplexeurs vs 151
cellules LUT
Solution avec cellule LUT

La table de vrit est programme dans une RAM.


Les entres constituent une adresse qui va pointer vers la case
contenant le rsultat
Bourguiba Riad - ENIT 2007 - FPGA
ii. Cellules multiplexeurs vs 152
cellules LUT
Comparaison
Les cellules multiplexeurs ont une approche plutt
circuit, alors que les cellules LUT ont une approche
plutt table de vrit.

Lapproche circuit peut se faire la main, tandis que


lapproche table de vrit ncessite des outils de CAO.

Aujourdhui, plus personne ne travaille la main et les


performances obtenues par les cellules LUT pour les
oprations arithmtiques ont balay les cellules
multiplexeurs.
Bourguiba Riad - ENIT 2007 - FPGA
ii. Cellules multiplexeurs vs 153
cellules LUT
Une LUT? Oui, mais avec combien dentres?
La taille de la LUT est double pour chaque bit dentre
supplmentaire. Il faut donc choisir ce nombre avec
prcaution.

Plusieurs recherches prives et universitaires ont explor


les avantages et inconvnients pour 1,2,3,4,5,6,
entres.

Il semble quun quilibre entre avantages et


inconvnients soit obtenu pour 4 entres.

Bourguiba Riad - ENIT 2007 - FPGA


ii. Cellules multiplexeurs vs 154
cellules LUT
Autres facettes dune LUT dans les FPGA SRAM
Une LUT 4 entres est en fait une SRAM 1 bit x 16.
=> On peut utiliser cette SRAM pour stocker des donnes !
On appelle cette mmoire la mmoire distribue (distributed RAM).

Parfois, la mmoire de configuration est traite comme un long registre


dcalage.
=> Les LUT peuvent alors servir raliser des registres dcalages !
Bourguiba Riad - ENIT 2007 - FPGA
155
D. Cellules Logiques
Introduction
Cellules multiplexeurs vs cellules LUT
Exemple : les cellules logiques de Xilinx

Bourguiba Riad - ENIT 2007 - FPGA


iii. Exemple : les cellules logiques 156
de Xilinx
LC : Logic Cell

LUT 4 entres multi-


facettes

Bascule entirement
configurable (polarit du
reset, front actif dhorloge)

Bourguiba Riad - ENIT 2007 - FPGA


iii. Exemple : les cellules logiques 157
de Xilinx
Deux LC sont assembls
pour former un slice.

Les signaux de contrle


(reset, clk, enable) sont
partags.

Bourguiba Riad - ENIT 2007 - FPGA


iii. Exemple : les cellules logiques 158
de Xilinx
Quatre slices forment un CLB (Configurable Logic Block).

Cette hirarchie reflte la hirarchie du routage :


On communique plus vite lintrieur dun LC quentre deux LC distincts.
On communique plus vite lintrieur dun slice quentre deux slices
distincts.
On communique plus vite lintrieur dun CLB quentre deux CLB distincts.

Bourguiba Riad - ENIT 2007 - FPGA


iii. Exemple : les cellules logiques 159
de Xilinx
Les ressources de routages internes un CLB permettent
dassembler les LUT pour crer des mmoires distribues et des
registres dcalage encore plus grands.
Simple port : 16 x 8, 32x4, 64x2, 128x1

Double port : 16x4, 32x8, 64x1

de transmettre rapidement les retenues entre tages dun oprateur


arithmtique.

Les ressources de routage externes tendent ces


fonctionnalits aux CLB adjacents.

Bourguiba Riad - ENIT 2007 - FPGA


160
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
161
E. Mmoire intgre
Les oprateurs de calcul travaillent sur des gros volumes de donnes
quil faut pouvoir stocker.

Au dpart le stockage tait externe, mais le temps daccs a commenc


devenir pnalisant au fur et mesure que les performances des FPGA
ont augment.

Pour rduire ce temps, les constructeurs ont ajout des blocs de


mmoire interne.

Ces blocs crent une hirarchie mmoire :


Mmoire externe grande et lente daccs.

Mmoire interne petite mais trs rapide.

Les mmoires internes jouent un peu le rle de cache de donnes.

Bourguiba Riad - ENIT 2007 - FPGA


162
E. Mmoire intgre
Ces blocks portent le nom de mmoire intgre (embedded RAM).

Ils peuvent tre localiss :


en priphrie de la matrice,
parpills travers la matrice,
ou en colonnes dans la matrice.

Bourguiba Riad - ENIT 2007 - FPGA


163
E. Mmoire intgre
Un bloc de mmoire intgre une taille de lordre
de quelques milliers de bits.

Ces blocs existent en quantit variable dun FPGA


lautre : dune dizaine quelques centaines.

Ils peuvent tre assembls pour crer des


mmoires dune capacit de plusieurs kilo bits.

Utilisations : FIFO, LIFO, RAM, ROM, banque de


registres,
Bourguiba Riad - ENIT 2007 - FPGA
164
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
165
F. Bloc DSP
Pour acclrer les applications de traitement du signal, certains FPGA
embarquent des blocs DSP, galement appels cellules MAC (Multiply
Accumulate).

Ils contiennent des oprateurs arithmtiques et squentiels (addition,


soustraction, multiplication, registre, ) cbls donc plus rapides que sils taient
programms dans des cellules du FPGA.

Bourguiba Riad - ENIT 2007 - FPGA


166
F. Bloc DSP
Les oprateurs sont configurables et extensibles par assemblage.

Ils sont gnralement positionns ct des mmoires intgres, pour


raliser des calculs DSP avec buffer circulaire.

Bourguiba Riad - ENIT 2007 - FPGA


167
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
168
G. Curs de processeur
Hard, soft, comment choisir?
Cur de processeur cbl
Cur de processeur programm

Bourguiba Riad - ENIT 2007 - FPGA


169
i. Hard ou soft, comment choisir?
Rappels :
Un ASIC numrique est une circuit non
programmable, conu par code HDL.

Un FPGA est une ASIC programmable dune manire


matrielle (HDL).

Un CPU est un ASIC programmable dune manire


logicielle (C, C++, ).

On peut programmer un FPGA pour placer dedans


un CPU.

Bourguiba Riad - ENIT 2007 - FPGA


170
i. Hard ou soft, comment choisir?
Un processeur dans un FPGA donne le choix entre une ralisation
logicielle (software) ou matrielle (hardware).

Cela suscite des questions lgitimes :


Pourquoi utiliser un FPGA pour faire du logiciel?
Comment choisir entre hard et soft?

En fait, toute application peut-tre dveloppe en logiciel comme


en matriel.

Parmi les diffrences, on trouve principalement :


(Matriel) (Logiciel)
Le temps de dveloppement long court
Vitesse dexcution rapide lente
Les possibilits de modification faibles infinies

Bourguiba Riad - ENIT 2007 - FPGA


171
i. Hard ou soft, comment choisir?
Si seul le temps dexcution nous intresse, alors on peut choisir
en fonction du dlai de rponse de notre application temps-rel :

Nanosecondes
Ne peut tre ralis que par un circuit lectronique (FPGA ou ASIC)

Microsecondes
Les deux solutions sont possibles et il faut les envisager
srieusement toutes les deux avant de faire un choix . Cest l
quintervient lexprience et le savoir-faire de lingnieur

Millisecondes
Traite en gnral linterface homme/machine (gestion des LED,
lecture des boutons, commande des actionneurs, ). Inutile de
mettre un FPGA, un processeur suffit largement et cote moins
cher.

Bourguiba Riad - ENIT 2007 - FPGA


172
i. Hard ou soft, comment choisir?
En ralit, les critres de choix sont bien plus complexes. Ils
doivent tenir compte dautres facteurs:
Temps de conception
Exprience/temps de formation ncessaire
Cot
Disponibilit

2. Le choix reste donc une affaire de compromis.

4. Aujourdhui, les applications sont ralises avec des systmes


intgrant la fois du logiciel et du matriel, sous la forme de
processeur(s) et de coprocesseur(s).

6. Lorsque ces deux parties sont intgres dans un mme circuit, on


parle de SoC (System on a Chip).

Bourguiba Riad - ENIT 2007 - FPGA


173
G. Curs de processeur
1. Hard, soft, comment choisir?
2. Cur de processeur cbl
3. Cur de processeur programm

Bourguiba Riad - ENIT 2007 - FPGA


174
ii. Cur de processeur cbl
Processeur cbl : cest un processeur qui est directement grav sur le silicium.

Il existe deux approches :


Processeur embarqu ct du FPGA dans un mme botier (a)
Processeurs enfouis dans la matrice FPGA elle-mme (b)

(a) (b)
Bourguiba Riad - ENIT 2007 - FPGA
175
ii. Cur de processeur cbl
Processeur embarqu ct du Processeur enfoui dans la
FPGA dans un mme botier matrice FPGA elle-mme
Le processeur est intgr dans une Le processeur est intimement li
"bande" (stripe) qui peut contenir la matrice programmable.
des priphriques supplmentaires.
Le logiciel de dveloppement du
Le FPGA et le stripe sont disposs FPGA doit tenir compte du
cte cte dans un mme botier. processeur.

Avantage : le cur du FPGA est le Avantage : la communication FPGA/


mme, avec ou sans stripe. CPU est plus efficace.

Avantage : les logiciels de Avantage : le nombre de


dveloppement pour le FPGA ne processeurs augmente avec
changent pas. ltendue de la matrice logique.

Ex. : la famille ARM Excalibur Ex. : la famille de Virtex II Pro de


dAltera (ARM9) Xilinx (PowerPC 405)

Bourguiba Riad - ENIT 2007 - FPGA


176
G. Curs de processeur
Hard, soft, comment choisir?
Cur de processeur cbl
Cur de processeur programm

Bourguiba Riad - ENIT 2007 - FPGA


177
iii. Cur de processeur programm
Processeur programm : cest un processeur qui est programm en HDL sur la
matrice logique.

Ils sont plus simples que les processeurs cbls.

Leur performances sont infrieures et reprsentent 30 50 % de leur quivalent


cbl.

Certains sont des modles de processeurs ayant exists et sont 100% portables
(Leon, 8086, 8051, ).

Dautres sont spcfiques une famille de FPGA particulire (Nios dAltera,


Microblaze de Xilinx, ).

Avantages :
Ils ne dpendent pas de la technologie silicium ni des circuits.

Ils sont censs garantir la prennit des projets pendant plusieurs dizaines dannes.

Bourguiba Riad - ENIT 2007 - FPGA


178
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
179
H. Distribution des horloges
Les FPGA contiennent des bascules D qui doivent tre parfaitement
synchroniss.

Cela seffectue par la distribution dune, ou plusieurs horloges.

Typiquement, lhorloge est gnre lextrieur du FPGA et est injecte par une
broche ddie, avant daller alimenter un arbre de distribution qui arrose son
tour chaque bascule D du circuit.

Bourguiba Riad - ENIT 2007 - FPGA


180
H. Distribution des horloges
La forme de larbre est primordiale pour maintenir une
parfaite synchronisation entre deux bascules, quelles que
soient leurs positions travers la matrice.

Les pistes de cet arbre sont spares des pistes de routage


des autres signaux, afin de prserver ses qualits.

En ralit, quelle que soit la structure de larbre choisie, il


existe toujours un lger dphasage (skew) quil faut
maintenir dans un domaine raisonnable.

Aussi, les plus gros FPGA sont dcoups en secteurs qui


possdent chacun son arbre dhorloge, et le passage dun
secteur lautre suppose une resynchronisation.

Bourguiba Riad - ENIT 2007 - FPGA


181
H. Distribution des horloges
Mais avant tout, il faut que la qualit de lhorloge externe
soit irrprochable. Hors cest rarement le cas

Les FPGA comportent donc un block de remise en forme et


de gestion des horloges base de PLL ou DLL.

Bourguiba Riad - ENIT 2007 - FPGA


182
H. Distribution des horloges
Suppression de la jigue (jitter)
En raison de phnomnes lectromagntiques, la
priode de lhorloge peut ne pas tre trs stable.

Le gestionnaire dhorloge est capable de la stabiliser.

Bourguiba Riad - ENIT 2007 - FPGA


183
H. Distribution des horloges
Multiplication de frquence

Dphasage

Bourguiba Riad - ENIT 2007 - FPGA


184
H. Distribution des horloges
Annulation du dphasage de lentre

Bourguiba Riad - ENIT 2007 - FPGA


185
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
186
I. Entres/sorties
Les FPGA actuels peuvent comporter jusqu un millier dentres/sorties.

Celles-ci sont distribues travers la matrice (botier flip-chip), mais pour des raisons de
simplicit on les reprsente en priphrie.

Il faut distinguer une entre/sortie (sur le cur silicium) dune broche (sur le botier).

Toutes les entres/sorties dun FPGA ne sont pas ncessairement connectes aux broches du
boitier.

Un mme cur FPGA peut exister avec diffrentes formes de botier, contenant plus ou moins
de broches.
Bourguiba Riad - ENIT 2007 - FPGA
187
I. Entres/sorties
Les entres/sorties sont organises en banques paramtrables.

Les paramtres permettent de se conformer diffrents standards lectriques et contourner les


problmes de forme du signal.

Impdance configurable
Elle permet de grer le problmes dadaptation dimpdance grce des rsistances intgres au
niveau des entres/sorties.

Tension configurable
La tension dalimentation du cur FPGA na souvent plus rien voir avec la tension utilise sur
la carte. De plus, cette dernire ne cesse de diminuer. Aussi, un paramtre permet de
slectionner la tension externe.

Bourguiba Riad - ENIT 2007 - FPGA


188
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
189
J. Liens Gigabit
Au dbut des systmes numriques, la communication entre
composants dune mme carte seffectuait laide de bus
parallles. Les bus avaient alors une largeur de 8 bits.

Mais avec le progrs des circuits, ils se sont successivement


largis 16, 32 et 64 bits. Ce qui a engendr des problmes
dintgrit des signaux
Bourguiba Riad - ENIT 2007 - FPGA
190
J. Liens Gigabit
Pour remdier cette situation et dsencombrer les circuits imprims, on a envisag des liaisons
sries synchrones (PCI Express, Serial ATA, ).

Pour compenser la perte de dbit due au passage parallle vers srie, ces liaisons doivent
communiquer extrmement vite (facteur 100).

Pour y parvenir, elles utilisent des paires diffrentielles sur lesquelles sont envoys les donnes
et leur inverse, bit par bit.

On peut ainsi remplacer un bus parallle bidirectionnel (~64 fils) par deux paires diffrentielles
(~4 fils), une pour lmission (Tx), lautre pour la rception (Rx).

Bourguiba Riad - ENIT 2007 - FPGA


191
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
192
K. Bloc IP
Les blocs IP sont souvent les pierres angulaires dun projet sur FPGA.

On distingue 3 familles de blocs IP :


Hard IP
Ils sont dj gravs sur le silicium. Il sagit des lments que lon a dj vus : mmoire, blocs DSP,
processeurs cbls, PLL,

Soft IP
Ils sont crits dans un langage HDL au niveau RTL. Ils sont largement paramtrables, voire modifiables.

Firm IP
Ce sont des Soft IP que lon a dj t synthtises, places et routes sur le FPGA. Ils sont donc
parfaitement optimises.

Les hard IP sont prsents dans le FPGA, mme si on ne sen sert pas. Il faudra donc choisir la
plateforme la mieux adapte une application donne.

Les Soft et les Firm IP sont gnralement fournis directement avec les outils de dveloppement
du constructeur (Xilinx, Altera, ) pour les plus simples, ou vendus sparment pour les plus
spcifiques.

Bourguiba Riad - ENIT 2007 - FPGA


193
4. Les caractristiques des FPGA
Introduction
Technologie
Taille du grain logique
Cellules Logiques
Mmoire intgre
Bloc DSP
Curs de processeur
Distribution des horloges
Entres/sorties
Liens Gigabit
Bloc IP
Estimations de la surface
Bourguiba Riad - ENIT 2007 - FPGA
194
L. Estimations de la surface
Comment comparer la taille des circuits intgrs numriques?

En dfinissant une unit de mesure : la porte quivalente (equivalent


gate).

En effet, on peut dcomposer chaque circuit numrique en portes


logiques lmentaires.

Il suffit donc de dterminer le nombre de portes pour chaque fonction


logique, puis de compter le nombre de fonction de chaque sorte pour
pouvoir calculer le de portes totales quivalentes pour un circuit donn.

Cette solution est trs employe dans le monde des ASIC.

Bourguiba Riad - ENIT 2007 - FPGA


195
L. Estimations de la surface
Comme les FPGA remplacent peu peu les ASIC, il faut pouvoir dire si un design
ASIC peut tenir dans un FPGA.

Problme n1 : Il existe autant de dfinitions du concept de porte logique


quivalente quil y a dacteurs dans le monde de la microlectronique

Problme n2 : Une LUT 4 entres peut simuler de 1 22 portes logiques


quivalentes. Ds lors comment estimer la capacit dun FPGA?

Pour donner en semblant de rponse, les fabricants de FPGA ont invent le


concept de porte systme (system gate), sans le dfinir!!!

La tailles des circuits FPGA est donc mesure en nombre de portes systmes :
une notion extrmement floue, mais qui donne limpression que lon peut faire
une comparaison avec un ASIC

Bourguiba Riad - ENIT 2007 - FPGA


196
FPGA
n Introduction
n Concepts fondamentaux
n A lorigine des FPGA
n Les caractristiques des FPGA
n La configuration

Bourguiba Riad - ENIT 2007 - FPGA


197
5. La configuration
Introduction
Configuration avec le port de programmation
Configuration avec le port JTAG
Configuration avec un processeur cbl interne

Bourguiba Riad - ENIT 2007 - FPGA


198
A. Introduction
Lors de son achat, un FPGA est vierge : sa mmoire de configuration
(programmation) a un contenu indfini. Il ne ralise donc aucune application
particulire.

Configurer un FPGA, cest le programmer. Pour cela on charge le fichier de


configuration gnr par les logiciels de CAO dans sa mmoire interne de
configuration.

Bourguiba Riad - ENIT 2007 - FPGA


199
A. Introduction
Le terme configuration a deux sens. En fonction du contexte, il peut
dsigner :
le processus de programmation,
les donnes ou le fichier de programmation (la configuration).

Pratiquement, il existe plusieurs faon de configurer un FPGA :


avec une sonde connecte un ordinateur,
avec une mmoire externe,
avec un microprocesseur,
et la liste est longue

Dans la suite, on va sintresser uniquement aux FPGA SRAM,


puisquils prsentent le plus grand nombre de modes de configuration.

Bourguiba Riad - ENIT 2007 - FPGA


200
5. La configuration
Introduction
Configuration avec le port de programmation
Configuration avec le port JTAG
Configuration avec un processeur cbl interne

Bourguiba Riad - ENIT 2007 - FPGA


B. Configuration avec le port de 201
programmation
Quel que soit le FPGA considr, il existe toujours un port de configuration.

Le port de configuration associe quelques broches un automate de contrle,


afin dimplmenter un protocole de chargement des donnes dans le circuit.

Les protocoles varient dun fabricant lautre, et parfois dune famille lautre
chez un mme fabricant.

Un port de configuration implmente en gnral au moins 4 modes de


programmation :

Bourguiba Riad - ENIT 2007 - FPGA


B. Configuration avec le port de 202
programmation
Chargement en srie avec FPGA matre
Une mmoire (PROM, EPROM, FLASH) externe stocke la configuration.

La mmoire est spcifique :


Elle na pas de bus dadresse.
Son contenu est lu en srie.
Elle commence toujours au dbut de la configuration.

Bourguiba Riad - ENIT 2007 - FPGA


B. Configuration avec le port de 203
programmation
La sortie du FPGA peut servir chaner plusieurs FPGA.

Bourguiba Riad - ENIT 2007 - FPGA


B. Configuration avec le port de 204
programmation
Chargement en parallle avec FPGA matre
Une mmoire (PROM, EPROM, FLASH) externe stocke la configuration.

Comme la mmoire est banale, elle cote moins cher.

Le chargement octet par octet est 8 fois plus rapide quen mode srie.

Bourguiba Riad - ENIT 2007 - FPGA


B. Configuration avec le port de 205
programmation
Chargement en parallle avec FPGA esclave
Le FPGA est command par un processeur. Elle peut contenir plusieurs fichiers de
configuration.

Le processeur copie les donnes depuis la mmoire externe, vers la mmoire interne du
FPGA.

Le processeur permet de slectionner un fichier de configuration parmi plusieurs, en


fonction du contexte dutilisation (fonctionnement normal, maintenance, etc.).

Bourguiba Riad - ENIT 2007 - FPGA


B. Configuration avec le port de 206
programmation
Chargement en srie avec FPGA esclave
Ce mode de configuration est identique au prcdent, sauf que le
microprocesseur srialise les donnes.

De cette faon il garde le contrle sur le choix du fichier, tout en


conomisant des pattes sur le FPGA et de la place sur la carte.

Bourguiba Riad - ENIT 2007 - FPGA


207
5. La configuration
Introduction
Configuration avec le port de programmation
Configuration avec le port JTAG
Configuration avec un processeur cbl interne

Bourguiba Riad - ENIT 2007 - FPGA


208
C. Configuration avec le port JTAG
Tous les FPGA possdent un port JTAG (Joint Test Action Group) destin au test
des circuits par boundary scan, et chaque broche est relie une bascule.

La technique du boundary scan suppose un chanage des bascules pour :


1. charger en srie des donnes sur les pattes dentre,
2. calculer,
3. relire en srie les rsultats correspondants.

Bourguiba Riad - ENIT 2007 - FPGA


209
C. Configuration avec le port JTAG
En ralit, le port JTAG peut servir bien d'autres choses, grce un registre de
commande.

Les commandes sont spcifiques chaque circuit intgr.

Pour les FPGA, on a dfini des commandes pour connecter ou dconnecter la


mmoire de configuration la chane de scan.

On peut alors configurer le circuit en mode srie, par le port JTAG qui est un
standard.

Bourguiba Riad - ENIT 2007 - FPGA


210
5. La configuration
Introduction
Configuration avec le port de programmation
Configuration avec le port JTAG
Configuration avec un processeur cbl
interne

Bourguiba Riad - ENIT 2007 - FPGA


D. Configuration avec un 211
processeur cbl interne
Si le FPGA contient un cur de processeur cbl, alors il est possible de
connecter la chane de JTAG du processeur au port de JTAG du FPGA.

En programmant le processeur par le port JTAG, ce dernier peut ensuite


reprogrammer le FPGA, soit par le bus JTAG, soit par accs direct la
SRAM de configuration.
Bourguiba Riad - ENIT 2007 - FPGA
212
Flot de conception FPGA
Gnration du fichier
Spcification papier Synthse
de configuration

Modlisation Mapping Configuration FPGA

Simulation Simulation
Validation prototype
haut niveau post-synthse

Dveloppement HDL Placement

Simulation et vrification
Routage
fonctionnelles

Simulation physique

Bourguiba Riad - ENIT 2007 - FPGA

Vous aimerez peut-être aussi