Documente Academic
Documente Profesional
Documente Cultură
programmables
PLAN
I. Introduction
II. Les mémoires vives
III. Les mémoires mortes
IV. Évolution des composants programmables
V. Les FPGA
I INTRODUCTION
1 2
m em
2 1
s e le c t
RAM Statique : simulation
un CI Ram
de 4 mots de 4 bits NB: Les signaux cs et wr
sont actifs à 0
(niveau bas)
2
‘0’
0
temps
RAM dynamique
d a ta
Présentation des DRAM SIMM
Single In line Memory Module
III Les Mémoires mortes: Read Only Mémory
A
Structure à : 00
D
• ET fixes (les circuits de R
01
décodage d'adresse) E
S
• OU programmables (les S 10
données placées dans la E
S 11
mémoire).
Zone mémoire
ROM (suite)
PRINCIPE DES PROM A FUSIBLE
Intact «Programmé»
Rem : Antifusibles
UV-PROM
b) PRINCIPE DES UVPROM
Non-volatile
CONCEPTION
UTILISATION
DES
FPGA
PLAN
I. Introduction, historique
II. FPGA vs ASIC
III. Architecture et conception des FPGA
IV. Famille de FPGA Altera
V. Famille de FPGA Xilinx
VI. Autres Exemples de FPGA
VII. Utilisation des FPGA, CAO
VIII. CoDesign, SORC et nouvelles
Conclusion
I. INTRODUCTION
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
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
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
1000000
REVENUS NETS EN $
800000
600000
400000
200000
0
1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
ANNEE
XILINX ALTERA
Marché des FPGA
40
35
30
25
Xilinx
Altera
% 20
Lattice
Other
15 Actel
10
0
1998 1999 2000
ANNEE
Marché des FPGA
Actel
Other 6%
8%
Xilinx
Lattice 38%
14%
Altera
34%
Évolution de la technologie
Évolution
Évolution de
de la
la technologie
technologie
La technologie cuivre
(aujourd’hui maîtrisée) permet
d’augmenter la rapidité des
circuits donc d’augmenter les
fréquences de fonctionnement
Problèmes techniques
Pourcentage de perte
à la fabrication du à
l’augmentation de la
taille des wafers (de
200 à 300 mm) =>
300 mm
200 mm
diminue de 40 % par an
0,6
0,4
0,2
0
1995 1996 1997 1998 1999 2000
Évolutions
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
SRAM : Static Random Access Memory
ASIC Full Custom
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
Au départ
Au final
SPECIFICATIONS
+
ASIC Standard Cell
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
Au départ
BIBLIHOTEQUE Au final
D’ELEMENTS
PRE-CARACTERISES
SPECIFICATIONS
+
ASIC Gate Array
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
Au départ
Au final
SPECIFICATIONS
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
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
SRAM Antifuse
ASIC
CUSTOM SEMI-CUSTOM
SRAM Antifuse
ASIC
CARACTERISTIQUES FPGA
GATE ARRAY STANDARD CELL FULL CUSTOM
sa t i on
’ ut i li
100
en n ed
Moy
k
P GA
x F 80% des design fonctionnent
10k m a
t é
a ci aujourd’hui à moins de 200MHZ
a p
1k C
1989 année1997 2001
Les FPGA sont au cœurs des systèmes
Temps de mise en œuvre
FPGA
ASIC
0 1 2 3 4 5 6 7 8 9 10
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.
Contextes d’utilisations en grandes séries
Volume
ASIC
FPGA
À-coup de production
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
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
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
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
1 1 1 1
matrices « OU » fixes.
&
tension de fonctionnement
est environ de 5V). &
programmateur adapté. Q0 Q1
Structure de base avec les normes des constructeurs
.
b a b a
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
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
YY : Nombre de sorties L Combinatoire active bas
C : Consommation
H Combinatoire active haut
ZZ : Vitesse
DEF : Type de boîtier C Combinatoire complémentaire
RA Registre asynchrone
X Registre OU exclusif
V Versatile
emarques :
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 ».
xemple : PAL 16 L 8 H 15 PC
AL : PAL
Nombre d’entrées :
Structure de sortie :
Structures de base des PAL
Brochage du PAL 16R6 Brochage du PAL 16L6
- -
PAL22V10 : Sortie (VERSATILE)
PAL22V10
ZOOM Complet
b) Les GAL
Généralités
• L’introduction des EPLD telle que l’a
voulue ALTERA visait deux buts :
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
Architectures globales
É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
Réseau de routage de
niveau 2
Élément Hiérarchique de
niveau 2
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
Les éléments logiques
SRAM
In 0
SRAM
In 1
LUT 4 Out
In 2 SRAM
In 3
SRAM
SRAM
Out
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
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
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
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
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
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
ENTREES
LUT D SORTIES
FAST
CARRY
CHAIN
HORLOGE
Carry-Out
Les réseaux d’horloges
Comparaison "objective"
faite par ALTERA
• un cœur de processeur :
ARM9 (32 Bits) à 200MHz
8 K octets de cache
Instructions
8 K octets de cache
Données
Matrice FPGA
Les cœurs de processeurs
XA1
FPGA
XA4
LEs 16400
128 Kbytes SRAM
ESB Bytes 26K 64 Kbytes DPRAM
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 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
4 rangées de MegaLAB
soit au total 280 MegaLAB
70 colonnes de MegaLAB
APEX II - MegaLAB
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
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
Quick
Logic pASIC (1,2 et 3), série Quick (Ram, PCI),
technologie antifusible (One Time
Programmable), faible densité
de 1K à 90K portes
PLD programmé
Outils de CAO
Flot FPGA
Synthèse
Simulation
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
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
APEX EP20K200E
IX. EVOLUTIONS
CODESIGN, SORC
Les nouvelles utilisations des FPGA
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
ordonnancement de l’application
proposition de candidats HW et SW
ESTIMATION SYSTEME
COSIMULATION
TESTS
Les SORC
Différentes notations :
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 ...