Fpga

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 119

COURS

ARCHITECTURES
UTILISATION

DES FPGA
Moez BALTI
1
Plan
I. Introduction, historique
II. FPGA vs ASIC
III. Architecture et conception des FPGA
IV. Les FPGA Altera
V. Les FPGA Xilinx
VI. Autres Familles de FPGA
VII. Utilisation des FPGA, CAO
VIII. Le CoDesign

2
Historique
1970 Introduction du terme PAL Texas Instrument

1ère ROM, Harris Semiconductor

1971 intel, 1er UV-PROM (effaçable par UV)

1972 Intel, 1er processeur : 4004

1973 André Truong et Francis Grenelle mettent au point et commercialisent le 1er


micro-ordinateur du monde.

1975 Un certain Bill Gates fonde une petite société d’informatique : Microsoft

1978 1ère famille PAL commerciale

1980 Premiers microprocesseurs 32 bits chez intel et Motorola

1981 IBM lance le PC

3
Historique
1983 1er GAL effaçable électriquement, Lattice
1984 Apple lance le Macintosh
1984 Introduction du FPGA par XILINX : le XC2000 (de 600 à 1500 portes)
création de la société ALTERA
Technologie CMOS UV-EPROM
1985 mise sur le marché du 1er FPGA XILINX
1992 1er FPGA Altera : le Flex 8000 (15 000 portes max)
1993 Technologie EEPROM
2001 Lancement de la famille Virtex Xilinx
Lancement de la Stratix d’Altera
2005 Fabrication des FPGA avec des capacités de quelques millions de portes
et fonctionnant à des fréquences surpassant les 500 MHz

4
Historique

Evolution des FPGA de la famille Stratix d’Altera


et de la famille Virtex de Xilinx 5
Évolutions

En 2012, pour le fabriquant Xilinx, les plus gros


FPGA est un Virtex 7 :
• une capacités de 2 millions de portes
• des complexités de 6.5 milliards de transistors
• utilisant des puces de technologies à 28 nm qui
permet d'empiler 15 couches sur un substrat de
silicium
• avec des cœurs de microprocesseurs câblés
cadencés à des GHz
6
Évolutions

La technologie cuivre
(aujourd’hui maîtrisée) permet
d’augmenter la rapidité des
circuits donc d’augmenter les
fréquences de fonctionnement

7
Évolutions de la technologie
Évolution de la technologie

600 nm 250 nm 130 nm 65 nm 28 nm


Technologie : trois couches cinq couches 9 couches 12 couches 15 couches
de métal de métal de métal de métal de métal

Année : 1994 1998 2002 2006 2011


2013 : technologie cuivre 14 nm

8
Marché des FPGA

9
( milliards de dollars )
Les ventes de FPGA et CPLD
6

5
4,78

4
3,38
3

0
2009 2010 2011 Années
10
ASIC
• Le Circuit Intégré Spécifique à une Application (ASIC) est une des
manières de réaliser un système de calcul matériel.
• Pour chaque application, un circuit différent est créé, soit en le
construisant entièrement, soit en configurant une grille d’éléments
préconstruits.
• L’avantage des ASICs sur les circuits reconfigurables, pour une
même technologie, est évidemment leur rapidité, puisque les
connexions sont créées physiquement plutôt que programmées.
• Leur faiblesse, est que leur conception nécessite plus de temps,
étant donné qu’en tout cas une couche de métal doit être apposée.
De plus, ils ne sont en aucun cas programmables, et une erreur
dans le design implique un changement complet du circuit.

11
ASIC
• Quatre grandes classes d’ASICs sont présentées ici

12
A la demande
• Pour la création d’un ASIC à la demande (Full-Custom), les ingénieurs
contrôlent chaque élément du circuit fabriqué. Ils dessinent les transistors, les
placent et les connectent, sans qu’aucune contrainte prédéfinie n’existe
concernant le placement des éléments.
• La taille de chaque transistor peut être changée afin d’optimiser le
fonctionnement du système. L’avantage de cette approche est l’efficacité du
circuit final en terme de quantité de silicium et de vitesse. En effet, il est
possible de placer les éléments de manière optimale, sans aucune perte de
place, et de le faire en tenant compte des contraintes de temps d’exécution.
Par contre, si une erreur s’est glissée dans la conception, le dessin du circuit
entier doit être revu.
• Ce type d’ASIC n’est pas adapté au prototypage, étant donné le temps et
l’investissement nécessaire à chaque prototype.
• Les possibilités de routage dans un tel circuit sont quasiment infinies, étant
donné que le développeur a total contrôle sur toute la conception du circuit.
• La seule limitation intervient par le nombre de couches de métal apposées sur
le silicium. Toutefois, ce routage est fixé une fois pour toutes, ne laissant
aucune possibilité de modification ultérieure. 13
Prédiffusés
• Dans le milieu des années 60, Fairchild Semiconductor créa le précurseur des
tableaux de portes, sous la forme d’un circuit appelé Micromatrix, composé d’une
centaine de transistors.
• En 1967, un nouveau circuit, appelé Micromosaic, et contenant quelques centaines
de transistors, fut proposé par la même société, avec cette fois-ci un programme
capable de générer automatiquement les interconnexions en fonction des
spécifications des ingénieurs. Ce sont toutefois les compagnies telles qu’IBM et
Fujitsu qui développèrent le concept d’ASIC prédiffusé ( à tableau de portes).
• Dans le cas des mers de portes, les vendeurs fabriquent un circuit composé d’un
tableau de cellules de base tels que des transistors. Une deuxième variante, le
tableau de portes avec canaux de routage, propose plusieurs rangées de ces cellules
séparées par des canaux de routage pouvant être connectés à ces éléments.
• La connectique interne à une rangée permet de créer des modules simples du type
multiplexeurs ou bascules, et les canaux de routage offrent la possibilité de connecter
ces modules entre eux.
• Le fabricant fournit généralement une librairie de modules, que le développeur peut
utiliser, et qui sont ensuite placés sur le tableau en connectant les éléments de base
grâce a des couches de métal supplémentaires

