Académique Documents
Professionnel Documents
Culture Documents
PROGRAMMABLES
2
I. INTRODUCTION
3
DÉFINITION
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
4
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
5
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
6
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
7
MARCHÉ DES FPGA
REVENUS NETS DE XILINX ET ALTERA
1200000
1000000
REVENUS NETS EN $
800000
600000
400000
200000
0
1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
ANNEE
XILINX ALTERA
8
MARCHÉ DES FPGA
PARTS DE MARCHE DES FABRICANTS DE FPGA
40
35
30
25
Xilinx
Altera
% 20
Lattice
Other
15 Actel
10
0
1998 1999 2000
ANNEE
9
MARCHÉ DES FPGA
PARTS DE MARCHE DES FABRICANTS DE FPGA POUR 2000
Actel
Other 6%
8%
Xilinx
Lattice 38%
14%
Altera
34%
10
ÉVOLUTION DE LA TECHNOLOGIE
É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
12
ÉVOLUTION DES PRIX
1,2
INDICE PRIX PAR ELEMENT LOGIQUE
diminue de 40 % par an
0,6
0,4
0,2
0
1995 1996 1997 1998 1999 2000
13
ÉVOLUTIONS
14
ÉVOLUTIONS
15
FPGA ? ASIC
16
TAXONOMIE DES CI (HARD)
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
ASIC : Application Specific Integrated Circuit
FPGA : Field Programmable Gate Array
PLD
CPLD : Complex Programmable Logic Device
PAL : Programmable Array Logic
GAL : Generic Array Logic = PAL
17
SRAM : Static Random Access Memory
ASIC FULL CUSTOM
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
18
ASIC FULL CUSTOM
Au départ
Au final
SPECIFICATIONS
19
ASIC STANDARD CELL
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
20
ASIC STANDARD CELL
Au départ
BIBLIHOTEQUE Au final
D’ELEMENTS
PRE-CARACTERISES
SPECIFICATIONS
21
ASIC GATE ARRAY
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
22
ASIC GATE ARRAY
Au départ
Au final
SPECIFICATIONS
CUSTOM SEMI-CUSTOM
SRAM Antifuse
24
PAL
Matrice de ET réalisant
tous les produits
possibles connectée aux
sorties par des OU
Grande surface de Si
utilisée. Ces circuits ne
sont plus utilisés
aujourd’hui
25
CPLD
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
26
CPLD
27
FPGA
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
28
COMPARAISON
ASIC
CARACTERISTIQUES FPGA
GATE ARRAY STANDARD CELL FULL CUSTOM
29
CAPACITÉS COMPARÉES
100M
Nombre de portes (log)
10M
1M
100k
10k
80% des design fonctionnent
aujourd’hui à moins de 200MHZ
1k
31
TEMPS DE MISE EN ŒUVRE
TEMPS DE MISE EN OEUVRE COMPARES
FPGA
ASIC
0 1 2 3 4 5 6 7 8 9 10
• flexibilité
INCONVENIENTS
• intégration limité par les ressources de routage
• performances
• prix à l’unité élevé pour de grosses productions
34
CONCLUSION
35
FPGA ET CONJONCTURE ÉCONOMIQUE MONDIALE
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
36
FPGA ET CONJONCTURE ÉCONOMIQUE MONDIALE
37
III. ARCHITECTURE
&
CONCEPTION
38
LES DIFFÉRENTES FAMILLES DE CIRCUITS LOGIQUES PROGRAMMABLES
1) QUELQUES DÉFINITIONS
39
2)LES DIFFÉRENTES FAMILLES DE PLD
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
ASIC : Application Specific Integrated Circuit
FPGA : Field Programmable Gate Array
PLD
CPLD : Complex Programmable Logic Device
PAL : Programmable Array Logic
GAL : Generic Array Logic = PAL
40
SRAM : Static Random Access Memory
Les différentes familles de PLD
(suite)
TYPE Nombre de portes Matrice ET Matrice OU Effaçable
intégrées
42
Structure de base d’un PLD
matrices « OU » fixes.
&
tension de fonctionnement
est environ de 5V).
&
b a b a
45
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.
Lettre(s) Code(s) Structure de sortie
PAL : PAL
(CE) : CE pour version CMOS
XX : Nombre d’entrées L Combinatoire active bas
RA Registre asynchrone
X Registre OU exclusif
V Versatile
46
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 :
: Structure de sortie :
: Nombre de sorties :
: Consommation :
: Vitesse :
: Type de boîtier :
47
STRUCTURES DE BASE DES PAL
Brochage du PAL 16R6 Brochage du PAL 16L6
- -
48
PAL22V10 : SORTIE (VERSATILE)
49
PAL22V10
50
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.
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.
51
C) LES EPLD
Généralités
L’introduction des EPLD telle que l’a voulue
ALTERA visait deux buts :
52
EPLD : DESCRIPTION FONCTIONNELLE
Macrocellules
53
EXEMPLE DE EPLD : LE MACH 4
54
D) LES FPGA (FIELD PROGRAMMABLE GATE ARRAYS)
55
LES FPGA
58
ARCHITECTURE ÎLOTS DE CALCULS
59
LES COMPOSANTS LOGIQUES PROGRAMMABLES :
ARCHITECTURES GLOBALES
60
A) 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
61
LES BLOCS DE CONNEXIONS
EC
BC
EC
62
B) ARCHITECTURE HIÉRARCHIQUE
63
ARCHITECTURE HIÉRARCHIQUE
64
ARCHITECTURE HIÉRARCHIQUE
Réseau de routage de
niveau 2
Élément Hiérarchique de
niveau 2
66
ARCHITECTURE LOGARITHMIQUE
Cellule logique
Cell Cell Cell Cell de base Cell Cell Cell Cell
Lignes de
Cell Cell Cell Cell longueur Cell Cell Cell Cell
4 cellules
Lignes de
4*4 4*4 4*4 4*4 longueur 16*16 16*16 16*16 16*16
64 cellules
67
LES ÉLÉMENTS LOGIQUES
68
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
SRAM
In 1
LUT 4 Out
In 2 SRAM
In 3
SRAM
SRAM
Out
69
LES LOOK UP TABLES
In 0 In 1 In 2 In 3
1111 0
1110 1
1101 1
1100 0
1011 0
1010 1
Out
In 0 = 0 In 1 In 2 In 3
1111 0
1110 1
1101 1
1100 0
1011 0
1010 1
Out
71
LES LOOK UP TABLES
In 0 =0 In 1 In 2 In 3
1111 0
1110 1
1101 1
1100 0
1011 0
1010 1
Out
72
LES LOOK UP TABLES
In 0 =0 In 1 = 1 In 2 In 3
1111 0
1110 1
1101 1
1100 0
1011 0
1010 1
Out
73
LES LOOK UP TABLES
In 0 =0 In 1 = 1 In 2 In 3
1111 0
1110 1
1101 1
1100 0
1011 0
1010 1
Out
74
LES LOOK UP TABLES
In 0 =0 In 1 = 1 In 2 =1 In 3 = 1
1111 0
1110 1
1101 1
1100 0
1011 0
75
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 :
ENTREES
SORTIES
LUT D
FAST
CARRY
CHAIN
HORLOGE
Carry-Out 77
LES RÉSEAUX D’HORLOGES
78
LES RÉSEAUX D’HORLOGES
80
CARACTÉRISTIQUES DES PLL ET DLL
81
COMPARAISON PLL VS DLL
Comparaison "objective"
faite par ALTERA
82
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
• un cœur de processeur :
ARM9 (32 Bits) à 200MHz
8 K octets de cache
Instructions
8 K octets de cache
Données
84
Matrice FPGA
LES CŒURS DE PROCESSEURS
PLL UART External Trace
Processor & Memory
Interfaces Module SRAM SRAM SRAM
Interfaces
Coeur de
JTAG Timer processeur
I-CACHE Interrupt
D-CACHE
Watchdog ARM922T DPRAM DPRAM DPRAM
ARM 8K Bytes Controller
8K Byte
Timer
XA1
FPGA
XA4
LEs 16400
128 Kbytes SRAM
ESB Bytes 26K 64 Kbytes DPRAM
86
LES ALIMENTATIONS EN ÉNERGIE
88
RÉPARTITION DE LA CONSOMMATION DE PUISSANCE
RESEAU D’HORLOGE
21%
ENTREES SORTIES
9% RESSOURCES DE ROUTAGE
65%
RESSOURCES LOGIQUES
5%
89
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 90
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.
91
IV. LA FAMILLE
ALTERA
92
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
93
LA FAMILLE ALTERA
STRATIX
94
APEX II - CARACTÉRISTIQUES
4 rangées de MegaLAB
soit au total 280 MegaLAB
70 colonnes de MegaLAB 96
APEX II - MEGALAB
97
APEX II - LAB
98
APEX II - LE
99
APEX II - CARRY CHAIN
100
APEX II - ESB
101
APEX II - ENTRÉES SORTIES
102
APEX II - PLL
103
STRATIX
Toujours plus gros, toujours plus performant, Stratix, le dernier née d’Altera !
104
STRATIX - ARCHITECTURE
105
STRATIX - ARCHITECTURE
106
STRATIX - BLOCS MÉMOIRES
107
STRATIX - DSP ÉLÉMENTAIRES
108
STRATIX - RÉSEAU D’HORLOGES
109
ÉVOLUTIONS FUTURES
110
VI. FAMILLE
XILINX
111
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
112
Xilinx propose aussi une gamme complète de CPLD
LA FAMILLE XILINX
113
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² 114
VIRTEX II - ARCHITECTURE
CLB : Configurable Logic Block
CLB
Slice
115
VIRTEX II - RÉSEAU DE ROUTAGE
116
VIRTEX II - RÉSEAU D’HORLOGES
118
VIRTEX II - ENTRÉES SORTIES
119
VIRTEX II - CONFIGURATION
120
VIRTEX II - ÉVOLUTION
121
VIRTEX II PRO- ARCHITECTURE
122
VII. AUTRES
EXEMPLES
DE FPGA
123
AUTRES EXEMPLES DE FPGA
124
AUTRES EXEMPLES DE FPGA
Quick
Logic pASIC (1,2 et 3), série Quick (Ram, PCI),
technologie antifusible (One Time
Programmable), faible densité
de 1K à 90K portes
127
VIII. UTILISATIONS
&
CAO
128
PROGRAMMATION DES PLDS.
Cahier des charges
La programmation des
PLDs nécessite un Mise en « équation » du problème
logiciel adapté pour le
développement du Résolution du problème sous forme d’équation
logique, de logigramme ou d’algorithme
programme et un
programmateur Choix du PLD en fonction du nombre d’entrées et de
sorties
permettant de
« griller » le circuit.
Saisie des équations logiques, de la table de vérité, du
logigramme ou de l’algorithme avec le logiciel
Le fichier JEDEC est
un ensemble de Simplification logique
données binaires
indiquant au Génération d’un fichier au format JEDEC Ces étapes sont
effectuées par le
programmateur les logiciel
fusibles à « griller ». Simulation
PLD programmé
130
OUTILS DE CAO
131
OUTILS DE CAO
Flot FPGA
Synthèse
Simulation
133
IP : INTELLECTUAL PROPERTY
Digital Signal Processor,
Communications Bus Interface
Processing Peripheral
ADPCM (u-law, PCI Target Color Space Converter NiosTM Processor
a-law)
PCI Master-Target Correlator Tensilica X-tensa
ATM Controller Processor
PCI-X Digital Modulator
CRC PalmChip Bus
CAN Bus Discrete Cosine Transform
Ethernet MAC SDRAM Controller
(10/100/Gigabit) IIC Master & Slave Fast Fourier Transform
DDR-SDRAM
HDLC Protocol Core IEEE 1394 FIR Compiler Controller
IMA Controller PowerPC Bus IIR Filter QDR-SDRAM
Arbiter Controller
SONET/SDH Framer Image Processing Library
PowerPC Bus 8237 DMA Controller
T3/E3 Framer Master NCO
Reed Solomon 8255 Peripheral
Packet Over SONET PowerPC Bus Slave Interface
Processor Encoder/Decoder
USB Function 8259 Interrupt
Telephony Tone Generator Controller Interleaver/Deinterleaver
Controller
Utopia Master & Slave USB Host Viterbi Decoder
8254 Timer/Counter
Controller Turbo Decoder
POS-PHY Interface 8051, 6502, Z80
134
Et plus encore !
EXEMPLE D’IP : NIOS
PBM
IRQ
RISC générique optimisé CPU
FLASH
Caractéristiques :
• données sur 16 ou 32 bits
Timer
• 128, 256 ou 512 registres
Serial
• registres à décalage rapide ( 1, Port UART
3, 7, 15 ou 31 bits/clock)
• possibilités de lui adjoindre
des périphériques (UART, RAM,
ROM)
12% d’un Ici le reste de
EP20K200E votre système
135
APEX EP20K200E
IX. EVOLUTIONS
CODESIGN, SORC
136
LES NOUVELLES UTILISATIONS DES FPGA
137
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)
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)
138
FLOT DE CODESIGN
SPECIFICATION HAUT NIVEAU DE L’APPLICATION
ordonnancement de l’application
proposition de candidats HW et SW
ESTIMATION SYSTEME
COSIMULATION
139
TESTS
LES SORC
Technique héritière direct des SOC : System On Chip
Différentes notations :
141
LE FUTUR
142
LE FUTUR
Processeurs re-programmant
leur environnement
en temps réel :
« Hardware intelligent
programmé à haut niveau »
143
LE FUTUR
Circuit programmable Analogiques
et Mixtes : (www.anadigm.com)
144
145