FPGA - Free

publicité
Les composants
programmables
PLAN
I.
Introduction
II.
Les mémoires vives
III.
Les mémoires mortes
IV.
Évolution des composants programmables
V.
Les FPGA
I INTRODUCTION
Il existe deux grandes familles de circuits
logiques programmables :
• Les mémoires mortes programmables
appelées PROM
• Les PLD (programmable logic device)
Quelques rappels : Les mémoires
• Une mémoire est un élément de stockage d’information
• Les bits stockés sont organisés sous forme de matrice: la
dimension
de la mémoire est donnée par le nombre de lignes fois la
largeur de
la ligne
• Chaque ligne de la mémoire est appelée un mot. Elle est
identifiée
par une adresse (numéro de la ligne)
• Le nombre de lignes est toujours une puissance de deux
• Deux opérations sont possibles, sur un mot complet:
La lecture (read) et l’écriture (write)
Classification des mémoires
II Les Mémoires Vives : RAM
Random Acces Memory, mémoires vives
• Des mémoires contenant des programmes et des
données
• Information disponible tant que le courant est présent
• 2 types de RAM: StaticRAM ET DynamicRAM
Statique Ram: Un bit = une bascule D
(4 transistors)
Dynamique Ram : Un bit = une capacité (1 transistor)
RAM Statique
data
\data
1
2
mem
2
select
1
RAM Statique : simulation
un CI Ram
de 4 mots de 4 bits
NB: Les signaux cs et wr
sont actifs à 0
(niveau bas)
Addition horizontale de CI pour augmenter le nombre de bits d ’un mot
Une mémoire de 4 mots de 8 bits chacun
Addition verticale de CI pour augmenter le nombre de mots
SRAM de 8 mots de 4 bits
LES RAM DYNAMIQUE (DRAM)
• Info stockée dans un condensateur sous forme de charge
électrique
• Plus grande intégration mais nécessite des opérations de
rafraîchissement.
• Rafraîchissement= lire le bit et le réécrire environ toutes
les 10nsec
Avec rafraîchissement
Tension en volts
5
‘1’
3
2
0
‘0’
temps
RAM dynamique
•
•
•
•
Un seul transistor : gain de place
Cycle complexe de lecture
Lecture puis ré-écriture
Cycle de rafraîchissement
data
select
Présentation des DRAM SIMM
Single In line Memory Module
III Les Mémoires mortes: Read Only Mémory
• Les données ne peuvent être que lues
• L’écriture se fait soit lors de la fabrication
ou nécessite un matériel spécialisé.
• La donnée est retenue même en absence du
courant (donnée non volatile)
1 Les différentes familles de PROM
2) PROM: Programmable ROM
• ROM programmable par l'utilisateur une
seule fois:
1 point mémoire = fusible
• EPROM: PROM effaçable plusieurs fois
Effacement = soumettre l ’Eprom à un
rayonnement ultraviolet (UVPROM) ou un
courant électrique EEPROM env 15 min
• L’écriture nécessite env un temps 1000 +
grand que dans une Ram
a) PRINCIPE DES PROM A FUSIBLE
Structure à :
• ET fixes (les circuits
de décodage d'adresse)
• OU programmables
(les données placées
dans la mémoire).
A
D
R
E
S
S
E
S
00
01
10
11
Zone mémoire
ROM (suite)
ROM (suite)
Bit
Word
Fusible - métallique (obsolète)
- polysilicium
Le transistor fait fusible
PRINCIPE DES PROM A FUSIBLE
• Lorsque la mémoire est livrée tous les fusibles
sont intacts. Elle ne contient alors que des l.
• La programmation va consister à faire sauter les
fusibles aux emplacements où on souhaite
mémoriser des 0 en utilisant une haute tension
(généralement 12 volts), pour faire sauter le ou les
fusibles.
• Les PROM à fusibles sont en voie de disparition
Fusibles métalliques ou Si
Lignes métalliques : interconnexions
Intact
«Programmé»
Même structure en ligne polysilicium
Ou Transistor «grillable» joue le rôle de fusible
Rem : Antifusibles
UV-PROM
b) PRINCIPE DES UVPROM
• chaque cellule mémoire élémentaire est
constituée d'un transistor MOS dont la
grille de commande est totalement
isolée dans une couche d'oxyde.
• Par application d'une tension
suffisamment élevée, qui est appelée
tension de programmation, on créé des
électrons chauds ou électrons ayant une
énergie suffisante pour passer au
travers de cet isolant.
• Ces charges s'accumulent alors sur
cette grille isolée où elles se trouvent
piégées. La cellule mémoire est
programmée.
Grille isolée
Grille de contrôle
Isolant
UV-EPROM / EEPROM
Non-volatile
SAMOS : Stacked MOS
Durée de rétention
• La qualité de l'isolant étant excellente, la
durée de rétention des charges atteint au
minimum 10 ans à 70 °C, c'est-à-dire
jusqu'à 100 fois plus à 25 °C
Effacement
On expose la puce à un rayonnement ultraviolet. Les
photons, communiquent leur énergie aux électrons
et leur font franchir la barrière en sens inverse
c) Principe des EEPROM
• Ce sont des PROM effaçables
électriquement octet par octet si nécessaire.
• Les EPROM FLASH sont effaçables
globalement et sont plus rapides et plus
simples (1 CMOS par bit) que les
EEPROM.
• Toutes deux sont programmables en circuit.
d) Les Mémoires FLASH
• Mémoires Non volatiles, réécriture possible (100
000), capacité 100 Mbytes.
• Même structure qu ’une Ram équipé d ’une alim. de
faible consommation
• Contrairement au Ram, effacement par bloc de
donnée et non par octet
• Grande tolérance au chocs, extrêmes températures,
envi avec beaucoup de perturbation
• Utilisation: Caméras digitaux, téléphones mobiles,
Imprimantes, Pc portables, Applications militaires…
Comparaison
IV Évolution du marché des composants programmables
• De plus en plus présent
dans le quotidien
–
–
–
–
Ordinateurs, PDA
GSM,GPRS,UMTS, GPS
TV numérique
Electronique embarquée
dans l’automobile
– Baladeurs CD/MP3 DVD
– Traitement du signal
Standard
• Les standards facilitent cette évolution
vers l’intégration de services :
– PDA + GSM
– GSM + MP3
– UMTS + MPEG4 + MP3 + Hiperlan2 + ...
Plus de performance
• GSM =>GPRS =>EDGE =>UMTS
• Bluetooth 11 Mbits/s =>Hiperlan2 à 54
Mbits/s
Réduire le « time to market »
• Les produits ont une durée de vie de plus en
plus faible
– Réduire le «time to market»
– Réutilisation pour concevoir d’autres produits
(rentabiliser)
REUTILISATION
• Approche retenue pour limiter les coûts
• Conception d’un SOC à partir de blocs
prédéfinis : Intellectual Properties
Notion d’IP (Intellectual Property)
• Blocs fonctionnels complexes réutilisables
– Hard: déjà implanté, dépendant de la technologies,
fortement optimisé
– Soft: dans un langage de haut niveau (VHDL, Verilog,
C++…), paramétrables
• Normalisation des interfaces
• Environnement de développement (co-design, cospecif, co-verif)
• Performances moyennes (peu optimisé)
Utilisation d’IP
• Bloc réutilisable (IP)
–
–
–
–
–
connaître les fonctionnalités
estimer les performances dans un système
être sûr du bon fonctionnement de l’IP
intégrer cet IP dans le système
valider le système
MERCI ...
ARCHITECTURES
CONCEPTION
DES
UTILISATION
FPGA
PLAN
I.
Introduction, historique
II.
FPGA vs ASIC
III.
Architecture et conception des FPGA
IV.
La configuration des FPGA
V.
Famille de FPGA Altera
VI.
Famille de FPGA Xilinx
VII.
Autres Exemples de FPGA
VIII.
Utilisation des FPGA, CAO
IX.
CoDesign, SORC et nouvelles
X.
Architectures reconfigurables gros grains
Conclusion
I. INTRODUCTION
Définition
FPGA : Field Programmable Gate Array
En français :
Composant, constitué d’un ensemble de ressources
logiques élémentaires configurables pouvant être
mises en relation par un réseau d’interconnexions
aussi configurable
Historique
IXème av JC Les chinois comptent avec un boulier !
1640
Blaise Pascal, invente une machine mécanique à additionner et soustraire
1875
Sir J.W. Swan, tube à incandescence
1940
Utilisation des premières PLL (principe étudié en 1932 par Bellescize)
1946
ENIAC 1er calculateur électronique (18 000 tubes, tient dans un hall de 10*17m)
Von Neumann présente le concept de programme enregistré
1948
Bardeen, Brattain et Shockley (Bells Labs) inventent le transistor bipolaire
1er ordinateur le SSEC d’IBM
1950
1er circuit reconfigurable « the fuse configurable diode matrix » Harris
Semiconductor
1958
Jack Kibly invente le circuit intégrée, brevet Texas
Fairchild dépose un brevet sur la fabrication des CI par procédé Planar
1962
Famille TTL
Historique
1968
Famille MOS
Robert Noyce et Gordon Moore créer une startup : intel
1er PLA « read only associative memory ROAM » IBM
1969
Neil Amstrong marche sur la Lune
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, le Micral, made in France !
1975
Un certain Bill Gates fonde une petite société d’informatique : Microsoft
1978
1ère famille PAL commerciale, MMI
1980
Premiers microprocesseurs 32 bits chez intel et Motorola
1981
IBM lance le PC
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 du Virtex II Xilinx (jusqu’à 10 millions de portes)
2005
FPGA avec des capacités supérieures à 50 millions de portes fonctionnant à
des fréquences surpassant les 500 MHz
Marché des FPGA
REVENUS NETS DE XILINX ET ALTERA
1200000
REVENUS NETS EN $
1000000
800000
600000
400000
200000
0
1991
1992
1993
1994
1995
1996
ANNEE
XILINX
ALTERA
1997
1998
1999
2000
Marché des FPGA
PARTS DE MARCHE DES FABRICANTS DE FPGA
40
35
30
25
Xilinx
Altera
Lattice
Other
Actel
% 20
15
10
5
0
1998
1999
ANNEE
2000
Marché des FPGA
PARTS DE MARCHE DES FABRICANTS DE FPGA POUR 2000
Other
8%
Actel
6%
Xilinx
38%
Lattice
14%
Altera
34%
Évolution de la technologie
Évolution de la technologie
Technologie :
Taille relative :
Année :
0.6 µ
trois couches
de métal
100%
0.5 µ
trois couches
de métal
78%
1994
1995
0.18 µ
0.25 µ
0.35 µ
quatre couches cinq couches six couches
de métal
de métal
de métal
32%
19%
12%
1996
1998
1999
2002 : techno cuivre 0.13 µm à 8 couches de métal
2004 : techno cuivre 0.09 µm à 12 couches de métal (200 000 portes/mm²)
Évolution de la technologie
La technologie cuivre
(aujourd’hui maîtrisée) permet
d’augmenter la rapidité des
circuits donc d’augmenter les
fréquences de fonctionnement
Coûts de production
300 mm
200 mm
L’augmentation de la taille des wafers de 200mm à 300mm permet
des économies d’échelles =>
Pour un coût égal à 1.9 fois celui d’un wafers 200 mm
Intégration de 2.3 à 2.5 fois plus => diminution des prix de reviens
Problèmes techniques
Pourcentage de perte
à la fabrication du à
l’augmentation de la
taille des wafers (de
200 à 300 mm) =>
300 mm
200 mm
Ressources surnuméraires déconnectables
permettent de prévoir le % de perte à la
fabrication
Évolution des prix
1
(Source : Altera)
INDICE PRIX PAR ELEMENT LOGIQUE
1,2
Le prix par élément logique
diminue de 40 % par an
0,8
0,6
0,4
0,2
0
1995
1996
1997
1998
1999
2000
Évolutions
Prix (de l’élément logique)
- 46% par an
Densité (logique)
+ 55% par an
Vitesse (fréquence système)
+ 35% par an
Évolutions
D’après Xilinx, en 2005 les plus gros FPGA auront
• des capacités de 50 millions de portes
• des complexités de 2 billions de transistors
• utilisant des technologies à 70 nm avec 12 couches
de métallisations (cuivre)
• avec des cœurs de microprocesseurs câblés
cadencés à 1GHz
FPGA
?
ASIC
Taxonomie des CI (HARD)
ASIC
CUSTOM
SEMI-CUSTOM
Circuits
Circuits
Circuits
Circuits
sur mesure
précaractérisés
prédiffusés
configurables
Full
Custom
Standard
ASIC
cell
Sea of
gate
Gate
array
SRAM
ASIC
: Application Specific Integrated Circuit
FPGA
: Field Programmable Gate Array
CPLD
: Complex Programmable Logic Device
PAL
: Programmable Array Logic
GAL
: Generic Array Logic = PAL
SRAM
: Static Random Access Memory
FPGA
CPLD
Antifuse
PLD
PAL
ASIC Full Custom
ASIC
CUSTOM
SEMI-CUSTOM
Circuits
Circuits
Circuits
Circuits
sur mesure
précaractérisés
prédiffusés
configurables
Full
Custom
Standard
cell
Sea of
gate
Gate
array
SRAM
ASIC
: Application Specific Integrated Circuit
FPGA
CPLD
Antifuse
PAL
ASIC Full Custom
Au départ
Au final
SPECIFICATIONS
+
ASIC Standard Cell
ASIC
CUSTOM
SEMI-CUSTOM
Circuits
Circuits
Circuits
Circuits
sur mesure
précaractérisés
prédiffusés
configurables
Full
Custom
Standard
cell
Sea of
gate
Gate
array
SRAM
ASIC
: Application Specific Integrated Circuit
FPGA
CPLD
Antifuse
PAL
ASIC Standard Cell
Au départ
BIBLIHOTEQUE
D’ELEMENTS
PRE-CARACTERISES
SPECIFICATIONS
+
+
Au final
ASIC Gate Array
ASIC
CUSTOM
SEMI-CUSTOM
Circuits
Circuits
Circuits
Circuits
sur mesure
précaractérisés
prédiffusés
configurables
Full
Custom
Standart
cell
Sea of
gate
Gate
array
SRAM
ASIC
: Application Specific Integrated Circuit
FPGA
CPLD
Antifuse
PAL
ASIC Gate Array
Au départ
Au final
SPECIFICATIONS
+
Il est possible aussi d’utiliser des bibliothèques de composants pré-caractérisés
PAL
ASIC
CUSTOM
SEMI-CUSTOM
Circuits
Circuits
Circuits
Circuits
sur mesure
précaractérisés
prédiffusés
configurables
Full
Custom
Standart
cell
Sea of
gate
Gate
array
SRAM
PAL
: Programmable Array Logic
FPGA
CPLD
Antifuse
PAL
PAL
Matrice de ET réalisant
tous les produits
possibles (maxtermes)
connectée aux sorties
par des OU
Grande surface de Si
utilisée. Ces circuits ne
sont plus utilisés
aujourd’hui
CPLD
ASIC
CUSTOM
SEMI-CUSTOM
Circuits
Circuits
Circuits
Circuits
sur mesure
précaractérisés
prédiffusés
configurables
Full
Custom
Standart
cell
Sea of
gate
Gate
array
SRAM
CPLD
: Complex Programmable Logic Device
FPGA
CPLD
Antifuse
PAL
CPLD
Les CPLDs regroupent
plusieurs PALs
interconnectés par un
réseau de connexions
programmables.
Les CPLDs sont les
prémisses des premiers
FPGAs.
Ces circuits ne sont plus
utilisés aujourd’hui car
remplacés par les FPGAs.
PAL
E/S
PAL
MATRICE D’INTERCONNECTIONS
PAL
PAL
E/S
FPGA
ASIC
CUSTOM
SEMI-CUSTOM
Circuits
Circuits
Circuits
Circuits
sur mesure
précaractérisés
prédiffusés
configurables
Full
Custom
Standart
cell
Sea of
gate
Gate
array
FPGA
SRAM
FPGA
CPLD
Antifuse
: Field Programmable Gate Array
A SUIVRE !!!
PAL
Marché des composants CMOS
REPARTITION DU MARCHE DES COMPOSANTS LOGIQUES CMOS
45
40
35
30
Standard Cell
Other Logic
Gate Array
Programmable
Standard Logic
Custom
25
%
20
15
10
5
0
1998
1999
ANNEE
2000
Marché des composants CMOS
MARCHE DES COMPOSANTS LOGIQUES CMOS POUR 2000
Custom
3%
Standard Logic
9%
Programmable
12%
Standard Cell
39%
Gate Array
9%
Other Logic
28%
Comparaison
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
TRES PETIT
MOYEN
MOYEN
GRAND
TRES PETIT
MOYEN
MOYEN
TRES GRAND
SIMPLE
COMPLEXE
COMPLEXE
TRES COMPLEXE
PETIT
MOYEN
GRAND
GRAND
TEMPS DE
CONCEPTION
COUT DE
CONCEPTION
UTILISATION DES
OUTILS
VOLUME DE
PRODUCTION
Capacités comparées
Nombre de portes (log)
100M
10M
1M
100k
10k
80% des design fonctionnent
aujourd’hui à moins de 200MHZ
1k
1989
année 1997
2001
Les FPGA sont au cœurs des systèmes
Temps de mise en œuvre
TEMPS DE MISE EN OEUVRE COMPARES
FPGA
ASIC
0
1
2
APPRENTISSAGE
3
SAISIE
4
5
COMPILATION
6
7
SIMULATION
8
9
FABRICATION
10
Point de "cross-over" des FPGA et des ASIC
Cross-over de 200 000 de
pièces environ en 2000
Cross-over de 1 000 000
de pièces environ en 2004
Un jeu de masques
correspond à 1M$ à
amortir en techno 0,13µm
Nick Tredennick, Brion Shimamoto. The Rise of Reconfigurable Systems. In proceeding of Engineering of Reconfigurable
Systems and Algorithms, ERSA’2003. June 23-26,Las Vegas, Nevada, USA.
Volume
Contextes d’utilisations en grandes séries
Conception
prototypage
ASIC
FPGA
À-coup de production
Pré-série
Production
Fin de vie
Temps
Prix de ventes moyen
Solution intermédiaire
FPGA
HARD
COPY
ASIC
À partir de qq
piéces
2000 piéces
Volume
1 000 000 piéces
Les solutions Hard-Copy
• Réduction de la taille jusqu’à 70%
• Temps de réalisation de 1 à 2 mois
(6 à 9 pour les ASIC)
• Conversion à partir du fichier binaire
de configuration
• Possibilité d’estimer les
performances à partir des outils
constructeurs
• Possibilité de garder le même
package (pin-to-pin compatible)
HARD-COPY est la dénomination
ALTERA. Dans ce cas tous les bits de
configuration SRAM sont remplacés
par 5 masques de métal.
Les ASIC
AVANTAGES
• hautes intégrations
• hautes performances (vitesse, low-power)
• coûts faibles pour de gros volumes de production
• personnalisation
• sécurité industrielle
INCONVENIENTS
• prix du 1er exemplaire
• pas d’erreur possible
• non-flexible
• time-to-market élevé
• fabrication réservée aux spécialistes (fondeur)
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
Conclusion
Le choix entre FPGA ou ASIC, se fait en fonction du cahier des
charges de l’application :
• temps de mise sur le marché et durée de vie courte
• très petit nombre de circuits
FPGA
• optimisation des performances
ASIC
• grande série
ASIC
FPGA
FPGA et conjoncture économique mondiale
D’après une interview du directeur de Xilinx dans la revue électronique
internationale
Les FPGA sont les rares produits d’électronique qui profite de la crise
économique actuelle dans le domaine des technologies de pointes
ceci pour plusieurs raisons :
• diminution des volumes de production
• diminution de la durée de vies des produits
• possibilités techniques des FPGAs largement suffisantes pour la plus
part des applications
« en 2006, il y aura un circuit logique programmable dans chaque
appareil numérique …. »
FPGA et conjoncture économique mondiale
III. ARCHITECTURE
&
CONCEPTION
Les différentes familles de circuits logiques programmables
1) Quelques définitions
•
•
•
•
•
•
•
•
EEPROM ou E2PROM (Electrical Erasable Programmable ReadOnly Memory) :Mémoire programmable à lecture seule, effaçable
électriquement.
EPLD (Erasable Programmable Logic Device):Circuits logiques
reprogrammables.
FPGA (Field Programmable Gate Array):Réseau de portes
programmables
GAL (Generic Array Logic):Circuits logiques PAL
reprogrammables à technologie CMOS.
ISP (In System Programmable):Circuit que l’on peut programmer
(et donc effacer)même lorsqu’il est en place sur l’application.
PAL (Programmable Array Logic):Circuits logiques
programmables dans
lesquels seules les fonctions ET sont programmables, les
fonctions OU ne le sont pas.
PLD (Programmable Logic Device):Famille des circuits
programmables qui comprend les PAL,GAL,EPLD et FPGA.
2)Les différentes familles de PLD
ASIC
CUSTOM
SEMI-CUSTOM
Circuits
Circuits
Circuits
Circuits
sur mesure
précaractérisés
prédiffusés
configurables
Full
Custom
Standard
ASIC
cell
Sea of
gate
Gate
array
SRAM
ASIC
: Application Specific Integrated Circuit
FPGA
: Field Programmable Gate Array
CPLD
: Complex Programmable Logic Device
PAL
: Programmable Array Logic
GAL
: Generic Array Logic = PAL
SRAM
: Static Random Access Memory
FPGA
CPLD
Antifuse
PLD
PAL
Les différentes familles de PLD
(suite)
TYPE
Nombre de portes
intégrées
Matrice ET
Matrice OU
Effaçable
PROM
2 000 à 500 000
Fixe
Programmable
Non
PAL
10 à 100
Programmable
Fixe
Non
GAL
10 à 100
Programmable
Fixe
Electriquement
EPLD
100 à 3000
Programmable
Fixe
Aux U-V
Electriquement
FPGA
3000 à 6.000.000
Programmable
Programmable
Electriquement
Non
a) Les PAL
• L’invention des PAL date d’une vingtaine
d’année, ce sont les ingénieurs de la société
MMI rachetée par AMD qui ont eut l’idée
d’utiliser la technologie des fusibles.
• Ce sont des composants programmables une
seule fois.
Structure de base d’un PLD
•Ils possèdent des matrices
« ET » programmables et des
matrices « OU » fixes.
b
1
a
1
1
1
&
•La fusion des fusibles est
obtenue en appliquant à leurs
bornes une tension de 11,5 V
pendant 10 à 50 µS (leur
tension de fonctionnement
est environ de 5V).
&
&
&
•Cette opération est bien sûr
effectuée en utilisant un
programmateur adapté.
>1
Q0
>1
Q1
Structure de base avec les normes des constructeurs
.
b
b
a
: Fusible intact
a
: Fusible intact
Q0
Q1
Q0  a . b  a . b
Q0
Q1 Q1  a.b  a.b
Q0  Q1  a.b.a.b  a.b.a.b  a.b.a.b  a.b.a.b  0
PLD ayant ses fusibles intacts
PLD programmé
Configuration des entrées/sorties
•Certaines broches de ces
circuits peuvent être
utilisées aussi bien en entrée
qu’en sortie grâce à un
système de logique 3 états.
•La commande de cette
dernière est configurée au
moment de la
programmation.
•La structure de sortie
permet aussi de réinjecter
les sorties en entrée (Feedback).
Porte trois états permettant
de déconnecter la broche
de la matrice "ET"
I/O
REFERENCE DES PAL
Les diverses possibilités de ces circuits et leur standardisation ont conduit les constructeurs à
définir une nomenclature permettant de décoder assez facilement la référence des PALs.
PAL : PAL
(CE) : CE pour version CMOS
Lettre(s) Code(s)
Structure de sortie
XX : Nombre d’entrées
AB : Structure de sortie
L
Combinatoire active bas
YY : Nombre de sorties
C
: Consommation
H
Combinatoire active haut
ZZ : Vitesse
DEF : Type de boîtier
C
Combinatoire complémentaire
R
Registre synchrone (D)
RA
Registre asynchrone
X
Registre OU exclusif
V
Versatile
Remarques :

