Etude des circuits logiques programmables Les FPGA Etude

publicité
Les circuits logiques programmables - FPGA
Etude
Etude des
des circuits
circuits logiques
logiques
programmables
programmables
Les
Les FPGA
FPGA
Fabrice CAIGNET
LAAS - CNRS
[email protected]
F.CAIGNET
1
Les circuits logiques programmables - FPGA
Contenu
Contenu::
I. Les Réseaux Logiques Programmables : PLD
II. Les technologies des éléments programmables
III. Les FPGAs
IV. Les outils de développement
V. Les tendances des composants programmables
VI. Le langage VHDL
F.CAIGNET
2
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
PLD = Programmable Logic Devices
Circuits logiques + ou - complexes remplaçant l’association de plusieurs
boîtes logiques
• Simplification de câblage
• Encombrement réduit
• Diminution des coûts
• Facilité d’utilisation
• Diminution du risque des pannes
entrées
PLD
Association de
fct Logiques
Sorties
1 seul circuit
intégré
F.CAIGNET
3
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
Importance du «Time To Market »
Le cahier des charges du développement d’un système doit prendre
en compte les paramètres suivants :
• Le coût de production
Nb de ventes
• Les performances
• La consommation
• L'intégration
• L'évolution du produit
Entreprise 1
Entreprise 2
• La maintenance
• La protection industrielle
Deux alternatives existent :
temps
• Les ASIC (Application Specific integrated Circuits)
• Les Circuits à réseaux programmables
F.CAIGNET
4
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
Quelles différences entre un ASIC et un PLD
ASIC
Application Specific Integrated Circuits
PLD
Programmable Logic Device
Choix du fondeur
Choix du circuit
Conception du circuit
(full-custom - bibliothèques)
Programmation du circuit
(logiciel + interface circuit)
Très grand niveau d’intégration
Intégration limitée
Fabrication
à très grand nombre
d’exemplaire
Implémentation
nombre d’exemplaires
limité
• Un circuit dédié à une application
• Choix de la technologie
Maximum de performances
F.CAIGNET
• Un circuit programmé pour une
application
• Technologie figée mais :
Facilité de programmation
5
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
F.CAIGNET
6
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
Avantages des PLD
• Le coût et temps de développement.
• Le prototypage et temps de simulation accéléré.
• La prise de risque est réduite. (modifications possibles,
risque d'inventaire)
• Des supports logiciels peu chers.
• Des produits éprouvés. (pas de vecteurs de test structurel)
Inconvénients
• Un niveau d'intégration moindre aux ASIC.
• Une consommation plus élevée.
• Des prix importants et une faible disponibilité pour de
grandes séries .
F.CAIGNET
Symbolisation
Normalisée
7
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
Quatre Familles de PLD
boîtes logiques
PLD
PAL
F.CAIGNET
GAL
EPLD
FPGA
8
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
PAL (Programmable Array Logic) : réseaux logiques programmables
• Développés au début des années 70 par MMI (ex-AMD)
• La programmation se fait par destruction de fusibles
• Aucun fusible n’est grillé à l’achat de la PAL
Fusibles
Fusibles
Les fonctions ET sont programmables
F.CAIGNET
9
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
PAL (Programmable Array Logic) : réseaux logiques programmables
Représentation :
- les fusibles intactes sont représentés par une connexion
- les fusibles détruits sont représentés par une absence de
connexion
Fusible
Fusibleintact
intact
Fusible
Fusible détruit
détruit
Exemple d’un “OU EXCLUSIF”
F.CAIGNET
10
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
PAL (Programmable Array Logic) : réseaux logiques programmables
Que peut-on trouver dans une PAL??
Tout P.A.L. est constitué :
- D'entrées (Input): I1 à In avec
8<n<20.
- De sorties (Output) Ou d’entrées /
sorties (I/O) de type Totem Pôle ou
Trois Etats :O1 à On ou IO1 à IOn
(2<n<15).
On trouve aussi :
- Une entrée d'horloge (Clock): Clk
ou Clock.
- Une entrée de validation des
sorties trois états: OE (Output
Enable) ou Enable.
- Une entrée de remise à zéro des
registres: RESET.
F.CAIGNET
11
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
PAL : Matrice de programmation
La plupart des P.A.L. sont constitués :
- Un ensemble de portes « ET »
sur lesquelles viennent se
Matrice
Matricede
de
programmation
programmation
connecter les variables d’entrée et
leurs compléments.
- Un ensemble de portes « OU »
sur lesquelles les sorties des
opérateurs « ET » sont connectées
les variables d’entrée.
F.CAIGNET
12
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
PAL : Structure de sortie
Il existe 3 structures de sortie qui peuvent-être aussi de entrées/sorties :
- Combinatoire
- Séquentielle
- versatiles
• Entrées / Sorties combinatoires
Sortie 3 états rebouchée vers la matrice
une sortie peut servir de variable intermédiaire
une sortie peut servir d’entrée (en mode haute impédance)
F.CAIGNET
13
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
PAL : Structure de sortie
• Entrées / Sorties séquentielles, à registre
Une bascule D permet la logique séquentielle
sorties séquencées sur une horloge H
une sortie ne peut pas servir d’entrée
une commande OE (Ouput Enable) permet de désactiver la sortie
OE
Sortie à REGISTRE
F.CAIGNET
14
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
PAL (Programmable Array Logic) : Structure de sortie
• Entrées / Sorties versatiles (VPAL)
On peut configurer par programmation le mode d’utilisation de la broche
de sortie
Entrée / Sortie VERSATILE
F.CAIGNET
15
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
PAL (Programmable Array Logic) : Exemple de PAL22V10 (AMD)
F.CAIGNET
16
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
GAL (Généric Array Logic), « LATICE Semiconductor »
Réseau Logique
Reprogrammable
n
u
st
e
L
e
l
A
b
a
G faç
n
t
f
U
n
e
e
L uem
A
P triq
élec
F.CAIGNET
17
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
Erasable Programmable Logic Device
Circuit Logique
reprogrammable
de grande capacité
F.CAIGNET
18
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
Forecasting Programmable Gate
Array
Réseau de portes
programmables à la demande
La densité croissante des circuits programmables actuels, notamment des
FPGA (Field Programmable Gate Array), permet le prototypage rapide des
circuits numériques à grande complexité. Aussi, il est possible de tester
rapidement la validité de concepts architecturaux nouveaux: l'implémentation
complète d'un processeur sur des circuits FPGA est aujourd'hui à notre
portée, entraînant ainsi plus de possibilités d'évaluation que celles offertes
par des simulateurs logiciels.
De plus, la reprogrammabilité de certains circuits FPGA a ouvert de
nouvelles voies de recherche: des méthodologies de conception des
systèmes reconfigurables, capables d'évoluer ou de s'adapter à des
environnements ou à des contraintes variables.
F.CAIGNET
19
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
Résumé graphique des familles de P.L.D.
PLD
Circuits Logiques
Programmables
PAL et FPLS
PAL à fusibles bipolaires
PAL CMOS effaçables électriquement
GAL effaçables électriquement
PAL effaçables aux UV
GPLD - EPLD
LCA
FPGA
F.CAIGNET
20
Les circuits logiques programmables - FPGA
I.I.Les
LesRéseaux
RéseauxLogiques
LogiquesProgrammables
Programmables::PLD
PLD
Les principaux critères de choix des P.L.D. sont:
- Vitesse de fonctionnement
- Nombre de portes
- Consommation
- Technologie
- Prix
F.CAIGNET
21
Les circuits logiques programmables - FPGA
II.
II.Les
Lestechnologies
technologiesdes
deséléments
élémentsprogrammables
programmables
Généralité sur les technologies des éléments programmables
On trouve les éléments programmables dans les blocs logiques des PLDs, afin de
leur donner une fonctionnalité, mais aussi dans les matrices d'interconnexions
entre ces blocs. Un élément programmable peut être considéré comme un
interrupteur. Afin de respecter les contraintes imposées à l'ingénieur, les éléments
programmables doivent posséder plusieurs qualités :
- Ils doivent occuper une surface la plus petite possible (Ce point
s'explique pour des raisons évidentes de coût. Ceci est d'autant plus vrai que l'on
désire en disposer d'un grand nombre).
- Ils doivent posséder une résistance de passage faible et une résistance
de coupure très élevée.
- Ils doivent apporter un minimum de capacité parasite.
Les deux derniers points s'expliquent quant à eux pour des raisons de performance
en terme de fréquence de fonctionnement du PLD. Plus la résistance et la capacité
sur le chemin d'un signal sont faibles, plus la fréquence de ce signal peut être
élevée (RC effet).
F.CAIGNET
22
Les circuits logiques programmables - FPGA
II.
II.Les
Lestechnologies
technologiesdes
deséléments
élémentsprogrammables
programmables
Les technologies à fusibles
Les fusibles sont grillés en appliquant des tensions élevées (12V)
Technologie fusible-diode
Technologie fusible-transistor
Technologies
Technologiesmaintenant
maintenantabandonnées
abandonnéespour
pourdes
desraisons
raisonsde
demanque
manquede
defiabilité.
fiabilité.
Le
fait
de
"griller"
les
fusibles
provoque
des
perturbations
qui
peuvent
affecter
Le fait de "griller" les fusibles provoque des perturbations qui peuvent affecterlelereste
restedu
ducircuit.
circuit.
De
plus,
cette
programmation
est
irréversible
et
ne
permet
donc
pas
la
re-programmabilité.
De plus, cette programmation est irréversible et ne permet donc pas la re-programmabilité.
F.CAIGNET
23
Les circuits logiques programmables - FPGA
II.
II.Les
Lestechnologies
technologiesdes
deséléments
élémentsprogrammables
programmables
Les technologies à anti-fusibles (Actel, QuickLogic, Crosspointet Xilinx)
un anti-fusible est un élément programmable qui à l'inverse des fusibles n'est
passant qu'après programmation.
La connexion s effectue en détruisant un diélectrique
Technologie anti-fusible PLICE
Technologie anti-fusible VIA-Link
Petite
Petitetaille
taille(grande
(grandecapacité
capacitéd’intégration)
d’intégration)
Technologie
Technologiedifficile
difficileààmaîtriser
maîtriser
Base
Baseimpédance
impédance(rapidité)
(rapidité)
ne
nepermettent
permettentpas
paslalareprogrammation
reprogrammation
F.CAIGNET
24
Les circuits logiques programmables - FPGA
II.
II.Les
Lestechnologies
technologiesdes
deséléments
élémentsprogrammables
programmables
Les technologies à EPROM/FLASH (Actel, AMD...)
Il existe deux variantes de l'EPROM,
- Erasable Programmable Read Only Memory classique (EPROM)
- Electrically Erasable Programmable Read Only Memory (EEPROM).
Cellule à grille flottante d’une EPROM
Petite
Petitetaille
taille(grande
(grandecapacité
capacitéd’intégration)
d’intégration)
Système d’interconnexion
Possibilité
Possibilitéde
dereprogrammation
reprogrammationààloisir
loisir
Base
Baseimpédance
impédance(rapidité)
(rapidité)
F.CAIGNET
25
Les circuits logiques programmables - FPGA
II.
II.Les
Lestechnologies
technologiesdes
deséléments
élémentsprogrammables
programmables
Les technologies à EPROM/FLASH (Actel, AMD...)
Le système à Grille flottante :
Charge de la grille
VT1
Non programmé
VT0
Programmé
Etat
n'existepas
pasde
decharge
chargedans
danslalagrille
grilleflottante
flottanteet
etlele
Etatnon
nonprogrammé
programmé: :ililn'existe
transistor
transistorpeut
peutêtre
êtreutilisé
utilisénormalement.
normalement.
En
Encours
coursde
deprogrammation
programmation(effet
(effettunel,
tunel,passage
passaged'un
d'unfort
fortcourant
courantentre
entrelala
source
sourceet
etleledrain),
drain),une
unepartie
partiede
delalacharge
chargeest
estretenue
retenuedans
danslalagrille
grilleflottante.
flottante.Le
Le
seuil
du
transistor
augmente,
seuil du transistor augmente,
Le
Letransistor
transistorest
estbloqué
bloquéjusqu'à
jusqu'àce
cequ'il
qu'ilsoit
soit"effacé".
"effacé".
F.CAIGNET
26
Les circuits logiques programmables - FPGA
II.
II.Les
Lestechnologies
technologiesdes
deséléments
élémentsprogrammables
programmables
Les technologies à RAM statique -SRAM (XILINX, ALTERA...)
Elle fait appel à une phase de chargement de la configuration depuis l'extérieur
Commande
Commande
Structure +
complexe
(4 à 6
Transistors)
Transistor de passage
Portes de passage
Portes de passage
Grande
Grandepossibilité
possibilitéde
deprogrammation
programmation
Place
Placeimportante
importante
Technologie
Technologiede
detype
typeCMOS
CMOS(très
(trèsbien
bien
Mémoire
Mémoirevolatile
volatile(reprogrammation
(reprogrammation
maîtrisée)
maîtrisée)
obligatoire)
obligatoire)
F.CAIGNET
27
Les circuits logiques programmables - FPGA
II.
II.Les
Lestechnologies
technologiesdes
deséléments
élémentsprogrammables
programmables
Les technologies à RAM statique -SRAM (XILINX, ALTERA...)
Exemples de structure SRAM implantées
F.CAIGNET
28
Les circuits logiques programmables - FPGA
II.
II.Les
Lestechnologies
technologiesdes
deséléments
élémentsprogrammables
programmables
Récapitulatif :
La technologie EEPROM
Les PLD à EPROM se programment électriquement et s’effacent aux UV,
Par contre
Les PLD à EEPROM se programment quasi instantanément, et gardent
la configuration jusqu’à une nouvelle programmation (même en l’absence
de tension)
La technologie EEPROM
Facile et rapide à programmer, la configuration disparaît sans alimentation.
F.CAIGNET
29
Les circuits logiques programmables - FPGA
II.
II.Les
Lestechnologies
technologiesdes
deséléments
élémentsprogrammables
programmables
Technologies utilisées par les différents fabricants
F.CAIGNET
30
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Rappel des caractéristiques principales
Comme nous venons de le voir, les éléments programmable sont à la
base des caractéristiques des FPGA
Le choix d’un PLD dépendra dont :
• La densité d’intégration
• De la rapidité de fonctionnement (paramètre directement lié à
l’impédance intrinsèque des éléments programmables
• De la facilité de mise en œuvre (programmation, reprogrammation…)
• de la possibilité de maintien de l’information
F.CAIGNET
31
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Rappel des caractéristiques principales
Les structures PAL sont à la base des CPLD, FPGA d’aujourd’hui
Zone de programmation
F.CAIGNET
OMLC
Output Logic MacroCell
(Combinatoires
Séquentielles
Versatiles
32
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Les CPLD (Complexe Programmable Logic Device) :
Ces circuits ont une capacité de portes et de configuration très largement
supérieur aux PAL
Macro-cellules composées de :
- une zone de portes
logiques
- un bascule
Bloc
Logiques
• •Architecture
Architectureidentique
identiqueaux
auxPAL
PAL
• •équivalent
équivalentààplusieurs
plusieursPAL
PALséparées
séparéespar
par
Zone
d ’interconnexion
Bloc
Logiques
F.CAIGNET
une
unezone
zoned’interconnexion
d’interconnexion
Bloc
Logiques
• •100
100àà100000portes
100000portes
• •16
16àà1000
1000bascules
bascules
33
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Les FPGA (Fields Programmable Gate Array) : Réseau de portes
programmables à la demande - XILINX et ALTERA.
• les FPGA à la différence des CPLD sont assimilables à des A.S.I.C.
programmables par l’utilisateur.
• La puissance de ces circuits est telle qu’ils peuvent être composés de plusieurs
milliers voir millions de portes logiques et de bascules. Les dernières générations
de FPGA intègrent même de la mémoire vive (RAM). Les deux plus grands
constructeurs de FPGA sont XILINX et ALTERA.
• Ils sont composés de blocs logiques élémentaires (plusieurs milliers de portes)
qui peuvent être interconnectés.
• Critère de choix : vitesse de fonctionnement plus élevées pour les CPLD
F.CAIGNET
34
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Structure interne d’un FPGA type XILINX
leleFPGA
FPGAest
estprésenté
présentépour
pourlala1er
1erfois
foispar
par
XILINX
XILINX avec
avecdes
desstructure
structure: :
• •blocs
blocslogiques
logiquesconfigurables
configurables
• •blocs
blocsd’I/O
d’I/Oconfigurables
configurables
• •des
desinterconnexions
interconnexionsentre
entrebloc
bloc
configurables
configurables
F.CAIGNET
35
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Structure interne des FPGA
Exemple
Exemplede
destructures
structuresde
deFPGA
FPGA
F.CAIGNET
36
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Structure interne des FPGA
FPGA « Raw-based »
F.CAIGNET
FPGA « Sea of gates »
37
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Les interconnexions programmables dans les FPGA
Dans
Dansles
lesFPGA
FPGAles
lesblocs
blocssont
sont
interconnectés
interconnectésde
dedifférentes
différentes
façons
façons: :
••des
desoptimisations
optimisationsde
deroutage
routage
sont
sontpossibles
possibles
••sélections
sélectionsde
delignes
lignesou
ou
colonnes
colonnes
••canaux
canauxde
deroutage
routagerapide
rapide
(longues
(longuesdistances)
distances)
F.CAIGNET
38
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Les interconnexions programmables dans les FPGA
Afin
Afinde
dediminuer
diminuerlelenombre
nombrede
decanaux
canauxde
deroutage,
routage,ils
ilssont
sontsegmentés
segmentésou
oupeuvent
peuvent
l'être
l'êtrepar
parprogrammation.
programmation.Cette
Cettedernière
dernièreméthode
méthodeest
estutilisée
utiliséedans
danslelecas
casd'une
d'une
technologie
technologiede
deprogrammation
programmationpar
paranti-fusibles
anti-fusiblescar
carles
leséléments
élémentsprogrammables
programmablessont
sont
de
depetite
petitetaille.
taille.
On
Onnotera
noterales
lescompromis
compromisqu'il
qu'ilexiste
existeentre
entrenombre
nombrede
decanaux
canauxde
deroutage,
routage,nombre
nombre
d'éléments
d'élémentsde
deprogrammation
programmationet
ettemps
tempsde
depropagation.
propagation.
Les figures illustrent les différents types de segmentation pour un même exemple de
routage
F.CAIGNET
39
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Les types de blocs logiques dans les FPGA
IlIlexiste
existe44types
typesde
deblocs
blocslogiques
logiques: :
- -Les
Lesmacrocellules.
macrocellules.
- -Les
Lesblocs
blocsààmultiplexeurs.
multiplexeurs.
- -Les
LesLUT.
LUT.
- -Les
Lescellules
cellulessymétriques.
symétriques.
Cellules symétriques :
Ces blocs de petite taille
servent à réaliser des fonctions
logiques simples mais aussi
comme ressources de
connexion
F.CAIGNET
40
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Les types de blocs logiques dans les FPGA
Les Multiplexeurs :
En venant programmer les entrées du multiplexeur et en pilotant les signaux de
sélection, il est possible de réaliser toutes les fonctions logiques (à autant d'entrées
que de signaux de sélection).
Leur très petite taille est particulièrement adaptée à la technologie anti-fusible.
F.CAIGNET
41
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Les types de blocs logiques dans les FPGA
Les LUT (Look-Up Table) :
Les Look-Up Table sont un cas particulier des cellules à multiplexeur, avec de 2
à 9 entrées et dont la technologie du point mémoire est une technologie SRAM.
Une Look Up Table de N entreées est une mémoire qui peut implémenter
n'importe quelle fonction booléenne de N variables.
Les N entrées sont utilisées comme adresse d'une mémoire de 2n bits qui code
la fonction booléenne à réaliser. On peut donc réaliser 2n fonctions différentes avec
une LUT à N entrées.
Les Look-Up Tables sont des blocs logiques de très petite granularité dans un
CLP. Comme Les Look-Up Table possèdent une bascule de sortie, les architectures
à base de Look-Up Table sont beaucoup plus riches en bascules que les
architectures à macro-cellules.
F.CAIGNET
42
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Les types de blocs logiques dans les FPGA
Les LUT (Look-Up Table) :
Entrées
Point mémoires
F.CAIGNET
43
Les circuits logiques programmables - FPGA
III.
III.Les
LesFPGA
FPGA
Les types de blocs logiques dans les FPGA
Les Macro-cellules :
On retrouve dans certaines macro-cellules
toute la complexité d'un PAL.
Il y a en général un nombre réduit de macrocellules dans un EPLD, car ces cellules
occupent une grande surface.
la macro-cellule présente plusieurs intérêts :
- grand nombre de variables d'entrées
possibles
- grand nombre de termes de produits
possibles
F.CAIGNET
44
Les circuits logiques programmables - FPGA
IV.
IV.Les
Lesoutils
outilsde
dedéveloppement
développement
Deux
DeuxOutils
Outilssont
sontnécessaires
nécessairesààlalaprogrammation
programmationdes
desFPGA
FPGA: :
- -Le
Lesystème
systèmede
dedéveloppement
développement
- -Le
programmeur
Le programmeur
F.CAIGNET
45
Les circuits logiques programmables - FPGA
IV.
IV.Les
Lesoutils
outilsde
dedéveloppement
développement
Les systèmes de développement
Ces
Cessystèmes
systèmesproduisent
produisentune
unetable
tablereprésentant
représentantles
lesfusibles
fusiblesààdétruire
détruireen
en
fonction
fonctiondes
deséquations
équationslogiques,
logiques,diagramme
diagrammed'états
d'étatset
ettables
tablesde
devérités
véritésécrit
écritdans
dans
lelelangage
langagepropre
propreau
ausystème,
système,c'est
c'estlelerôle
rôledu
ducompilateur
compilateurou
ousynthétiseur.
synthétiseur.
La
Ladescription
descriptiondu
dufonctionnement
fonctionnementdes
descircuits
circuitspeut
peutse
sefaire
fairede
deplusieurs
plusieursfaçons,
façons,
soit
soit: :
- -Par
(Portes
Parun
unschéma
schémaààbase
basede
defonctions
fonctionslogiques
logiquesélémentaires
élémentaires(Portes
ET,OU,NON,
ET,OU,NON,…
…bascules,
bascules,compteurs,
compteurs,registres
registresààdécalages).
décalages).
- -En
Enutilisant
utilisantun
unlangage
langagede
dedescription
descriptioncomportementale
comportementaleH.D.L.
H.D.L.
(Hardware
(HardwareDescription
DescriptionLanguage).
Language).Les
Lesplus
plusanciens
ancienssont
sontPALASM,
PALASM,ORCAD/PLD
ORCAD/PLDet
et
leleplus
plusconnu
connuet
etutilisé
utiliséest
estsans
sansconteste
contesteABEL
ABEL(utilisé
(utilisépar
parlalaplus
pluspart
partdes
des
systèmes
systèmesde
dedéveloppements).
développements).Enfin
Enfinles
leslangages
langagesdit
ditde
dehaut
hautniveau,
niveau,VHDL
VHDL( (Very
Very
high
highspeed
speedHardware
HardwareDescription
DescriptionLanguage)
Language)et
etVERILOG
VERILOGsont
sonten
engénéral
généralutilisés
utilisés
pour
pourdes
descircuits
circuitscomplexes.
complexes.Le
Lelangage
langageVHDL
VHDLest
esttrès
trèsutilisé
utiliséen
enEurope.
Europe.
F.CAIGNET
46
Les circuits logiques programmables - FPGA
Voir 2ème fichier
F.CAIGNET
47
Les circuits logiques programmables - FPGA
IV.
IV.Les
Lesoutils
outilsde
dedéveloppement
développement
Les systèmes de développement
- -Par
Parl’utilisation
l’utilisationde
degraphes
graphesd'états
d'états(Flow
(FlowStates
StatesMachines,
Machines,FSM)
FSM)
F.CAIGNET
48
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAM7000
M7000de
deALTERA
ALTERA
Presentation générale
••
Eléments
Elémentsprogrammables
programmablesde
detype
typeEEPROM,
EEPROM,basé
basésur
surleleprincipe
principede
de
seconde
secondegénération
générationde
dematrice
matriceprogrammables.
programmables.
••
••
••
F.CAIGNET
5.0V,
5.0V,IEEE
IEEE1149.1
1149.1test
teststandard
standard
600
600àà5000
5000portes
portes
55ns
nsPin
Pinto
topin
pindelay
delay(175MHz)
(175MHz)
49
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAM7000
M7000de
deALTERA
ALTERA
Performances de certains FPGA parmi les MAX7000
F.CAIGNET
50
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAM7000
M7000de
deALTERA
ALTERA
Les Macrocells
F.CAIGNET
51
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAM7000
M7000de
deALTERA
ALTERA
Les contraintes de temps (timing constrains)
Chaque
Chaqueélément
élémentintervient
intervientet
etdoit
doitêtre
êtreprit
priten
encompte
comptedans
dansl’évaluation
l’évaluationdes
destemps
temps
de
depropagation
propagation
F.CAIGNET
52
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAM7000
M7000de
deALTERA
ALTERA
Les contraintes de temps (timing constrains)
Exemple
Exempled’application
d’applicationààun
uncas
cassimple
simplede
delogique
logiquecombinatoire
combinatoire
F.CAIGNET
53
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAM7000
M7000de
deALTERA
ALTERA
Les contraintes de temps (timing constrains)
Exemple
Exempled’application
d’applicationau
aucas
casséquentiels
séquentiels
F.CAIGNET
54
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAM7000
M7000de
deALTERA
ALTERA
Le format de test JTAG : IEEE 1149.1 (the boundary scan standard)
F.CAIGNET
55
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGACX4000
CX4000de
deXilinx
Xilinx
F.CAIGNET
56
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGACX4000
CX4000de
deXilinx
Xilinx
F.CAIGNET
57
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGACX4000
CX4000de
deXilinx
Xilinx
F.CAIGNET
58
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAFLEX6000
FLEX6000de
deALTERA
ALTERA
Informations générales
Informations
Informationsgenerales
generales
- -Nb
Nbde
deportes
portes: :5000
5000- -24000
24000
The
Thelogic
logicarray
arraycontains
containslogic
logicarray
arrayblocks
blocks
(LABs)
(LABs)composed
composedof
of10
10logic
logicelements
elements
(LEs)
that
communicate
through
(LEs) that communicate throughaafully
fully
populated
populatedlocal
localinterconnect
interconnectstructure
structure
F.CAIGNET
59
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAFLEX6000
FLEX6000de
deALTERA
ALTERA
Informations générales
LAB
Le
Le
LAB
Le
Le
Interleaved
InterleavedLABs
LABs
Chaque
ChaqueLe
Led’un
d’unmême
mêmeLAB
LABpeuvent
peuvent
être
interconnectés
ainsi
qu’à
être interconnectés ainsi qu’àleurs
leurs
plus
proches
voisins
plus proches voisins
F.CAIGNET
FastTrack
FastTrackInterconnect
Interconnect
Les
LesLAB
LABpeuvent
peuventêtre
êtreinterconnectés
interconnectés
grâce
à
un
réseau
d’interconnections
grâce à un réseau d’interconnections
longue
longuedistance
distance
60
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAFLEX6000
FLEX6000de
deALTERA
ALTERA
Informations générales : que sont les LE (logic Element)?
Chaque
ChaqueLE
LE(Logic
(LogicElement)
Element)contient
contient11LUT
LUTaa44entrees
entrees
F.CAIGNET
61
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAFLEX6000
FLEX6000de
deALTERA
ALTERA
Informations générales : que sont les LE (logic Element)?
Le
LeCarry
CarryChain
Chain
F.CAIGNET
62
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAFLEX6000
FLEX6000de
deALTERA
ALTERA
Informations générales : que sont les LE (logic Element)?
Le
LeCascade
Cascadechain
chain
F.CAIGNET
63
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAFLEX6000
FLEX6000de
deALTERA
ALTERA
Informations générales : performances
F.CAIGNET
64
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAFLEX10K
FLEX10Kde
deALTERA
ALTERA
Informations générales
Premier circuit programmable dit:
embedded programmable logic device (PLD) family,
providing System-on-a-Programmable-Chip (SOPC)
De 10000 à 250000 portes
F.CAIGNET
65
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAAPEX
APEXde
deALTERA
ALTERA
Informations générales
The APEX™ device family ranges from 30,000 to over 1.5 million gates (113,000 to
over 2.5 million system gates) and ships on 0.22-µm, 0.18-µm, and 0.15-µm
processes. Introduced in 1999 with all copper interconnect layers
F.CAIGNET
66
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAAPEX
APEXde
deALTERA
ALTERA
Informations générales
(1 ESB = 4096bits)
Protocole
Protocolede
de
communication
communication
1Gbs
1Gbs
F.CAIGNET
67
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAAPEX
APEXde
deALTERA
ALTERA
Informations générales
Package informations
F.CAIGNET
68
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAAPEX
APEXde
deALTERA
ALTERA
Informations générales
F.CAIGNET
69
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAAPEX
APEXde
deALTERA
ALTERA
F.CAIGNET
70
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAAPEX
APEXde
deALTERA
ALTERA
Structure
Système de communication entre les LABs
Chaque MegaLAB contient un groupe de 16 ou 24 LABs
F.CAIGNET
71
Les circuits logiques programmables - FPGA
F.CAIGNET
72
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAAPEX
APEXde
deALTERA
ALTERA
Structure des Le
F.CAIGNET
73
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAAPEX
APEXde
deALTERA
ALTERA
Mode de programmation des Le
LE mode normal est utilisé pour la synthèse de structures combinatoires ou
séquentiel, avec les possibilités de mise en cascade
F.CAIGNET
74
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAAPEX
APEXde
deALTERA
ALTERA
Mode de programmation des Le
LE mode arithmétique est utilisé pour la synthèse de fonctions addition,
comparaison, accumulation…
F.CAIGNET
75
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAAPEX
APEXde
deALTERA
ALTERA
Mode de programmation des Le
LE mode comptage propose des clock enable, counter enable, synchrone,
Asynchrones, up, douwn, …
F.CAIGNET
76
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGACyclone
Cyclonede
deALTERA
ALTERA
F.CAIGNET
77
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGACyclone
Cyclonede
deALTERA
ALTERA
Cyclone I
Cyclone II
F.CAIGNET
78
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAStratix
Stratixde
deALTERA
ALTERA
F.CAIGNET
79
Les circuits logiques programmables - FPGA
V.
V.Le
LeFPGA
FPGAStratix
Stratixde
deALTERA
ALTERA
F.CAIGNET
80
Les circuits logiques programmables - FPGA
VI.
VI.Les
Lestendances
tendancesdes
descomposants
composantsprogrammables
programmables
Evolution des systèmes vers les très grandes complexités
Complexité
FPGA
CPLD
(réduction
(réductiondes
desdimensions
dimensionsde
de
transistors
transistors- -densités
densitésdd’intégration)
’intégration)
PAL
GAL
LCA
CPLD
- -des
desprogrès
progrèslogiciel
logicieldes
desoutils
outilsde
de
développement
développement(langage
(langageHDL
HDL- simplicité
simplicitéde
dedéveloppement)
développement)
PAL
1970
F.CAIGNET
1980
Evolutions
Evolutionsrésultantes
résultantes: :
- -des
desprogrès
progrèstechnologiques
technologiques
1990
2001
Années
81
Les circuits logiques programmables - FPGA
VI.
VI.Les
Lestendances
tendancesdes
descomposants
composantsprogrammables
programmables
Performances :
F.CAIGNET
82
Les circuits logiques programmables - FPGA
VI.
VI.Les
Lestendances
tendancesdes
descomposants
composantsprogrammables
programmables
Evolution vers les systèmes de très grande complexité
APEX Devices: System-on-a-Programmable-Chip Solutions from ALTERA chip
30,000
30,000vers
versplus
plusde
de1.5
1.5million
millionde
deportes
portes
(113,000
(113,000to
toover
over2.5
2.5million
million
system
systemgates)
gates)
Technologie
0.22-µm,0.18-µm
0.18-µmetet
Technologie: :0.22-µm,
0.09µm
0.09µm
Ports
128àà808
808I/O
I/O
Portsdd’entrée/sortie
’entrée/sortie: :128
Introduction
des
«
System-on-chip
Introduction des « System-on-chip»»
dans
dansles
lescomposants
composantsprogrammables
programmables
(RAM,
ROM,
FIFO,
CAN,
(RAM, ROM, FIFO, CAN,PCI,
PCI,µP…..)
µP…..)
Aujourd’hui,
Aujourd’hui,près
prèsde
de50%
50%des
desFPGA
FPGAsont
sontdes
desSoC
SoC
Introduction
Introductiondes
desIPs
IPsdans
dansles
lesFPGA
FPGA(Intelectual
(IntelectualProperties)
Properties)
F.CAIGNET
83
Les circuits logiques programmables - FPGA
VI.
VI.Les
Lestendances
tendancesdes
descomposants
composantsprogrammables
programmables
Quels sont les problèmes limitant l’évolution et les performances des FPGA’s?
Les
Lesinterconnexions
interconnexions
Plus les technologies évoluent plus les interconnexion deviennent
des éléments actifs des circuits
La
Ladensité
densitéd’intégration
d’intégration
La quantité de mémoire nécessaire pour accroître les performances
des FPGA devient très importante
Les
Lessofts
softs(méthodes
(méthodesde
deprogrammation)
programmation)évolution
évolutionvers
versles
les««systemC
systemC»»
Les logiciel de développement évoluent vers des systèmes types
Visual C++. C’est une obligation face à l’augmentation des
possibilités de programmation des FPGA
F.CAIGNET
84
Téléchargement