14
Prédiffusés

15
Pré-caractérisés
• Les ASIC pré-caractérisés (en anglais Standard Cell) ont vu le jour
au début des années 80, dans le but de combler les lacunes des
circuits prédiffusés. Contrairement à ces derniers, le silicium n’est
pas prédiffusé avec des éléments de base.
• Le vendeur propose une librairie de cellules de base, ainsi que des
modules plus complexes tels que des RAMs, des
microprocesseurs,…
• Le développeur utilise ces divers éléments pour créer une liste de
modules et de leurs interconnexions décrivant son système, et le
vendeur se charge ensuite de créer le circuit intégré.
• L’avantage de cette approche réside dans l’optimisation des
modules fournis par le fabriquant. Le placement de ces modules est
réalisé de manière à optimiser les performances, tout en minimisant
la place nécessaire sur le silicium
16
A réseau structuré
• Un ASIC à réseau structuré consiste en un circuit composé de différents
éléments semblables à ceux que l’on peut trouver dans un FPGA standard,
tels que look-up tables, inverseurs, flip-flops,…. Toutefois, à l’inverse du
FPGA, ces différents blocs ne sont pas connectés entre eux.
• Le circuit de base créé, il reste donc des couches de métal disponibles qui
permettent de réaliser la connectique nécessaire à la réalisation d’un design
particulier.
• Certains fabricants proposent des solutions mettant en jeu des look-up
tables et différentes portes logiques, ainsi que des blocs de mémoire, des
DLLs (Delay-Locked Loops) et des PLLs (Phase-Locked Loops). Les outils
de conception, responsables de la synthèse et du placement-routage, sont
adaptés à cette nouvelle technologie.
• Les comparaisons tendent à prouver que les ASICs à réseau structuré
occupent trois fois plus de place que les ASICs pré-caractérisés, et
consomment deux à trois fois plus.

17
Limitations
• Les quatre types d’ASIC présentés sont tous des circuits fixes, qui
une fois réalisés n’offrent aucune souplesse, leur fonctionnalité étant
définitivement figée.
• L’avantage de cette approche est la rapidité du circuit final, ainsi que
la place nécessaire à l’implémentation d’un design particulier.
• Toutefois, la non-reprogrammabilité de tels circuits est un important
obstacle au prototypage, la fixité de tels circuits ne permet pas la
conception de systèmes adaptables, capables d’évoluer en fonction
d’une tâche à résoudre dans un environnement qui peut être
changeant.
• Les circuits programmables, se proposent de pallier au manque de
flexibilité des ASICs. Les différentes technologies de programmation
sont les suivantes.

18
Technologies de programmation
• différentes technologies servant à la réalisation
de circuits programmables ou reprogrammables:
• Les technologies non reprogrammables
• Les fusibles
• Les antifusibles
• Les technologies reprogrammables
• l’EPROM
• l’EEPROM
• SRAM

19
Masque
• Ce procédé, qui est utilisé pour la création de mémoires à lecture
seule (ROM), consiste à fabriquer un circuit intégré en y plaçant les
composants et quelques couche de métal.
• Un ou des masques sont générés pour chaque circuit différent, et
servent à imposer les dernières couches de métal.
• Dans le cas d’une mémoire ROM, après sa réalisation, toutes ses
connexions sont figées. La programmation se fait par l’ajout d’une
couche de métal.
• La réalisation d’un circuit par masquage offre un avantage en terme
de délais, ces circuits étant les plus rapides des circuits
programmables. Cependant le fait de devoir appliquer des couches
de métal est un processus long et coûteux en comparaison des
autres techniques.

20
Masque

21
Fusible
• Le principe est d’avoir
des fusibles sur certains
fils, et d’en faire brûler
certains en leur
appliquant un courant
trop important.
• Sur chacun de ces fils,
une résistance en pull-up
ou pull-down force la
valeur à 1 ou à 0 si le
fusible a été détruit Un circuit contenant 4 fusibles non programmés, puis le
circuit résultant après avoir brûlé le premier et le
quatrième fusible.
22
Antifusible
• Contrairement aux fusibles, lorsqu’ils ne
sont pas programmés, ils agissent
comme une résistance infinie, comme si
le fil était coupé.
• En appliquant un fort courant,
l’antifusible est programmé, et laisse dès
lors passer le courant. Une résistance est
placée après chaque antifusible, de
manière à forcer la ligne à 1 ou 0 dans le
cas où il n’est pas programmé.
• Notons que les circuits à base de fusibles
et d’antifusibles ne peuvent être
programmées qu’une seule fois. Chaque
nouvelle implémentation, en cas d’erreur
de design par exemple, implique la
programmation d’un nouveau.
• La programmation étant électrique, un
Un circuit contenant 4 antifusibles non programmés,
simple appareil est nécessaire, rendant puis le circuit résultant d’une programmation
le processus nettement plus simple et
rapide que le masquage 23
EPROM
• Le fonctionnement d’une mémoire PROM est
identique que celui d’une ROM, si ce n’est le
mode programmation. Au lieu de devoir
physiquement créer des connexions grâce à
une couche de métal, un fusible peut être
brûlé ou non, ce qui est nettement plus rapide
et moins coûteux .
• La technologie de type Erasable
Programmable Read-Only Memory (EPROM),
est une amélioration de la PROM sur le plan
de la flexibilité, puisqu’elle permet une
reprogrammation du circuit.
• Un nouveau type de transistor, basé sur un
transistor MOS, a été ajoutée. Dans son état
initial, le transistor agit, tel un MOS standard. Une cellule de mémoire PROM,
En appliquant un courant de haut voltage
basée sur un transistor et un fusible
(typiquement 12V) entre la grille et le drain,
ce qui bloque le transistor en état ouvert. La
charge créée par la programmation perdure,
même lorsque le circuit est hors tension, et ce
n’est qu’avec une exposition du circuit à des
rayons UV que la programmation est effacée 24
EEPROM
• Le principal inconvénient des
EPROMs, la déprogrammation par
rayons UV, est oublié dans les
EEPROMs, qui sont effaçables
électriquement. Il n’est dès lors plus
nécessaire d’intervenir physiquement
avec de la lumière UV, un système
électronique pouvant reprogrammer
l’EEPROM de manière autonome.
• Sur le plan de l’espace pris sur le
silicium, une cellule mémoire
d’EEPROM occupe toutefois environ
2,5 fois plus de place qu’une cellule
Une cellule mémoire EEPROM.
d’EPROM, car elle est composée de
deux transistors, ainsi que de
l’espace nécessaire entre eux deux