Le nombre d’entrées varie entre 10 et 22.

Le nombre de sorties varie entre 1 et 10.

La puissance est indiquée par une lettre code.

La vitesse indique le temps de propagation en nS.

Les versions versatiles ont une cellule de sortie programmable permettant d’obtenir n’importe quel
autre type de structure de sortie (L, H, R ...).

Les versions CMOS (CE) sont effaçables électriquement. Les fusibles sont remplacés par des
transistors de type MOS FET. Ce ne sont ni plus ni moins que des « GALs ».
Exemple :
PAL 16 L 8 H 15 PC
PAL : PAL
: Nombre d’entrées :
/ tructure de sortie :
: Nombre de sorties :
: Consommation :
: Vitesse :
: Type de boîtier :
Structures de base des PAL
Brochage du PAL 16R6
-
Brochage du PAL 16L6
-
PAL22V10 : Sortie (VERSATILE)
PAL22V10
ZOOM
Complet
b) Les GAL
• Les GAL sont des PAL à technologie CMOS, c’est
à dire programmables et surtout effaçables
électriquement.
• On retrouve les mêmes références qu’en PAL.
• Protection contre la duplication.
• Les GAL sont dotés d’un bit de sécurité qui peut
être activé lors de la programmation empêchant
ainsi toute lecture du contenu du circuit. Ce bit est
remis à zéro seulement en effaçant complètement
le GAL.
• Il est constitué d’un ensemble de huit octets,
appelé signature électronique, pouvant contenir
des informations diverses sur le produit.
c) Les EPLD
Généralités
• L’introduction des EPLD telle que l’a
voulue ALTERA visait deux buts :
• Densité d’intégration supérieure aux PAL
• Fonctionner à une vitesse au moins égale
aux PAL bipolaires
EPLD : Description Fonctionnelle
Les EPLD de la famille MAX possèdent une architecture
comportant les éléments suivants :
• Logic array blocks (LABs)
• Macrocellules
• Expanseur
• Réseau d’interconnections Programmables (PIA)
• I/O control blocks
Les séries MAX incluent des entrées dédiées telles que
des (horloges,clear,..) pour chaque macrocellule.
Exemple de EPLD : le MACH 4
Le MACH 4 est un EPLD
programmable in situ (ISP)
par l'intermédiaire d'un bus
J-TAG.
Il dispose de 32 entrées /
sortie, de matrices « ET »
programmables, de matrices
"OU" fixes, d'une matrice
centrale d'interconnexion,
d'une circuiterie d'horloge et
de 32 ou 64 macrocellules.
L'architecture interne du
MACH 4-32/32 est
équivalente à 4 PALCE 22V10
interconnectés.
d) 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.
LES FPGA
• 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.
La SRAM
• 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.
• On voit tout le parti que l'on peut tirer de cette souplesse en particulier
lors d'une phase de mise au point. 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..
Architecture interne du FPGA
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...
Architecture î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
Les composants logiques programmables :
Architectures globales
Figure 1 : Structure of a CPLD
Les MACROCELL = P-TERM
(PAL-Like)
Architecture î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
Les blocs de connexions
EC
BC
EC
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
Architecture hiérarchique
Architecture hiérarchique
Réseau de routage de
niveau 2
Élément Hiérarchique de
niveau 2
Réseau de routage de
niveau 1
Élément Hiérarchique de
niveau 1
Réseau de routage de
niveau 3
Élément Hiérarchique de
niveau 3
• éléments logiques
• éléments de mémorisation
• ...
Architecture logarithmique
Architecture hiérarchique 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.
Exemple typique: le circuit Xc6200 de Xilinx
Architecture logarithmique
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
4*4
4*4
4*4
4*4
4*4
4*4
4*4
4*4
4*4
4*4
4*4
4*4
4*4
4*4
4*4
4*4
Cellule logique
de base
Matrice de 16
cellules
Lignes de
longueur
4 cellules
Lignes de
longueur
16 cellules
Lignes de
longueur
64 cellules
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
Cell
16*16
16*16
16*16
16*16
16*16
16*16
16*16
16*16
16*16
16*16
16*16
16*16
16*16
16*16
16*16
16*16
Les éléments logiques
Les éléments logiques configurables sont les
briques de bases de tous les FPGA, ils sont
majoritairement réalisés autour de LUT, Look Up
Table, de chaîne de propagation rapide de la retenue
et de bascule D.
On rencontre toutefois des cellules logiques
rudimentaires à base de multiplexeurs
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.
In 0
In 1
In 2
In 3
LUT = Table de scrutation
LUT 4 entrées = RAM 2octets
SRAM
SRAM
In 0
In 1
In 2
In 3
SRAM
LUT 4
Out
SRAM
SRAM
SRAM
Out
Les Look Up Tables
In 0
1111
0
1110
1
1101
1
1100
0
1011
0
1010
1
In 1
In 2
In 3
Out
Les Look Up Tables
In 0 = 0
1111
0
1110
1
1101
1
1100
0
1011
0
1010
1
In 1
In 2
In 3
Out
Les Look Up Tables
In 0 =0
1111
0
1110
1
1101
1
1100
0
1011
0
1010
1
In 1
In 2
In 3
Out
Les Look Up Tables
In 0 =0
1111
0
1110
1
1101
1
1100
0
1011
0
1010
1
In 1 = 1
In 2
In 3
Out
Les Look Up Tables
In 0 =0
1111
0
1110
1
1101
1
1100
0
1011
0
1010
1
In 1 = 1
In 2
In 3
Out
Les Look Up Tables
In 0 =0
1111
0
1110
1
1101
1
1100
0
1011
0
1010
1
In 1 = 1
In 2 =1
In 3 = 1
Out= 1 = In3 • In2 • In1 • Ino
Les Look Up Tables
Généralement le nombre d’entrées des LUT est de
quatre car c’est un bon compromis entre vitesse et
surface
Le nombre de LUT dans les éléments logiques varie
de 2 à 4 généralement
Résultats d’une étude de l’Université de Toronto :
Critère
Surface
Délais
Surface et délais
Taille des LUT
3–4
7
4–6
Nombre de LUT
6 – 10
4 – 10
4 – 10
Les Look Up Tables
Élément logique de base avec LUT
Carry-In
ENTREES
LUT
SORTIES
D
Q
FAST
CARRY
CHAIN
HORLOGE
Carry-Out
Les éléments logiques
Élément logique de base avec multiplexeur
Multiplexeur = aiguillage
Cellule très simple
X1
Cas du circuit Xilinx
XC6000
X2
1
0
C
X3
Q
D
CLK
Q
SORTIE
S
Les éléments de mémorisation
Toutes les nouvelles générations de FPGA, chez tous
les fabricants disposent d’éléments de
mémorisation, car dans les systèmes d’électronique
numérique les accès mémoires restent des points
faibles
En disposant de larges zones mémoires
(configurables) à l’intérieur du circuit on limite ainsi
le nombre d’accès externes.
Très intéressants pour réaliser des machines d’états
Les éléments de mémorisation
Exemple des blocks SelectRAM dans les circuits
Spartan II, Virtex et Virtex II de Xilinx
Elements de mémorisation configurables en
double port
ou
Taille max
2*18-Koctets
simple port
Les opérateurs câblés
Dans les ressources logiques à dispositions, on peut
trouver des opérateurs câblés optimisés.
Exemple : Multiplieurs configurables Virtex II Xilinx
Embedded Multiplieur
18*18
Utilisation
Les outils de synthèses (voir VII) ne savent pas
synthétiser des blocs de mémoires ou des
opérateurs (type multiplieurs) dans des blocs
spécialisés…
Il faut donc spécifier en VHDL que l’on utilise telle ou
telle ressource du composant
Utilisation des BlockRAMs
Utilisation d’un Xilinx BlockRAM 512x36 DP
entity ….
component RAMB4_S8 is
// composant de la librairie Xilinx Virtex
port (WE, EN, RST, CLK : in std_logic;
ADDR : in std_logic_vector(8 down to 0);
DI : in std_logic_vector(7 down to 0);
DO : out std_logic_vector(7 down to 0));
end component
Architecture Section …..
U_RAM : RAMB4_S8
port map (WE=>#, EN=>#, RST=>#, CLK=>#, ADDR=>#,
DI=>#, DO=>#);
….
Utilisation des multiplieurs
Utilisation d’un multiplieur signé 18x18
entity ….
component MUL18X18 is
// composant de la librairie Xilinx Virtex
port (A : in std_logic_vector(17 down to 0);
B : in std_logic_vector(17 down to 0);
P : out std_logic_vector(35 down to 0));
end component
Architecture Section …..
U_MUL : MUL18X18
port map (A=>#, B=>#, P=>#);
….
Conséquence
Une conséquence importante est que par le biais de
l’utilisation de composants de librairies spécifiques
aux constructeurs (Xilinx, Altera, …) pour pouvoir
utiliser les blocs spécialisés (RAM, opérateurs) =>
le code VHDL ainsi produit est de moins en moins
portable !!!
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 !!!
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
Solutions d’asservissement des horloges
Les PLL (analogique)
Phase-Locked Loop
( ALTERA )
Les DLL (numérique)
Delay-Locked Loop
( XILINX )
Caractéristiques des PLL et DLL
Comparaison PLL vs DLL
Comparaison "objective"
faite par ALTERA
Bien que plus performantes
les PLL sont aussi beaucoup
plus complexes à intégrer
(mixage analogique et
numérique)
Avons nous besoin d’une
telle précision ???
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 un même puce un cœur de
microprocesseur et un cœur de logique configurable,
les deux étant optimisés technologiquement
Le cœur de processeur peut prendre environ 10% de
la surface totale de la puce
Les cœurs de processeurs
Altera propose le circuit Excalibur
contenant :
RAM double port RAM simple port
• une partie configurable :
type APEX 20K1000
• un cœur de processeur :
ARM9 (32 Bits) à 200MHz
8 K octets de cache
Instructions
8 K octets de cache
Données
Matrice FPGA
Cœur
ARM 922T
Les cœurs de processeurs
PLL
UART
External
Processor & Memory
Interfaces
Interfaces
JTAG
ARM
Trace
Module
Timer
I-CACHE Interrupt
D-CACHE
ARM922T
Watchdog
8K Bytes Controller
8K Byte
Timer
SRAM
SRAM
SRAM
Coeur de
processeur
DPRAM
DPRAM
DPRAM
XA1
LEs
ESB Bytes
4160
6.5K
32 Kbytes SRAM
16 Kbytes DPRAM
FPGA
LEs
ESB Bytes
16400
26K
LEs
ESB Bytes
38400
40K
XA4
128 Kbytes SRAM
64 Kbytes DPRAM
XA10
256 Kbytes SRAM
128 Kbytes DPRAM
Les cœurs de processeurs
Xilinx propose aussi une version de son circuit
Virtex II avec un cœur de processeur
le Virtex II-Pro comprenant :
• de 1 à 4 cœurs Power-PC (RISC 32 bits) 125MHz
• matrice VIRTEX avec capacité de 900 mille portes
Les alimentations en énergie
Le cœur est alimenté
généralement en 1.8 V (voir
1.5 V) car avec la technologie
à 0.18 µm 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
Dans la plupart des cas il faut deux alimentations
Attention à la consommation des E/S => minimiser leur nombre !!!
Les alimentations en énergie
Technologiquement pour permettre aux
entrées sorties de supporter des tensions
d’alimentations jusqu’à 3.3V on effectue
plusieurs oxydations avec des masques
spéciaux
De cette façon la technologie utilisée pour
les entrées-sorties n’est pas la même que
pour le cœur
Répartition de la consommation de puissance
RESEAU D’HORLOGE
21%
ENTREES SORTIES
9%
RESSOURCES DE ROUTAGE
65%
RESSOURCES LOGIQUES
5%
Modélisation de la consommation de puissance
La consommation globale du circuit peut être donnée par le modèle
suivant :
P = Pstat + α*[Cwire + Cswitches]*Vdd²*f
De ce fait la répartition vue précédemment est vraie dans certaines
conditions:
• Technologie (Pstat , C, Vdd)
• Fréquence (action linéaire)
• Taux d’activité (action linéaire)
• Taux d’occupation (C)
• Algorithmes de placement routage (fmax, C)
• Nombre d’entrées sorties utilisées
=> du fait de ces nombreux paramètres il est très compliqué de trouver
un moyen d’estimer la consommation de puissance du circuit pour une
application
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.
IV. LA CONFIGURATION
DES FPGA
Types de configuration
On peut trouver 4 types de configuration :
• La configuration simple contexte (la plus utilisée)
• La configuration partielle simple contexte
• La configuration partielle multi-contextes (la plus
prometteuse)
Configuration simple contexte
1 matrice de configuration
SRAM
FPGA
(méthode de scan-path)
Le FPGA est reconfiguré entièrement
C’est le type de configuration la plus utilisée
Configuration partielle
Décodeur
ligne
Décodeur
colonne
1 matrice de configuration
SRAM
FPGA
Le FPGA est reconfiguré partiellement,
on peut ne modifier qu’une partie de la configuration
Configuration multi-contextes
Décodeur
ligne
Décodeur
contexte
Décodeur
colonne
4 matrices de configuration SRAM
Le FPGA est reconfiguré partiellement,
on peut rapidement passer d’un contexte à un autre
Configuration dynamique
Ce type de configuration est le plus prometteur puisqu’il ouvre la voie
au domaine des architectures dynamiquement reconfigurables et des
techniques « RUN TIME RECONFIGURABLE »
Techniques de configuration des FPGA
On rencontre couramment 6 techniques de configuration :
• Master mode série ou parallèle
• Slave mode série ou parallèle
L’envois des données peut se
faire en série ou en parallèle
• Peripheral mode série ou parallèle
La sélection de la technique de configuration se fait grâce à des bits de
configuration du FPGA
Dans tous les cas la configuration se fait via un fichier de configuration
binaire : le Bitstream
Les entrées sorties utilisées pendant la configuration sont aussi des I/O
du circuits utilisables en fonctionnement
Master Mode
Dans ce cas le FPGA est maître de sa configuration
Data
Data-in
FPGA
EPROM
CLK
CLK
OE
CTRL
MODE SERIE
Master Mode
Dans ce cas le FPGA est maître de sa configuration
8 bits
Data(7:0)
ADD (11:0)
Data-in(7:0)
ADD (11:0)
FPGA
EPROM
OE
CTRL
MODE PARALLELE
Slave Mode
Dans ce cas le FPGA est esclave, il subit sa configuration
Data
Data-in
FPGA
EPROM
CLK
CLK
OE
Autre FPGA
circuit logique de contrôle
ou câble de configuration
Peripheral Mode
Le FPGA est vue comme un périphérique du microprocesseur
8 bits
Data(7:0)
Data-in(7:0)
ADD (11:0)
Chip_Selec
FPGA
µP
CTRL
CTRL
Le microprocesseur peut être un cœur de processeur
embarqué dans le circuit
Configuration et cœurs de processeurs
Configuration centrée sur le FPGA
ARM-Based Processor
Processor
Configuration
Unit
SRAM
Hard Logic
JTAG
Link
Serial / Parallel
FPGA
Configurator
FPGA
Configuration
Port
FPGA Array
FPGA
Le FPGA est esclave pour sa configuration
mais il est maître de la configuration du processeur
Configuration et cœurs de processeurs
Configuration centrée sur le Processeur
JTAG
Link
16 or 8-Bit
Flash
Memory
EBI
ARM--Based Processor
Processor
SRAM
Configuration
Unit
Hard
Logic
FPGA
Le processeur est maître de la configuration du FPGA
Techniques de configuration des FPGA
On peut trouver d’autres techniques propre à chacun
des fabricants. En particulier pour mettre en œuvre
des configurations partielles. Ou des algorithmes de
test du circuit (norme Boundary Scan)
Nouveauté : l‘auto-reconfiguration partielle
Configuration
Memory
Configuration
Manager
Circuit 1
circuit 2
Others
circuits
Others
circuit
circuit11
circuits
circuit 2
Use of
embedded FPGA
RAM to store the
decrypted
configuration:
Requires path
between
configuration
and data RAMs
V. LA FAMILLE
ALTERA
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
Février 2002 : Lancement du STRATIX concurrent direct du Virtex II Xilinx, technologie
cuivre 0.13 µm
Septembre 2002 : Lancement du Cyclone un petit FPGA (architecture STRATIX) pour
application grand public bas-coûts
La famille ALTERA
STRATIX
APEX II - Caractéristiques
Le plus gros composant disponible est l’APEX II EP2A70
Caractéristiques MAX:
• 3 000 000 de portes utilisables
• 1 146 880 bits de mémoires RAM soit 140 Kilo octets
• 4 PLL
• cœur alimenté en 1.5 V
• 1 060 entrées sorties (tension 1.5 V, 1.8 V, 2.5 V ou 3.3 V)
• 380 Mbps de débit en entrées sorties
• technologie cuivre 0.15 µm 8 niveaux de métallisation
• taille de la puce 40*40 mm soit 1600 mm²
APEX II - Architecture
L’architecture est de type hiérarchique, au premier niveau de hiérarchie
apparaisse les MegaLAB : Mega Logic Array Block
4 rangées de MegaLAB
soit au total 280 MegaLAB
70 colonnes de MegaLAB
APEX II - MegaLAB
Un MegaLAB contient de 16 à 24 LAB
(Logic Array Block)
et 1 ESB (Embedded System Block)
APEX II - LAB
Les LAB sont constitués de 10 LE : Logic Element
APEX II - LE
Le nombre max de LE pour
un APEX II est de 67 200
APEX II - Carry Chain
APEX II - ESB
Bloc de mémoire de 4096 bits
configurable en simple ou
double port
Peut être utilisé en CAM
(Content Access Memory)
et en matrice PAL
APEX II - Entrées Sorties
APEX II - PLL
Stratix
Toujours plus gros, toujours plus performant, Stratix, le dernier née d’Altera !
Stratix - Architecture
Stratix - Architecture
Stratix - Blocs mémoires
Stratix - DSP élémentaires
Des blocs multiplieurs sont insérés
Stratix - Réseau d’horloges
Évolutions futures
Progression de la famille STRATIX:
Version Excalibur avec un cœur ARM10
Version bas coûts, plus petite, pour les grandes
séries (=> CYCLONE)
VI. FAMILLE
XILINX
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
Xilinx propose aussi une gamme complète de CPLD
La Famille XILINX
Virtex II - Caractéristiques
Le plus gros composant disponible est le VIRTEX II XC2V 10000
Caractéristiques MAX:
• 10 millions de portes utilisables (122 880 LUT et 10 *+ de bascule D)
• 5 376 K bits de mémoires RAM soit 656 Kilo octets
• 192 Multiplieurs (18*18 bits à 200MHz)
• 12 DLL
• cœur alimenté en 1.5 V
• 1 108 entrées sorties (tension 1.5 V, 1.8 V, 2.5 V ou 3.3 V)
• Fréquence interne 420 MHz
• 840 Mbps de débit en entrées sorties
• technologie allu 0.15µm 8 niveaux de métallisation
• taille de la puce 40*40 mm soit 1600 mm²
Virtex II - Architecture
CLB : Configurable Logic Block
CLB
Slice
Virtex II - Réseau de routage
Virtex II - Réseau d’horloges
DCM : Digital Clock Manager
Virtex II - DCM
Digital Clock Manager
Virtex II - Entrées sorties
Virtex II - Configuration
Virtex II - Évolution
Virtex II Pro- Architecture
VII. AUTRES
EXEMPLES
DE FPGA
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
Autres exemples de FPGA
ACTEL
ProASIC technologie flash, ASIC
reprogrammable, non volatile et à
granularité fine, ISP. Utilise les outils
ASIC ou FPGA
AXELERATOR technologie antifusibles
=> OTP (One Time Programmable),
FPGA les plus rapide à 500MHz interne
et 300MHz de fonctionnement système
HiRel, RT, RH, technologie antifusibles
série militaire, tolérance aux radiations
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
ispXPGA, technologie SRAM, archi
îlots de calcul, densité de 125K à 1,2M
portes. EEPROM de configuration
intégré => configuration à la mise sous
tension en moins de 200 µs
Autres exemples de FPGA
Quick
Logic
Cypress
pASIC (1,2 et 3), série Quick (Ram, PCI),
technologie antifusible (One Time
Programmable), faible densité
de 1K à 90K portes
CY39K, architecture mixte CPLD-FPGA
VIII. UTILISATIONS
&
CAO
Diagramme en Y - Gajski
Domaine comportemental
Domaine structurel
Synthèse système
Système
Algorithme
Transfert de registres
Logique
Fonction de transfert
Processeur, ASIC, ASIP, FPGA, etc.
UAL, RAM, etc.
Portes, bascules, etc.
Transistor
Partitions pysiques
Plan de masse
1 Synthèse Système
Dessin des modules
2 Synthèse Architecturale
Dessin des cellules
3 Synthèse RTL
Dessin des transistors
4 Synthèse Logique
Domaine physique
Programmation des PLDs.
La programmation des
PLDs nécessite un
logiciel adapté pour le
développement du
programme et un
programmateur
permettant de
« griller » le circuit.
Le fichier JEDEC est
un ensemble de
données binaires
indiquant au
programmateur les
fusibles à « griller ».
Cahier des charges
Mise en « équation » du problème
Résolution du problème sous forme d’équation
logique, de logigramme ou d’algorithme
Choix du PLD en fonction du nombre d’entrées et de
sorties
Saisie des équations logiques, de la table de vérité, du
logigramme ou de l’algorithme avec le logiciel
Simplification logique
Génération d’un fichier au format JEDEC
Simulation
Programmation du PLD à l’aide du fichier JEDEC et
du programmateur
PLD programmé
Ces étapes sont
effectuées par le
logiciel
Flot de conception
ENTREE
(schéma et/ou fichier VHDL)
SIMULATION FONCTIONNELLE
SYNTHESE LOGIQUE
SIMULATION FONCTIONNELLE
PLACEMENT
ROUTAGE
SIMULATION TEMPORELLE
CONFIGURATION
ET TESTS OPERATIONNELS
Outils de CAO
Les outils de CAO sont les points faibles de ces circuits. 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 !
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 ou MAX + 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
Autres outils de CAO
Flot FPGA
Synthèse
Simulation
IP : Intellectual Property
Digital Signal
Processing
Processor,
Peripheral
PCI Target
Color Space Converter
NiosTM Processor
PCI Master-Target
Correlator
PCI-X
Digital Modulator
Tensilica X-tensa
Processor
CAN Bus
Discrete Cosine Transform
Ethernet MAC
(10/100/Gigabit)
IIC Master & Slave
Fast Fourier Transform
HDLC Protocol Core
IEEE 1394
FIR Compiler
IMA Controller
PowerPC Bus
Arbiter
IIR Filter
Communications
ADPCM (u-law,
a-law)
ATM Controller
CRC
SONET/SDH Framer
T3/E3 Framer
Packet Over SONET
Processor
Telephony Tone Generator
Utopia Master & Slave
POS-PHY Interface
Bus Interface
PalmChip Bus
SDRAM Controller
DDR-SDRAM
Controller
Image Processing Library
QDR-SDRAM
Controller
PowerPC Bus
Master
NCO
8237 DMA Controller
PowerPC Bus Slave
Reed Solomon
Encoder/Decoder
8255 Peripheral
Interface
USB Function
Controller
Interleaver/Deinterleaver
8259 Interrupt
Controller
USB Host
Controller
Viterbi Decoder
Turbo Decoder
Et plus encore !
8254 Timer/Counter
8051, 6502, Z80
SRAM
Caractéristiques :
FLASH
CPU
IRQ
NIOS : cœur de processeur
RISC générique optimisé
PBM
Exemple d’IP : NIOS
• données sur 16 ou 32 bits
Timer
• 128, 256 ou 512 registres
• registres à décalage rapide ( 1,
3, 7, 15 ou 31 bits/clock)
• possibilités de lui adjoindre
des périphériques (UART, RAM,
ROM)
Serial
Port
12% d’un
EP20K200E
APEX EP20K200E
UART
Ici le reste de
votre système
Exemple d’IP : NIOS
IP ALTERA
Other
Cores
(Future)
200
ARM
Core
100
Performance
(MIPs)
PERFORMANT
50
20
0
Core
Soft Core
FLEXIBLE
Hard Cores
Conclusion
Même si l’utilisation des FPGA paraît simple (en autre grâce au
langage comme VHDL) et même si les FPGA reconfigurables donnent
droit à l’erreur il faut adopter des méthodologies de conception des
systèmes numériques (en autre ; les méthodologies synchrones).
Elles sont obligatoires pour développer un ASIC, mais restent un peu
de côté pour les petits systèmes à base de FPGA. Aujourd’hui avec
des FPGA de plus en plus complexes elles deviennent aussi
indispensables que pour les ASIC.
IX. EVOLUTIONS
CODESIGN, SORC
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
Le CoDesign
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)
Flot de CoDesign
SPECIFICATION HAUT NIVEAU DE L’APPLICATION
ESTIMATION SYSTEME
ESTIMATION LOGICIELLE
ESTIMATION MATERIELLE
PARTITIONNEMENT
SYNTHESE LOGICIELLE
SYNTHESE INTERFACE
COSIMULATION
Retour d’expérience
ordonnancement de l’application
proposition de candidats HW et SW
IMPLEMENTATION
HW et SW
TESTS
Choix des réalisation HW ou SW
SYNTHESE MATERIELLE
Les SORC
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é
Evolution des architectures de FPGA
FPGA
Evolution : Architecture "Domaine Specific"
Concept Xilinx : Application Specific Modular BLock (ASMBL) Architecture
IX. EVOLUTIONS
ARCHITECTURES
RECONFIGURABLES
GROS GRAINS
The KressArray : a FPAA
Field Programmable ALU Array
Laboratoire Xputer
Université de Kaiserslautern
Allemagne
The FPFA
Field Programmable Function Array
Dept Computer Science & Electrical Engineering,
Université de Twente, Pays-Bas
Adaptatif System on Chip aSoC
Architecture tuile (Tiled-Base) multi-granularités
Motion Estimation
and Compensation
Core
DCT
Corepor
ts
Cores
North
South
East
West
Inputs
FIR
RISC
FPGA
Interconnect
Data
Memory
Outputs
Local
Config.
Decoder
Controller
North to South & East
Viterbi
Decoder
Crossba
r
North
South
East
West
PC
Instruction
Memory
RAM
Control
Interface
VLSI Signal Processing Group
Université du Massachusetts
USA
Une Architecture commerciale : Chameleon
Chameleon System
San Jose, Californie
USA
Conclusion
Le domaine des architectures reconfigurables (de grain fin, moyen,
gros …) est un domaine en extension il est nécessaire de faire des
travaux de recherches sur :
• architectures basse consommation de puissance (low power)
• architectures hétérogènes (hard + soft)
• co-conception (Co-Design)
• outils de d’estimation de performances haut niveau
• outils d’exploration de l’espace de conception
• sécurité de conception
• domaine d’applications ; software radio, 3G, cryptographie, TI ...
CONCLUSIONS
REFERENCES
BIBLIOGRAPHIQUES
Références bibliographiques
Livres :
Laurent Dutrieux, Didier Demigny, LOGIQUE PROGRAMMABLE,
Architecture des FPGA et CPLD, Méthodes de conception, Le langage
VHDL. Eyrolles, 1997
Vaughn Betz, Jonathan Rose, Alexander Marquardt, Architecture and
CAD for Deep-Submicron FPGAs. Kluwer Academic Publisher, 1999
Revues :
Électronique - Le mensuel des ingénieurs de conception
Électronique International Hebdo
Xcell Journal (Xilinx press)
Revues IEEE
Références bibliographiques
Sites Internet :
LES SITES DES CONSTRUCTEURS
(Xilinx, Altera, Atmel, Actel, QuickLogic …)
AUTRES :
http://www.mrc.uidaho.edu/fpga/fpga.html page de liens vers FPGA
http://optimagic.com/ the Programmable Logic Jump Station
http://eet.com/embedsub site de l’embedded developers journal
http://www.mvd-fpga.com/fr/default.htm site d’une entreprise française de service
spécialisée dans les FPGA
http://www.design-reuse.com/ site sur les IP
http://www.supelec-rennes.fr/ren/perso/jweiss/fpga/poly/fam99-fin.htm cours de SUPELEC
J. Weiss
http://www.enseirb.fr/~kadionik/formation/altera/index.htm cours de l’ENSEIRB L. Dulau
http://micdigital.web.cern.ch/micdigital/VLSI_Trieste/design_styles/index.htm autre cours
en PPT
conférences
Conférences spécialisées :
FPGA
ACM International Symposium on Field-Programmable Gate Arrays
FPL
International Workshop on Field-Programmable Logic and Applications
FCCM
IEEE Symposium on Field-Programmable Custom Computing Machines
FTP
IEEE International Conference on Field-Programmable Technology
RSP
IEEE International Workshop on Rapid System Prototyping
ERSA
Engineering of Reconfiguraable Systems and Algorithms
RAW
Reconfigure Architectures Workshop (part of IPDPS)
FPGA/PLD Design Conference (part of ASP-DAC)
Conférences généralistes
DAC :
Design Automation Conference
ASP-DAC Asian and South Pacific Design Automation Conference
DATE
Design Automation & Test Exhibition
ISCAS
IEEE International Symposium on Circuits and Systems
MERCI ...
Téléchargement