chapiii_fpgacircuits logiques programmables
TRANSCRIPT
FPGA
1
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 également configurable
circuit intégré prédiffusé programmable
2
Historique
IXème av JC Les chinois comptent avec un boulier !
1640 Blaise Pascal, invente une machine mécanique à additionner et soustraire : la Pascaline
1875 Sir J.W. Swan invente le 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
3
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
4
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
5
Marché des FPGA
REVENUS NETS DE XILINX ET ALTERA
0
200000
400000
600000
800000
1000000
1200000
1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
ANNEE
RE
VE
NU
S N
ET
S E
N $
XILINX ALTERA
6
Marché des FPGA
0
5
10
15
20
25
30
35
40
%
1998 1999 2000ANNEE
PARTS DE MARCHE DES FABRICANTS DE FPGA
Xilinx
Altera
Lattice
Other
Actel
7
Marché des FPGA
PARTS DE MARCHE DES FABRICANTS DE FPGA POUR 2000
Altera34%
Xilinx38%Lattice
14%
Other8%
Actel6%
8
Évolution de la technologie
Taille relative :
1994
0.6 µtrois couches
de métal
100%
1995
0.5 µtrois couches
de métal
78%
1996
0.35 µquatre couches
de métal
32%
1998
0.25 µcinq couches
de métal
19%
1999
0.18 µsix couches
de métal
12%
Évolution de la technologie
2004 : techno cuivre 0.09 µm à 12 couches de métal (200 000 portes/mm²)
Technologie :
Année :
2002 : techno cuivre 0.13 µm à 8 couches de métal
9
Évolution des prix
0
0,2
0,4
0,6
0,8
1
1,2
1995 1996 1997 1998 1999 2000
IND
ICE
PR
IX P
AR
EL
EM
EN
T L
OG
IQU
E
(So
urc
e :
Alt
era) Le prix par élément logique
diminue de 40 % par an
10
Évolutions
Prix (de l’élément logique) - 46% par an
Densité (logique) + 55% par an
Vitesse (fréquence système) + 35% par an
11
É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
12
Taxonomie des CI (HARD)
PLD
ASIC
ASIC
Circuits
sur mesure
Circuits
précaractérisés
Circuits
prédiffusés
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGA CPLD PALSea of gate
Gate array
Standard
cell
Full Custom
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
AntifuseSRAM
« Circuit Intégré Spécialisé »Définition ::dont la conception est fondée sur l'utilisation de blocs prédéfinis ou préconstruits.
13
CPLD
PAL
PALPAL
PAL
MATRICE D’INTERCONNECTIONSE/S E/S
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.
14
FPGA
ASIC
Circuits
sur mesure
Circuits
précaractérisés
Circuits
prédiffusés
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGA CPLD PALSea of gate
Gate array
Standart
cell
Full Custom
AntifuseSRAM
A SUIVRE !!!FPGA : Field Programmable Gate Array
15
Comparaison
ASICCARACTERISTIQUES 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 DECONCEPTION
TRES PETIT MOYEN MOYEN GRAND
COUT DECONCEPTION
TRES PETIT MOYEN MOYEN TRES GRAND
UTILISATION DESOUTILS
SIMPLE COMPLEXE COMPLEXE TRES COMPLEXE
VOLUME DEPRODUCTION
PETIT MOYEN GRAND GRAND
16
Capacités comparéesN
ombr
e de
por
tes
(log)
année
Moyenne d’utilisation
100M
10M
1M
100k
10k
1k
1989 1997 2001
Capacité max ASIC
Capacité max FPGA80% des design fonctionnent
aujourd’hui à moins de 200MHZ
17
Les FPGA sont au cœurs des systèmes
la logique de la colle. Un circuit logique simple qui est utilisé pour connecter des circuits logiques complexes ensemble 18
Temps de mise en œuvre
TEMPS DE MISE EN OEUVRE COMPARES
0 1 2 3 4 5 6 7 8 9 10
ASIC
FPGA
APPRENTISSAGE SAISIE COMPILATION SIMULATION FABRICATION
19
Contextes d’utilisations en grandes séries
ASIC
FPGA
Vo
lum
e
TempsConception
prototypage
Pré-série Production Fin de vie
À-coup de production
20
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)
21
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
22
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 FPGA
• très petit nombre de circuits FPGA
• optimisation des performances ASIC
• grande série ASIC
23
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 …. »
24
FPGA et conjoncture économique mondiale
25
III. ARCHITECTURE
CONCEPTION
&
26
Les différentes familles de circuits logiques programmables1) Quelques définitions
• EEPROM ou E2PROM (Electrical Erasable Programmable Read-Only 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.
27
2)Les différentes familles de PLD
PLD
ASIC
ASIC
Circuits
sur mesure
Circuits
précaractérisés
Circuits
prédiffusés
Circuits
configurables
SEMI-CUSTOMCUSTOM
FPGA CPLD PALSea of gate
Gate array
Standard
cell
Full Custom
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
AntifuseSRAM
28
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-VElectriquement
FPGA 3000 à 6.000.000 Programmable Programmable ElectriquementNon
29
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.
30
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.
31
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.
• 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..
32
Architecture interne du FPGA
33
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...
34
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
35
Les composants logiques programmables :
Architectures globales
Figure 1 : Structure of a CPLD Les MACROCELL = P-TERM (PAL-Like)
36
Architecture îlots de calculs
Réseau de routage :
• lignes horizontales
• lignes verticales
Élément configurable :
• élément logique
• élément de mémorisation
• élément arithmétique
• entrée/sortie
EC
Matrice de connexions
MCBloc de connexions
BC
37
Les blocs de connexions
EC
BC
EC
38
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
39
Architecture hiérarchique
40
Élément Hiérarchique de niveau 1
Élément Hiérarchique de niveau 2
Architecture hiérarchique
Réseau de routage de niveau 1
Réseau de routage deniveau 2
Élément Hiérarchique de niveau 3
• éléments logiques• éléments de
mémorisation• ...
Réseau de routage de niveau 3
41
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
42
Cell
Cell
Cell
Cell
Cell
Cell
Cell
CellCellCellCell
Cell
CellCellCellCell
Architecture logarithmique
Cellule logique de base
Matrice de 16 cellules
Cell
Cell
Cell
Cell
Cell
Cell
Cell
CellCellCellCell
Cell
CellCellCellCell
Lignes de longueur
4 cellules
4*4
4*4
4*4
4*4
4*4
4*4
4*4
4*44*44*44*4
4*4
4*44*44*44*4
16*16
16*16
16*16
16*16
16*16
16*16
16*16
16*1616*1616*1616*16
16*16
16*1616*1616*16 16*16
Lignes de longueur
64 cellules
Lignes de longueur
16 cellules
43
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
44
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.
SRAM
SRAM
SRAM
SRAM
SRAM
SRAM
In 0 In 1 In 2 In 3
Out
Out
In 0
In 1
In 3
In 2LUT 4
LUT = Table de scrutation
LUT 4 entrées = RAM 2octets
45
Les Look Up Tables
0
1
1
0
0
1
In 0 In 1 In 2 In 3
Out
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0
1 0 1 1
1 0 1 0
46
Les Look Up Tables
0
1
1
0
0
1
In 0 = 0 In 1 In 2 In 3
Out
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0
1 0 1 1
1 0 1 0
47
Les Look Up Tables
0
1
1
0
0
1
In 0 =0 In 1 In 2 In 3
Out
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0
1 0 1 1
1 0 1 0
48
Les Look Up Tables
0
1
1
0
0
1
In 0 =0 In 1 = 1 In 2 In 3
Out
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0
1 0 1 1
1 0 1 0
49
Les Look Up Tables
0
1
1
0
0
1
In 0 =0 In 1 = 1 In 2 In 3
Out
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0
1 0 1 1
1 0 1 0
50
Les Look Up Tables
0
1
1
0
0
1
In 0 =0 In 1 = 1 In 2 =1 In 3 = 1
Out= 1 = In3 • In2 • In1 • Ino
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 0
1 0 1 1
1 0 1 0
51
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 Taille des LUT Nombre de LUT
Surface 3 – 4 6 – 10
Délais 7 4 – 10
Surface et délais 4 – 6 4 – 10
52
Les Look Up Tables
Élément logique de base avec LUT
LUT
FAST CARRY CHAIN
D
Q
SORTIESENTREES
Carry-In
Carry-Out
HORLOGE
53
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 !!!
54
Les réseaux d’horloges
Le problème 1 : JITTER : bruit de phase
Le problème 3 : on peut avoir besoin de plusieurs horloges dans un même circuit
Le problème 2 : CLOCK SKEW : Décalage entre les transitions de la même horloge à différents points d’un circuit.
55
Solutions d’asservissement des horloges
Les DLL (numérique)
Delay-Locked Loop
( XILINX )
Les PLL (analogique)
Phase-Locked Loop
( ALTERA )
56
Caractéristiques des PLL et DLL
57
Comparaison PLL vs DLL
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 ???
Comparaison "objective" faite par ALTERA
58
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
59
Les cœurs de processeurs
Matrice FPGA
Cœur ARM 922T
RAM simple portRAM double port
Altera propose le circuit Excalibur contenant :
• 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
60
Les cœurs de processeurs
PLL
Timer
UART
InterruptControllerWatchdog
Timer
JTAG
128 Kbytes SRAM64 Kbytes DPRAM
32 Kbytes SRAM16 Kbytes DPRAM
256 Kbytes SRAM128 Kbytes DPRAM
Coeur de processeur
FPGA
DPRAM
XA1
XA4
XA10
TraceModule
ARM922T
SRAM SRAM SRAM
DPRAM DPRAM
ExternalMemory
InterfacesProcessor & Interfaces
I-CACHE D-CACHE
ARM 8K Bytes 8K Byte
LEs 4160
ESB Bytes 6.5K
LEs 16400
ESB Bytes 26K
LEs 38400
ESB Bytes 40K
61
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
62
Les alimentations en énergie
Dans la plupart des cas il faut deux alimentations
Attention à la consommation des E/S => minimiser leur nombre !!!
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
63
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
64
Répartition de la consommation de puissance
RESSOURCES DE ROUTAGE
65%
RESEAU D’HORLOGE
21%
ENTREES SORTIES
9%
RESSOURCES LOGIQUES
5%
65
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
66
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.
67
IV. LA FAMILLEALTERA
68
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
69
La famille ALTERA
STRATIX
70
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²
71
APEX II - Architecture
L’architecture est de type hiérarchique, au premier niveau de hiérarchie apparaisse les MegaLAB : Mega Logic Array Block
70 colonnes de MegaLAB
4 rangées de MegaLAB
soit au total 280 MegaLAB
72
APEX II - MegaLAB
Un MegaLAB contient de 16 à 24 LAB (Logic Array Block)
et 1 ESB (Embedded System Block)
73
APEX II - LAB
Les LAB sont constitués de 10 LE : Logic Element
74
APEX II - LE
Le nombre max de LE pour un APEX II est de 67 200
75
APEX II - Carry Chain
76
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
77
APEX II - Entrées Sorties
78
APEX II - PLL
79
Stratix
Toujours plus gros, toujours plus performant, Stratix, le dernier née d’Altera !
80
Stratix - Architecture
81
Stratix - Architecture
82
Stratix - Blocs mémoires
83
Stratix - DSP élémentaires
Des blocs multiplieurs sont insérés
84
Stratix - Réseau d’horloges
85
É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)
86
VI. FAMILLE
XILINX
87
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
88
La Famille XILINX
89
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 - Caractéristiques
90
Virtex II - Architecture
CLB : Configurable Logic BlockCLB
Slice
91
Virtex II - Réseau de routage
92
Virtex II - Réseau d’horloges
DCM : Digital Clock Manager
93
Virtex II - DCM
Digital Clock Manager
94
Virtex II - Entrées sorties
95
Virtex II - Configuration
96
Virtex II - Évolution
97
Virtex II Pro- Architecture
98
VII. AUTRES
DE FPGA
EXEMPLES
99
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
100
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 antifusiblessérie militaire, tolérance aux radiations
101
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
102
Autres exemples de FPGA
QuickLogic pASIC (1,2 et 3), série Quick (Ram, PCI),
technologie antifusible (One Time Programmable), faible densité de 1K à 90K portes
Cypress CY39K, architecture mixte CPLD-FPGA
103
VIII. UTILISATIONS
CAO
&
104
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 ».
Saisie des équations logiques, de la table de vérité, du logigramme ou de l’algorithme avec le logiciel
Cahier des charges
Mise en « équation » du problème
Résolution du problème sous forme d’équation logique, de logigramme ou d’algorithme
Simplification logique
Génération d’un fichier au format JEDEC
Simulation
Choix du PLD en fonction du nombre d’entrées et de sorties
Ces étapes sont effectuées par le
logiciel
Ces étapes sont effectuées par le
logiciel
Programmation du PLD à l’aide du fichier JEDEC et du programmateur
PLD programmé105
106
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 !
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 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
108
Autres outils de CAO
Flot FPGA
Synthèse
Simulation
109
IP : Intellectual Property
Et plus encore !
ADPCM (u-law, a-law)
ATM Controller
CRC
Ethernet MAC (10/100/Gigabit)
HDLC Protocol Core
IMA Controller
SONET/SDH Framer
T3/E3 Framer
Packet Over SONET Processor
Telephony Tone Generator
Utopia Master & Slave
POS-PHY Interface
PCI Target
PCI Master-Target
PCI-X
CAN Bus
IIC Master & Slave
IEEE 1394
PowerPC Bus Arbiter
PowerPC Bus Master
PowerPC Bus Slave
USB Function Controller
USB Host Controller
Color Space Converter
Correlator
Digital Modulator
Discrete Cosine Transform
Fast Fourier Transform
FIR Compiler
IIR Filter
Image Processing Library
NCO
Reed Solomon Encoder/Decoder
Interleaver/Deinterleaver
Viterbi Decoder
Turbo Decoder
NiosTM Processor
Tensilica X-tensa Processor
PalmChip Bus
SDRAM Controller
DDR-SDRAM Controller
QDR-SDRAM Controller
8237 DMA Controller
8255 Peripheral Interface
8259 Interrupt Controller
8254 Timer/Counter
8051, 6502, Z80
Communications Bus InterfaceDigital Signal
ProcessingProcessor,Peripheral
110
Exemple d’IP : NIOS
NIOS : cœur de processeur RISC générique optimisé
Caractéristiques :
• données sur 16 ou 32 bits
• 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)
APEX EP20K200E
Ici le reste de votre système
FLASH
SRAM
SerialPort
Timer
IRQ
UART
12% d’unEP20K200E
PB
M CPU
111
IX. EVOLUTIONS
CODESIGN, SORC
112
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
113
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)
114
Flot de CoDesign
SPECIFICATION HAUT NIVEAU DE L’APPLICATION
ESTIMATION SYSTEME
ESTIMATION LOGICIELLE ESTIMATION MATERIELLE
PARTITIONNEMENT
SYNTHESE LOGICIELLE SYNTHESE MATERIELLESYNTHESE INTERFACE
COSIMULATION
IMPLEMENTATIONHW et SW
TESTS
ordonnancement de l’applicationproposition de candidats HW et SW
Choix des réalisation HW ou SW
Retour d’expérience
115
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é
116
CONCLUSIONS
117
Le futur
118
Le futur
Processeurs re-programmantleur environnement en temps réel :« Hardware intelligentprogrammé à haut niveau »
119
Le futur
Circuit programmable Analogiqueset Mixtes : (www.anadigm.com)
Intégration de MEMS : Plus tard 120
REFERENCESBIBLIOGRAPHIQUES
121
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
122
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
123
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
124
MERCI ...
125