25
SRAM
• La technologie SRAM (Static
Random Access Memory)
est contrairement à celles
déjà présentées, volatile, et
doit donc être reprogrammée
à chaque remise en marche
du système.
• Leur désavantage réside
Une cellule mémoire SRAM.
dans la place nécessaire à
une cellule, qui est
composée de quatre à six
transistors formant un latch
26
SRAM
• La figure ci-contre illustre les
différentes manières d’utiliser
des cellules de mémoire SRAM
pour la réalisation de circuits
programmables
• Les FPGAs commerciaux basés
sur cette technologie sont le plus
souvent implémentés avec des
pass-transistors ou des portes
de transmission
• Le XC6200 est réalisé avec des
multiplexeurs qui offre l’avantage
d’interdire tout court-circuit.
Trois technologies de programmation associées à la
SRAM
27
Résumé
• Les antifusibles sont d’excellents
candidats pour les systèmes nécessitant
une très haute fréquence d’horloge, mais
ont le problème de ne pouvoir être
reprogrammés.
• Les fusibles ne sont plus utilisés, étant
donné qu’ils sont couplés à une
technologie bipolaire, qui n’est plus
d’actualité.
• Les technologies EPROM et EEPROM
permettent une reprogrammation, mais au
coût d’une intervention humaine et un
temps d’effacement lent, ainsi que d’une Comparaison des caractéristiques
forte tension, (12V) pour la
des différentes technologies
reprogrammation.
• Les cellules SRAM, sont très rapidement
reprogrammables, au coût d’une plus
grande place occupée et de leur volatilité.

28
Circuits logiques programmables

• Les PLDs
(Programmable
Logic Device) sont
composés de deux
sous-classes:
– les SPLDs (Simple
Programmable Logic
Device) Une classification des circuits logiques
– les CPLDs (Complex programmables
Programmable Logic
Device)
29
SPLD
• Les SPLDs (Simple Programmable
Logic Device), sont composés d’une
grille de portes ET et d’une grille de
portes OU, les deux étant reliées.
• Les entrées du système peuvent
être connectées aux portes ET, et le
résultat des portes OU correspond à
la sortie du système
• Les connexions sont préexistantes,
les différentes lignes étant reliées
par des fusibles, des transistors
EPROM, ou des transistors
L’architecture d’un SPLD
EEPROM.
• En brûlant certains de ces fusibles,
ou en programmant les transistors, il
est alors possible de réaliser
différentes fonctions logiques.
30
PROM
• PROMs (Programmable Read-Only
Memory) sont des mémoires accessibles
en lecture, qui contrairement aux ROMs,
sont programmables. En effet, une ROM
est livrées déjà configurée, et ne peut
être accédée qu’en écriture, alors qu’une
PROM est une mémoire vide, qui peut
être écrite, une seule fois, par
l’utilisateur.
• Ces circuits, qui ne sont pas
reprogrammables, sont répartis en deux
sous-classes:
– les Mask-Programmable Chips,
programmés par le fabricant
– les Field-Programmable Chips, qui sont
programmés par l’utilisateur.

L’architecture fonctionnelle d’une PROM

31
PLA
• Les PLAs (Programmable Logic Array)
contrairement à une PROM, toutes les
interconnexions peuvent être
programmées,
• Il est possible de définir les produits et les
sommes, les rendant particulièrement
efficaces lorsque plusieurs sorties utilisent
les même produits.
• Un des désavantages du PLA comparé à
la PROM étant donné que les deux
tableaux (ET/OU) sont programmés, le
temps de propagation d’un signal de
l’entrée à la sortie est nettement plus
important que lorsqu’un seul tableau l’est.
L’architecture d’un PLA

32
PAL
• Les PALs (Programmable Array
Logic) furent introduites afin de
contrer le problème de vitesse
de propagation des PLAs.
• Dans un PAL, les connexions
entres les portes ET et OU sont
fixes, et les connexions entre les
entrées et les portes ET peuvent
être programmées.
• L’avantage des PALs sur les
PLAs est leur rapidité, mais elles
présentent l’inconvénient de
n’avoir qu’un nombre limité de
produits pour chaque porte OU L’architecture d’un PAL

33
Résumé
• De nombreux circuits possèdent la capacité
d’inverser les sorties, de disposer de portes tri-
state, ou même de faire passer les sorties par des
registres. Certains autres ont même la capacité
d’utiliser leurs pins comme sorties ou comme
entrées supplémentaires. Sur le plan du routage,
nous pouvons noter qu’il est très limité dans le
sens où il n’y a pas réellement de connectique à
définir. En effet, la programmation d’un PLD agit
sur la réalisation d’une fonction plutôt que sur la
connexion de divers blocs de fonctions.
34
CPLD
• Les SPLDs présentent deux limitations majeures, à savoir l’impossibilité
de réaliser des fonctions à plusieurs niveaux et celle de ne pouvoir
partager les produits de différentes fonctions.
• Les CPLDs (Complex Programmable Logic Device), apparus au début
des années 80, sont le résultat de l’évolution des PLDs. Ils permettent
l’implémentation de systèmes nettement plus complexes, et sont
composés d’éléments de base programmables, connectés entre eux
par un réseau d’interconnexions relativement simple.
• Ces éléments de base sont du type SPLD, et peuvent, comme dans le
cas de la famille MAX3000 d’Altera, être composés d’un tableau de
portes ET programmables et de portes OU fixes (une sorte de PAL),
ainsi que d’un registre.
• La technologie de programmation des CPLDs dépend du constructeur,
et peut être de type EPROM, EEPROM, FLASH ou SRAM
35
CPLD
Un des avantages des CPLDs sur
les FPGAs, est la rapidité. En effet,
le réseau d’interconnexions, en étant
plus rudimentaire, et plus rapide que
celui d’un FPGA. De plus, les
connexions se font toujours avec
une destination pour une source, et
le temps de propagation est toujours
le même. Le placement d’un design
dans un CPLD n’est pas critique, et
le routage peut être systématisé,
sans avoir besoin de tenir compte de
contraintes de temps. Le routage
des CPLDs intéressant, puisqu’en L’architecture d’un CPLD
plus de définir la fonctionnalité de
blocs simples comme les SPLDs, il
devient possible de les
interconnecter 36
FPGAs
FPGA (Field Programmable Gate Array). Au début des
années 80, les développeurs disposaient des circuits de
type PLD, facilement configurables, mais ne pouvant
contenir des designs trop complexes. Les ASICs, quant à
eux, supportaient des systèmes de grande complexité, mais
n’avaient pas les propriétés de configuration des PLDs. Il
manquait donc un type de circuits permettant la réalisation
de systèmes complexes, tout en offrant une reconfiguration
rapide et peu onéreuse. C’est pourquoi en 1984, Ross
Freeman, Bernie Vonderschmitt, et Jim Barnett fondent la
compagnie Xilinx. En 1985, ils introduisent sur le marché le
premier FPGA, le XC2064, et offrent ainsi une alternative
aux précédentes approches
37
FPGAs
• Les circuits FPGAs permettent
d’implémenter des systèmes
numériques aussi complexes
que ceux réalisés jusqu’alors
grâce aux ASICs, tout en ayant
le grand avantage de pouvoir
être programmés électriquement.
• Ils sont composés d’un tableau
d’éléments plus ou moins
complexes pouvant être
configurés, ainsi que d’un réseau
complexe de connexions
également configurables
L’architecture générale du FPGA
38
FPGA-XC2000
• Le premier FPGA commercial, est le XC2000 de Xilinx.
Son architecture est relativement simple en comparaison
des circuits actuels, mais sensiblement identique à
l’ensemble des FPGAs.
• Il est basé sur une technologie SRAM, de la même
manière que tous les FPGAs de Xilinx.
• Il est reprogrammable un nombre illimité de fois, et ce de
manière très rapide.
• Son élément de base, le CLB (Configurable Logic Bloc),
est composé d’une bascule et de deux look-up tables de
trois entrées qui ont également la possibilité de réaliser
une look-up table à quatre entrées.
39
FPGA-XC2000
Notons que les deux
sorties X et Y, sont
interchangeables,
puisque leurs
multiplexeurs ont
exactement les
mêmes entrées. Ce
détail sera
intéressant sur le
plan du routage.
Le CLB d’un XC2000

40
FPGA-XC2000
• Le XC2000 contient des switchboxs, chacun
étant connecté à quatre autres switchboxs.
• Ils sont reliés verticalement par cinq fils, et
horizontalement par quatre. Ces switchboxs
permettent de relier des CLBs sur de longues
distances, au travers du FPGA.
• Les problèmes liés au délai RC des noeuds
routés étant évités en plaçant des buffers sur
certains fils. Le choix a été fait de diviser le
FPGA en neuf parties, et de placer des buffers
sur toutes les frontières de ces parties.
• Cette structure de routage est encore
présente dans les FPGAs actuels, dans
lesquels nous trouvons des canaux de routage
accessibles par les unités fonctionnelles, et
qui sont reliés entre eux par des switchboxs. Le schéma d’interconnexions d’un XC2000

Afin de pouvoir implémenter des designs plus efficacement, des liaisons directes
sont disponibles. Elles permettent de connecter un CLB à ses quatre voisins, sans
accéder aux liaisons des switchboxs, et réduisent le temps de propagation du
signal, ainsi que les problèmes de congestion du routage. 41
FPGA-XC6200
• L’architecture de la famille XC6200 de
Xilinx est encore plus simple que celle des
XC2000, autant en ce qui concerne les
blocs logiques que le réseau de routage.
De plus, le point central de son attrait est
le fait qu’elle est basée sur une
technologie SRAM couplée à des
multiplexeurs.
• Son bloc de base, ne possède que trois
entrées, et sa fonctionnalité n’est pas
réalisée par une look-up table, mais par
des multiplexeurs, ce qui, dans cette
configuration, ne permet pas
d’implémenter n’importe quelle fonction à
trois variables. Une bascule est placée de L’unité fonctionnelle d’un XC6200
la même manière que dans un XC2000,
et l’unique sortie peut être combinatoire
ou séquentielle.

42
Architecture MUX versus LUT
• Dans l’approche MUX, la fonctionnalité est réalisée en connectant les entrées
et le signal de sélection des multiplexeurs. De la logique peut être ajoutée,
les multiplexeurs sélectionnant alors une parmi plusieurs fonctions.
• L’implémentation des éléments logiques grâce à des LUTs permet de réaliser
n’importe quelle fonction, en programmant correctement les bits de
configuration de la LUT. Cette approche a été choisie par Altera et Xilinx.
Cette alternative permet d’implémenter des registres à décalage et des
mémoires, en tirant parti des bits de configuration des LUTs, ce que les
multiplexeurs ne peuvent faire.
• L’inconvénient d’un LUT est de n’être que peu efficace pour les applications
réalisées par un grand nombre de fonctions logiques simples et
indépendantes. En effet, une fonction à 2 entrées nécessite la réquisition
d’une LUT entière, alors qu’elle pourrait n’être implémentée que sur un
multiplexeur.
• La taille optimale d’une LUT, se situait à 4 entrées

43
FPGA ? ASIC

44
Comparaison: Caractéristiques

ASIC
CARACTERISTIQUES FPGA
GATE ARRAY STANDARD CELL FULL CUSTOM

DENSITE FAIBLE MOYENNE MOYENNE GRANDE

FLEXIBILITE GRANDE PETITE MOYENNE GRANDE

ANALOGIQUE NON NON OUI OUI

PERFORMANCE FAIBLE MOYENNE BONNE TRES BONNE


TEMPS DE
TRES PETIT MOYEN MOYEN GRAND
CONCEPTION
COUT DE
TRES PETIT MOYEN MOYEN TRES GRAND
CONCEPTION
UTILISATION DES
SIMPLE COMPLEXE COMPLEXE TRES COMPLEXE
OUTILS
VOLUME DE
PETIT MOYEN GRAND GRAND
PRODUCTION

45
Comparaison: Capacités
100M
Nombre de portes (log)

10M

1M

100k

10k
80% des design fonctionnent
aujourd’hui à moins de 200 MHZ
1k

1990 2000 2010 Années


46
Les ASIC
AVANTAGES
• hautes intégrations
• hautes performances (vitesse, low-power)
• coûts faibles pour de gros volumes de production
• personnalisation

INCONVENIENTS
• prix du 1er exemplaire
• pas d’erreur possible
• non-flexible
• time-to-market élevé
• fabrication réservée aux spécialistes (fondeur)
47
Les FPGA
AVANTAGES
• possibilité de prototypage
• time-to-market faible
• adaptabilité aux futurs évolutions grâce à la reconfiguration

• flexibilité

INCONVENIENTS
• intégration limité par les ressources de routage
• performances
• prix à l’unité élevé pour de grosses productions

48
Conclusion: ASIC vs FPGA
Le choix entre les FPGA ou les ASIC se fait en fonction du cahier des
charges de l’application :

• temps de mise sur le marché et durée de vie courte FPGA

• très petit nombre de circuits FPGA

• optimisation des performances ASIC

• grande série ASIC

49
Les FPGA (Field Programmable Gate Arrays)

L’architecture, retenue par Xilinx, se présente


sous forme de deux couches :

• une couche appelée circuit configurable,


• une couche réseau mémoire SRAM.

50
Les FPGA (Field Programmable Gate Arrays)

• La couche dite 'circuit configurable' est constituée d'une matrice


de blocs logiques configurables CLB permettant de réaliser des
fonctions combinatoires et des fonctions séquentielles.
• Tout autour de ces blocs logiques configurables, nous trouvons
des blocs entrées/sorties IOB dont le rôle est de gérer les
entrées-sorties réalisant l'interface avec les modules extérieurs .
La programmation du circuit FPGA appelé aussi LCA (logic
cells arrays) consistera par le biais de l'application d'un potentiel
adéquat sur la grille de certains transistors à effet de champ à
interconnecter les éléments des CLB et des IOB afin de réaliser
les fonctions souhaitées et d'assurer la propagation des signaux.
• Ces potentiels sont mémorisés dans le réseau mémoire SRAM.
51
Les FPGA (Field Programmable Gate Arrays)
• La configuration du circuit est mémorisée sur la couche réseau SRAM
et stockée dans une ROM externe. Un dispositif interne permet à
chaque mise sous tension de charger la SRAM interne à partir de la
ROM. Ainsi, un même circuit peut être exploité successivement avec
des ROM différentes puisque sa programmation interne n'est jamais
définitive.
• La mise au point d'une configuration s'effectue en deux temps: une
première étape purement logicielle va consister à dessiner puis simuler
logiquement le circuit fini, puis lorsque cette étape sera terminée on
effectuera une simulation matérielle en configurant un circuit réel et
l'on pourra alors vérifier si le fonctionnement réel correspond bien à
l'attente du concepteur et si besoin est identifier les anomalies liées
généralement à des temps de transit réels légèrement différents de ceux
supposés lors de la simulation logicielle ce qui peut conduire à des
états instables voire même erronés.

52
Principe de la reconfiguration
VGA
Flash OGG
OGG WMA
WMA
I/O

Processeur
MP3
MP3
AIFF
AIFF
 Flexible: Nécessité de service
central
RAM CNA  Évolutif :
CAN I/O  Mise à jour
MPEG 1
MPEG 2  Ajout de service
MPEG 4
Bluetooth
Bluetooth

802.11
802.11 VGA
GPRS
GPRS
Flash
I/O

Processeur
central
RAM CNA

CAN I/O

Accélérateur Flexible
Systèmes sur puce (SoC)

53
Accélérateur reconfigurable
Le concept de base de la reconfiguration
statique

La reconfiguration statique :

Chaque FPGA garde la même configuration

Gestionnaire
Mise Application 1 Application 2 Application N
sous d’application
tension

Exécution Exécution Exécution


FPGA 1 FPGA 2 FPGA N
Configuration
Traitement
d’application

Traitement

Gestionnaire
Résultat 1 Résultat 2 Résultat N
de résultat
Arrêt

Mémoire de 54
données
Le concept de base de la reconfiguration
dynamique totale

La reconfiguration dynamique totale: 1 - Mode sélectif :


Reconfiguration  Souplesse des applications
 Rupture des séquences
 Contrôle et choix du traitement
Traitement
Exécution
1
Configuration1 Configuration2 Configuration 3

Sélection
Architecture
Reconfigurable
Dynamiquement

Traitement Traitement
2 3
FPGA

Application 55
Le concept de base de la reconfiguration
dynamique totale

La reconfiguration dynamique totale: 2 - Mode d’auto-reconfiguration :


Reconfiguration  Meilleur utilisation du silicium
 Accélération des traitements
Traitement  Exécution avec des fréquences adaptées
1
Exécution
Configuration1 Configuration2 Configuration 3 Configuration 4
Sélection
Traitement
2
Architecture
Reconfigurable
Dynamiquement
Traitement
3

FPGA

Traitement
4

Application 56
Le concept de base de la reconfiguration
dynamique partielle

Reconfiguration dynamique partielle : Config 1 Config 2 Config 3


 Chargement continu de plusieurs tâches
 Meilleur manipulation des différentes tâches de l’application
 Exécution de certaines tâches lors du chargement

Mémoire Gestionnaire
principale de tâches Configuration 3
1
2
Exécution

Tâche
1
Tâche
2 FPGA

Tâche Tâche
3 4

Tâche Tâche
5 6
57
Les architectures

L’architecture reflète la topologie du réseau de routage

Trois grands styles architecturaux s’affrontent


• îlots de calcul, majoritaire chez Xilinx
• hiérarchique, majoritaire chez Altera
• logarithmique, un peu exotique...

58
Les architectures îlots de calculs

Les éléments fonctionnels (logique, mémoire, IO) sont


regroupés sous forme de matrice

Ce type d’architecture est très répandu, en particulier chez


Xilinx, mais aussi chez ATMEL

59
Les architectures îlots de calculs

60
Les architectures îlots de calculs
Élément configurable :
• élément logique
• élément de mémorisation
EC • élément arithmétique
• entrée/sortie

Réseau de routage :
• lignes horizontales
• lignes verticales

Matrice de connexions

BC MC
Bloc de connexions

61
Architecture hiérarchique

Les réseaux de routage d’une architecture


hiérarchique dépendent du niveau de hiérarchie
dans lequel on se trouve.
Ceci permet une optimisation du routage par
niveau
Très répandu chez Altera et Lattice

62
Architecture hiérarchique

63
Architecture hiérarchique

Réseau de routage de
niveau 2

Élément Hiérarchique de
niveau 2

Réseau de routage de Réseau de routage de


niveau 1 niveau 3

Élément Hiérarchique de Élément Hiérarchique de


niveau 1 niveau 3
• éléments logiques
• éléments de mémorisation
• ... 64
Architecture logarithmique

Architecture logarithmique dans laquelle chaque niveau i


correspond à une matrice de 42i cellules de bases.
Chacun de ces niveaux possède des ressources de longueur
42i-1.

65
Architecture logarithmique
Cellule logique
Cell Cell Cell Cell de base Cell Cell Cell Cell

Cell Cell Cell Cell Cell Cell Cell Cell


Matrice de 16
cellules
Cell Cell Cell Cell Cell Cell Cell Cell

Lignes de
Cell Cell Cell Cell longueur Cell Cell Cell Cell
4 cellules

4*4 4*4 4*4 4*4 16*16 16*16 16*16 16*16


Lignes de
longueur
4*4 4*4 4*4 4*4 16 cellules 16*16 16*16 16*16 16*16

4*4 4*4 4*4 4*4 16*16 16*16 16*16 16*16

Lignes de
4*4 4*4 4*4 4*4 longueur 16*16 16*16 16*16 16*16
64 cellules
66
Les éléments logiques CLB

Les éléments logiques configurables nommé CLB


(Blocs Logique Configurables) sont les briques de
bases de tous les FPGA. Ils sont majoritairement
réalisés autour de LUT ( Look Up Table), des
portes logiques et des bascule D.

On rencontre toutefois des cellules logiques


rudimentaires à base de multiplexeurs

67
Les Look Up Tables
Ce sont de petits éléments de mémorisation, qui reflètent la
table de vérité d’une fonction logique.
LUT = Générateur de fonction In 0 In 1 In 2 In 3

LUT 4 entrées = RAM 2 octets

SRAM

SRAM

In 0
SRAM
In 1
LUT 4 Out
In 2 SRAM
In 3
SRAM

SRAM
Out

68
Les Look Up Tables
In 0 In 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out

69
Les Look Up Tables
In 0 = 0 In 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out

70
Les Look Up Tables
In 0 =0 In 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out

71
Les Look Up Tables
In 0 =0 In 1 = 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out

72
Les Look Up Tables
In 0 =0 In 1 = 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out

73
Les Look Up Tables
In 0 =0 In 1 = 1 In 2 =1 In 3 = 1

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1 Out= 1 = In3 • In2 • In1 • Ino

74
Les Look Up Tables

Généralement le nombre d’entrées des LUT est de


quatre ou de six car c’est un bon compromis entre
vitesse et surface
Le nombre de LUT dans les blocs logiques varie de
2 à 4 généralement

75
Les Look Up Tables
Élément logique de base avec une LUT
Carry-In

ENTREES
SORTIES
LUT D

Portes
logiques

HORLOGE

Carry-Out

76
Les réseaux d’horloges
Les circuits sont de
plus en plus grands =>
augmentation de la
longueur des
connexions =>
les chemins d’horloges
sont plus longs =>
plus de retard =>
ASYNCHRONISME
MALSAINT !!!

77
Les réseaux d’horloges
Le problème 1 : JITTER : bruit de phase

Le problème 2 : CLOCK SKEW : Décalage entre


les transitions de la même horloge à différents
points d’un circuit.
Le problème 3 : on peut avoir besoin de
plusieurs horloges dans un même circuit
78
Les réseaux d’horloges
Les PLL
Phase-Locked Loop
( ALTERA )

Les DLL
Delay-Locked Loop
( XILINX )

79
Les cœurs de processeurs
Aujourd’hui les systèmes numériques font de plus en plus
appel conjointement à des ressources logicielles micro-
programmées (µP, µC, DSP) et des ressources matérielles
re-configurables (FPGA)
D’où l’idée de mettre sur une même puce un cœur de
microprocesseur et un cœur de logique configurable, les
deux étant optimisés technologiquement

Le cœur du processeur peut prendre environ 10% de la


surface totale de la puce
80
Les cœurs de processeurs

Xilinx propose des versions de la famille Virtex avec un ou


plusieurs cœurs de processeurs

Le Virtex peut contenir :

• de 1 à 4 cœurs Power-PC (RISC 32 bits) 125 MHz

• des milliers de portes logiques

81
Les alimentations en énergie

Le cœur est alimenté


généralement en 1.8 V (voir
1.5 V) car avec la technologie
de quelques nm, les oxydes ne
sont pas assez épais pour
supporter plus de tension

Les entrées sorties sont


alimentées sous 3.3V, 2.5V,
1.8V ou 1.5 V suivant le
standard choisi

82
Que choisir !!!

Les architectures de FPGA sont donc très variées,


tant aux niveau du routage que du grain des
ressources qui les composent.
Savoir quels types d’architecture et de ressources
sont les plus en adéquation avec l’application que
l’on développe reste un challenge aujourd’hui.

83
IV- Les FPGA
Altera

84
La Famille Altera
1984 Débuts d’Altera qui vend des EPLD
1988 Lancement des CPLD MAX (Multiple Array matriX) qui sont des fétus de FPGA
1992 1er FPGA Altera : le FLEX 8000 (15 000 portes) (Flexible Logic Element matriX)
technologie 0.5 µm
1995 Lancement de la famille FLEX 10K (250 000 portes)
1997 Famille FLEX 6K bas coûts (24 000 portes)
1999 Famille APEX 20K (1 500 000 portes)
2000 Famille APEX 20K C utilisant la technologie cuivre
2000 Famille APEX 20K E avec plus de ressources mémoires technologie 0.18 µm
2001 Circuit Excalibur couplant une matrice FPGA APEX 20K 1000 et un cœur de
processeur ARM 9
2001 Famille APEX II (dont le but est de concurrencer le Virtex de Xilinx) (3 000 000 de
portes) technologie 0.15 µm
2002 Lancement du STRATIX concurrent direct du Virtex II Xilinx, technologie
cuivre 0.13 µm
2002 Lancement du Cyclone un petit FPGA (architecture STRATIX) pour
application grand public bas-coûts
85
La Famille Altera
Faible Milieux de Haute
Technologies performance
coût gamme
130 nm Cyclone Stratix

90 nm Cyclone II Stratix II

65 nm Cyclone III Arria I Stratix III

40 nm Cyclone IV Arria II Stratix IV


86
La Famille Altera
STRATIX

87
La Famille Altera

Toujours plus gros, toujours plus performant, Stratix. 88


La Famille Altera

89
La Famille Altera

90
V- Les FPGA Xilinx

91
La Famille Xilinx
1985 Lancement de la 1er famille de FPGA Xilinx le XC2000 (1500 portes - obsolète)
1987 Famille XC3000 (6000 portes - obsolète)
1991 Famille XC 4000 (500 000 portes)
1995 Famille XC 5200 spéciale petit design (18 000 portes) 0.6 µm 6 couches
1996 Innovations avec la famille XC 6200 (100 000) visant le coprocessing et le
reconfigurable dynamiquement, echec commercial
1998 Famille SPARTRAN vise la souplesse d’utilisation et les petits design
1999 Famille VIRTEX vise les fortes capacités ( 4 millions de portes)
techno 0,22 µm 5 niveaux de métallisation
1999 VIRTEX-E amélioration du VIRTEX avec plus de mémoires,
techno 0.18 µm 6 niveaux de métallisation
2000 Famille SPARTRAN II, FPGA moyennes capacités (100 000 portes) bas coûts,
ce sont de petits VIRTEX, techno 0.18 µm 6 niveaux de métallisation
2001 Famille VIRTEX II, toujours plus fort (10 millions de portes)
techno 0.15 µm 8 niveaux de métallisation, avec des transistors rapide 0.12 µm
2002 Famille VIRTEX II-Pro qui contient 4 cœurs de µP RISC Power-PC
2012 Famille VIRTEX 7
Xilinx propose aussi une gamme complète de CPLD 92
La Famille Xilinx

93
La Famille Xilinx

Technologies Faible coût Haute


performance
120/150 nm Virtex 2, 2 Pro
90 nm Spartan 3 Virtex 4
65 nm Virtex 5
45 nm Spartan 6
40 nm Virtex 6
94
La Famille Xilinx

95
La Famille Xilinx
Spartan 3 : Architecture
Configurable logic block (CLB)
Slice Slice

CLB CLB Logic cell Logic cell

Logic cell Logic cell

Slice Slice
CLB CLB Logic cell Logic cell

Logic cell Logic cell

96
La Famille Xilinx
Spartan 3 : Architecture

97
La Famille Xilinx

Spartan 3 Virtex 5, Virtex 6,


Virtex 4 Spartan 6

Look-Up Tables 4-input 6-input

Nombre de slices 4 2
par CLB

Nombre de LUTs 2 4
par CLB slice

98
La Famille Xilinx

99
VI- Autres Familles de FPGA

100
Autres exemples de FPGA

Il n’est pas nécessaire de détailler d’autres


architectures de FPGA, elles n’apportent rien
de plus que ce que l’on a vue chez Xilinx ou
Altera

Mais il est toutefois intéressant de connaître


l’offre d’autres fabricants

101
Marché des FPGA

102
Autres exemples de FPGA
ACTEL ProASIC technologie flash, ASIC
reprogrammable, non volatile et à
granularité fine.

RTAX FPGAs technologie antifusibles


=> OTP (One Time Programmable),
FPGA les plus rapide à 350MHz
série militaire, tolérance aux radiations

103
Autres exemples de FPGA
ATMEL AT40K, technologie SRAM, architecture
îlots de calcul, faible densité (5K à 50K
portes), reconfigurable dynamiquement,
des cœurs FPGA dérivés de cette
famille peuvent s’intégrer dans les
circuits prédiffusés ATMEL.

Lattice MachXO2, technologie SRAM, archi


îlots de calcul, densité de 125K à 1,2M
portes. EEPROM de configuration
intégré => configuration à la mise sous
tension en quelques µs
104
Autres exemples de FPGA
QuickLogic Eclipse II, série Quick (Ram, PCI),
technologie antifusible (One Time
Programmable), faible densité
de 47K à 400K portes

Cypress PSoC® 5 , architecture mixte


CPLD-FPGA

105
VII- Utilisation des FPGA, CAO

106
Programmation des FPGA

107
Outils de CAO
Tous les fabricants de FPGA proposent des
outils de CAO, passage obligé pour
configurer leurs circuits

pour Xilinx c’est ISE - Foundation

pour Altera c’est Quartus II

Avec ces outils, on peut réaliser tout le flot


de conception de la synthèse à la
configuration. Pour certaines phases du flot
ces outils font en fait appel à d’autres outils

108
Outils de CAO

Flot FPGA

Synthèse

Simulation
109
Outils de CAO

Les outils de CAO sont les points faibles de ces


dispositifs. Si un circuit est très performant, il ne
se vendra pas si les outils qui lui sont associés ne
sont pas performants !

Chez Xilinx 50% des ingénieurs de R&D se


consacrent à ces outils !

110
VIII- Le Codesign

111
Les nouvelles utilisations des FPGA

Longtemps réduit au prototypage, aujourd’hui les FPGA


sont utilisés, pour leur capacité de reconfiguration, dans
des systèmes électroniques complexes, même pour de la
grande série.

• le CoDesign pour le Run Time Reconfigurable

• les SORC : System-On-a-Reconfigurable-Chip

112
Les nouvelles utilisations des FPGA
Définition : Les méthodes de CoDesign sont des méthodes de
développement simultané (de manière concurrente) des parties HW et
SW (spécification, design, vérification)

SW = microprocesseur
HW = FPGA ou ASIC
Buts :
• Gérer au mieux l’hétérogénéité de la nature des fonctions qui
composent le système (du logiciel à l’architecture reconfigurable)
• Comparer les différents choix de partitionnement
• Définir les interfaces entre le SW et le HW
• Valider le système complet (co-vérification et co-simulation) 113
Flot de CoDesign
SPECIFICATION HAUT NIVEAU DE L’APPLICATION

ordonnancement de l’application
proposition de candidats HW et SW
ESTIMATION SYSTEME

ESTIMATION LOGICIELLE ESTIMATION MATERIELLE

PARTITIONNEMENT Choix des réalisation HW ou SW

SYNTHESE LOGICIELLE SYNTHESE INTERFACE SYNTHESE MATERIELLE

COSIMULATION

Retour d’expérience IMPLEMENTATION


HW et SW

114
TESTS
Les nouvelles utilisations des FPGA
Technique héritière direct des SOC : System On Chip

Différentes notations :

• SORC (Xilinx) : System On a Reconfigurable Chip


• SOPC (Altera) : System On a Programmable Chip
• CSOC : Configurable System On Chip

L’utilisation des techniques de CoDesign est inévitable !

L’engouement pour les SORC est certain, vue le nombre de cœur de


processeurs (IP ou câblés) présents sur le marché
115
Application réalisée

Application Audio
Communication par
HyperTerminal
Bus macros
Entrée audio

BM UART PLB/OPB Power BM


Bridge PC
BM BM
Module Module
PLB

PLB

Reconfigurable BM BM Reconfigurable
1 2 a- Module reconfigurable 1 b- Module fixe c- Module reconfigurable 2
BM ICAP BM
Block
Controller RAM
BM BM

ICAP
Module Statique
FPGA : Virtex II
PRO

Sortie audio gauche Sortie audio droite

Bitstreams pour la
configuration

d- Emplacement des modules reconfigurables


116
Application réalisée

Application Traitement d’image


VGA screen

Terminal computer

Static Module
DCM
BM UART

BM O P
Power
Reconfigurable Video P PLB/OPB L
PC
Bridge B
module for BM Capture B

processing video BM ICAP Block


Controller Network client for
BM RAM receiving video
processing stream

I2C
Master ICAP
FPGA : Virtex II
PRO
Bitstreams for
Video Decoder configuration
Board

Live video stream


source

117
Application réalisée

Application Traitement d’image

Bus macro

Reconfigurable
module
118
MERCI ...

119

Vous aimerez peut-être aussi