-1-Emmanuel Boutillon
Les FPGAs
Emmanuel Boutillon
Cours réalisé à partir de :
Nathalie Julien, cours IUP EEA 1999.
Jean-Luc Danger, ENST Paris
Cours de l’ISEP disponible sur le WEB
Pierre Bomel
-2-Emmanuel Boutillon
Comment et pourquoi faire de la logique programmable ?
Les technologies de personnalisation PAL, EPLD et FPGA Spécificité du développement des CLPs Situation présente et évolution.
PLAN
-3-Emmanuel Boutillon
microprocesseursprocesseurs DSPsmémoirespériphériques
FPGAEPLD
circuits logiques
programmables
circuits logiques
programmablesASICsASICs
Position du problème
MatérielMatériel LogicielLogiciel
circuits existantscircuits existantscircuits personnaliséscircuits personnalisés
-4-Emmanuel Boutillon
Position du problème
L’intérêt des CLP se justifie (depuis 30 ans) par :
Le coûts très important des ASICs
Le temps de développement d ’un ASIC
Les performances faibles du logiciel
La non flexibilité des solutions ASIC
« Démocratisation » des FPGA
-5-Emmanuel Boutillon
Coût à la pièce
Nombre de pièces
ASIC
CLP
NRE
seuil
le seuil augmente si le nombre de portes baisseseuil mini = 1000 pièces
Coût CLP/ASIC
-6-Emmanuel Boutillon
temps
Temps de conception
specspec
FPGA
ASIC
Code+synthCode+synth PlacementRoutage
PlacementRoutage fabfab
specspec Code+synthCode+synth
specspeclogiciel
PRPR
CodeCode
P
+
Time to market
-7-Emmanuel Boutillon
processeur : traitement séquentiel
fclock
nb op/cyclef =
f
Nb opérations/cycle1 2 3 4 8 12 16 20 24 28 32 36 40 44 48 52
10
20
30
40
50
60
70
80 circuit personnalisé : traitement parallèle
F clock
fréquencede traitement
Les performances
-8-Emmanuel Boutillon
Démocratisation de la conception
Temps log10(complexité)
10Masque
8Transistor
7Porte
5RTL
4Spécifications
3Idée
T0 Tfin
Développem
ent
Val
idat
ion
ASI
C
Fonderie
Produit
Val
idat
ion
CL
PAffaire de
Spécialistes avec un équipement
lourd
-9-Emmanuel Boutillon
prototypage conception rapide de démonstrateurs autonomie (pas de fondeur)
Reprogrammation maintenance in situ
Intérêts propres aux CLPs
-10-Emmanuel Boutillon
Comment faire des CLP ?
Un circuit classique contient :- des portes logiques ;- des connections entre les portes logiques ;- des éléments de mémorisation (registre et/ou mémoire) ;- des entrées-sorties.- une (ou des) horloges- une structure hiérarchique
Le CLP doit donc avoir les mêmes fonctionnalités, avec la notionde « programmabilité ».
-11-Emmanuel Boutillon
Toute fonction logique booléenne peut s'exprimer sous forme canonique
S = A2A1A0 + A2A1A0 + A2A1A0 + A2A1A0S = A2A1A0 + A2A1A0 + A2A1A0 + A2A1A0
minterme ou terme produit
Matrice ETproduits des
entrées
Matrice ETproduits des
entrées
Matrice OUsomme des produits
Matrice OUsomme des produits
Ai
Sj
= Réseau logique programmable
exemple :
Fonction logique simple : Réseau logique
-12-Emmanuel Boutillon
f(A1,A0 ) = f(0,0)A1A0 + f(0,1)A1A0 + f(1,0)A1A0 +f(1,1)A1A0f(A1,A0 ) = f(0,0)A1A0 + f(0,1)A1A0 + f(1,0)A1A0 +f(1,1)A1A0fonction logique 2 entrées :
mémoire 4 mots de 1 bit : d = d0A1A0 + d1A1A0 + d2A1A0 + d3A1A0d = d0A1A0 + d1A1A0 + d2A1A0 + d3A1A0
A0
A1
F(A1,A0)=d= A1A0 + A1A0
adresse=entrées
liaison non programmableliaison programmable
Mémoire
d0=0d1=1
d2=1d3=0
-13-Emmanuel Boutillon
A0
A1
A2
A3
S0
S1
matrice
ETfigée
matrice
OUprogrammable
adresse=entrées
liaison non programmableliaison programmable
mémoire 16 mots de 2 bits => 2 fonctions logiques de 4 entrées
Mémoire
-14-Emmanuel Boutillon
LOOK UP TABLE (LUT)
Une mémoire contient la table de vérité d ’une fonction logique :
Ex : Fonction F(a,b,c) = a xor b xor c
000 0001 1010 0011 1100 0101 1110 0111 1
SRAMAdresse(a,b,c)
F(a,b,c)
=> Mode de lecture différent du résultat
-15-Emmanuel Boutillon
ABCD
S0
S1
S2
S3
matrice
ETprogrammable
matrice
OUfigée
liaison non programmableliaison programmable
Programmable Array Logic
somme de produits = Macrocellule
PAL
PLD : 4 fonctions de 12 mintermes (max) de 3 variablesAu déparet #70-85 : programmation « à la main » (fichier de fusibles)
-16-Emmanuel Boutillon
utilisée pour la technologie ANTIFUSIBLE
équivaut à une LUT cablée
mux
a b
sortie
e0
e1
e2
e3
sortie = abe0 ou abe1 ou abe2 ou abe3
intérêt : surface réduite cellule grain fin
cellule logique à MUX
-17-Emmanuel Boutillon
ET
OU
OUOU
ET
MEMOIRE
PAL
MUX
type structure avantage inconvénient
toutes les fonctions=> 22n possibles
• grand nombre d'entrées• économique
•Mémoire conséquente si nombreuses entrées
Nombre de mintermes limité
Taille très faible Limité à peu d ’entrées
comparatif des réseaux programmables
-18-Emmanuel Boutillon
Programmation des interconnections
Par connexion ou non de deux fils
F1
F2
F1
F2
Par l’utilisation de multiplexeur
F1
F2
F1’ Le nombre de connexionsréalisables est limité à ce quiexiste...
!
-19-Emmanuel Boutillon
Programmation des registres et E/S
clk
DQ
rst
Registre
Possibilité d ’utiliser ou non le registre
Possibilité de programmerle PAD en mode entrée ousortie.
-20-Emmanuel Boutillon
Système d’entrée sortie complet
DFF
DFF
OE
OUT
IN
broche
la broche peut être :
entrée simplesortie simplebidirentrée avec DFF (structure FPGA)sortie avec DFF (structure FPGA)inutilisée pour faciliter le routage (structure PAL)avec logique JTAG
-21-Emmanuel Boutillon
Gestion des horloges
Mise en place d ’un arbre de d ’horloge pour effectuer de la logique synchrone.
Principe : système asservi en phase
CLK
CLK_OUT
PLL
compensation le "skew" d'horloge multiplication de la fréquence si diviseur dans la boucle de réaction
-22-Emmanuel Boutillon
Gestion de la complexité
Pour les CLP complexes, il est possible de définir des niveaux de hiérarchie du matériel.
=> Au niveau des interconnections=> Au niveau du regroupement de fonctions logiques
Il est aussi possible de diviser le circuit en fonctionnalitésdifférentes :
=> Zone de mémoire RAM=> Zone de CLP=> Zone spécialisée
-23-Emmanuel Boutillon
technologiesde programmation :
- EEPROM- SRAM
- antifusible
technologiesde programmation :
- EEPROM- SRAM
- antifusible
architectures du plan actif : - PAL hiérarchique (EPLD)
- gate-array (FPGA) - mixtes (CPLD ALTERAs)
architectures du plan actif : - PAL hiérarchique (EPLD)
- gate-array (FPGA) - mixtes (CPLD ALTERAs)
Entrées / Sorties
Entrées/Sorties
Plan actif : cellules logiques
Plan de programmation : interconnexion
Entrées / Sorties
programmationou configuration
Entrées / Sorties
Principes du CLP
-24-Emmanuel Boutillon
Comment et pourquoi faire de la logique programmable ?
Les technologies de personnalisation PAL, EPLD et FPGA Spécificité du développement des CLPs Situation présente et évolution.
PLAN
-25-Emmanuel Boutillon
Les composants logiques programmables :
Les technologies de personnalisation
Fusibles Anti-fusibles UV PROM (obsolète) EEPROM SRAM Métalisation Comparaison des différents techniques.
Le circuit est personnalisé par création/destruction de connections sur la structure prédéfinie.
-26-Emmanuel Boutillon
Les composants logiques programmables : Technologie de personnalisation :
Fusibles métalliques ou Si
Lignes métalliques : interconnexions
Intact «Programmé»
Problème de l’électro-migration
Même structure en ligne polysilicium
Ou Transistor «grillable» joue le rôle de fusible
-27-Emmanuel Boutillon
Les composants logiques programmables : Technologie de personnalisation :
Antifusibles
-28-Emmanuel Boutillon
Les composants logiques programmables : Technologie de personnalisation :
UV-EPROM / EEPROM
SAMOS : Stacked MOS
Non-volatile
-29-Emmanuel Boutillon
Les composants logiques programmables : Technologie de personnalisation :
SRAM
Besoin d’une mémoire externed’initialisation :Processeur associé ou EEPROM série
-30-Emmanuel Boutillon
Prédiffusés (Gate Array) Circuits génériques au «catalogue»
(ressources sans les interconnexions finales)
Développement / production rapides Pas d ’utilisation optimale du Si
Exemple de métalisation pour obtenir un registre.
Les outils de CAO vont permettrede dériver le dessin du ou desmasques de connexions en tenant compte du schéma et du circuit choisi
Les ressources peuvent être uniques(par exemple des NAND) ou plusdiversifiéesLe routage se fait «dessus» : sea of gateou «à coté» : row-based
-31-Emmanuel Boutillon
Comparaison
Critères pour les interconnexions :rapidité de propagation à travers l ’interrupteur (produit résistance - capacité parasite)densité possible des interconnexions (surface de la cellule)facilité d ’utilisation (ISP, support, PROM de configuration)maintien de la configuration (volatile)reprogrammablilité (OTP)
Typed'interconnexion
EPROM Antifusible SRAM
Rapidité - + -
Densité - + --
Facilité + - +
Reprogrammabilité + non ++
-32-Emmanuel Boutillon
Comment et pourquoi faire de la logique programmable ?
Les technologies de personnalisation PAL, EPLD et FPGA Spécificité du développement des CLPs Situation présente et évolution.
PLAN
-33-Emmanuel Boutillon
Taxinomie des CLPs (PLD)
Circuits logiques programmable
(Programmable Logic Device)
PLD EPLD-CPLD FPGA
SRAM antifusePAL GAL
UVPROM EECMOS isp
Les noms peuvent changer selon l‘auteur, le fondeur ...!
-34-Emmanuel Boutillon
Vocabulaire (1)
a. PAL, GAL ( Programmable Array Logic, Généric Array Logic).
b. EPLD-CPLD (Erasable PLD ou Complex PLD)Les EPLD sont programmables électriquement et effaçables aux UV ;Les EEPLD sont effaçables électriquementPrincipe similaire aux PAL mais avec interconnexions réalisées en techno UVPROMOn trouve également les pLSI et ispLSI (in situ programmable)
c. FPGA (Field Programmable Gate Array)C ’est un ensemble de blocs logiques élémentaires que l ’utilisateur peut interconnecter pour réaliser les fonctions logiques de son choixLa densité des portes est importante et sans cesse en évolution
FPGA à SRAM ou LCA Logic Cell Array (1985 par Xilinx)FPGA à antifusibles (1990 Actel) non effaçables
-35-Emmanuel Boutillon
Vocabulaire (2)ASIC Application Specific Integrated Circuit - Circuit intégré conçu à la demandeCPLD Complex Programmable Logic Device - Réseau logique programmable complexeDRAM Dynamic Random Access Memory - Mémoire dynamique à accès aléatoireDSP Digital Signal Processor - Processeur orienté vers le traitement du signalEDIF Electronic Design Interchange FormatEEPLD Electrically Erasable Programmable Logic Device - PLD effaçable électriquementFPGA Field Programmable Gate Array - Réseau de portes programmablesGAL Generic Array Logic - PAL génériqueISP In-System (In Situ) Programmable - Composant programmable sur carteJEDEC Joint Electronic Device Engineering Council - Organisme de normalisationJTAG Joint Test Action Group - Bus de test des composantsLCA Logic Cell Array (Xilinx) - Réseau de cellules logiquesLUT Look-Up TableMAX Multiple Array Matrix - Megapals d'AlteraNOVRAM ou NVRAM Non Volatile Random Access Memory - RAM non volatileOTP One Time Programmable - Programmable une seule foisPAL Programmable Array Logic - Réseau logique programmablePGA Programmable Gate Array - Réseau de portes programmablePLA Programmable Logic Array - Réseau logique programmablePLD Programmable Logic Device - Dispositif logique programmable, EPLD : Erasable PLD : PLD EffacableROM Read Only Memory, Mémoire à lecture seule, PROM : Programmable ROM,. EPROM: Erasable : Effacable,
EEPROM : Electricaly EPROM : Mémoire à lecture seule, électriquement effaçable.RAM Random Access Memory - Mémoire à accès aléatoireSDF Standard Delay FileSOG Sea-of-Gates - Mer de portes : réseau actif logique prédiffuséSRAM Static Random Access Memory - Mémoire statique à accès aléatoireTTL Transistor Transistor Logic - Logique transistor-transistorVHDL VHSIC Hardware Description Language - Langage de description matérielle VHSIC
-36-Emmanuel Boutillon
Nomenclature des PALs
Convention de dénomination PAL II AB 00 (CE) C ZZ DEF PAL (nbr d ’entrées) (structure de sortie) (nbr sorties) (CMOS Eraseble) (conso.) (vitesse)
(boitier)
Types de sortiesType Structure de sortie
H combinatoire à logique positive
L combinatoire à logique négative
P combinatoire à polarité programmable
C combinatoire à logique complémentaireR logique à registre
RA logique asynchrone à registre
RP logique à registre programmable
V logique à macrocellules (versatiles)
-37-Emmanuel Boutillon
Principe des PAL
Possibilité de rebouclage
Vedette : PAL22V10CEProgrammable array logic22 I/O - 10 Versatile OutputsCMOS ERASABLE
Architecture générale des PALs
-38-Emmanuel Boutillon
PAL22V10CE : sortie Versatile
Choix de la polarité de la logiqueProgrammation entrée sortie
Rebouclage programmable.
-39-Emmanuel Boutillon
PA
L22
V10
-40-Emmanuel Boutillon
Architecture PAL hiérarchique (EPLD)
• Ensemble de blocs logiques LAB (Logic Array Block) composés de macrocellules• Une matrice d'interconnexion PIA (Programmable Interconnect Array)• Chaque E/S est liée à une macrocellule
PIA
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/S
E/S
E/S
E/S
matrice d'interconnexion
matrice d'interconnexion
. . .
. . .
LABLAB
LABLAB
LABLAB
LABLAB
LABLAB
macrocellulemacrocellule. .
.
macrocellulemacrocellulemacrocellulemacrocellule
-41-Emmanuel Boutillon
Routage d’un EPLD
routage systématisé modèle électrique et délais prédictibles placement non critique (temps de compilation faible
LABE/S LAB LAB LAB
-42-Emmanuel Boutillon
Exemple : EP610/1810 (1)
-43-Emmanuel Boutillon
Exemple (ALTERA) : P610/1810 (2)
-44-Emmanuel Boutillon
MAX9000 (1)
-45-Emmanuel Boutillon
PLD / CPLD / FPGA : L’offre ALTERA :
MAX9000 (2)
-46-Emmanuel Boutillon
MAX9000 (3)
-47-Emmanuel Boutillon
Architecture gate-array (FPGA)
• Ensemble de cellules logiques disposées en matrice et séparées par des canaux de routage organisés en Rangées/Colonnes. A chaque intersection se trouve un commutateur.• Le temps de propagation dépend du routage choisi pour réaliser l'interconnexion.
canaux de routage
cellule logique
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
E/SE/S
-48-Emmanuel Boutillon
rangée pour connexions locales =segments
colonne pourconnexions locales
commutateur
cellulelogiquecellulelogique
rangée pour connexions globales = lignes longues
exemple : XC4000 XILINXexemple : XC4000 XILINX
routage dans un FPGA
cellulelogiquecellulelogique
-49-Emmanuel Boutillon
A
B
A
B
grande adaptabilité du routage
routage dans un FPGA
-50-Emmanuel Boutillon
AAAroutage localdans le bloc
A
B
cellules dans le même bloc cellules dans blocs différents :1 ligne rangée et colonne occupée
1 commutation max => temps de propagation + déterministebesoin de + de lignes
routage dans un FPGA : FLEX ALTERA
B
-51-Emmanuel Boutillon
FLEX10K(1)
-52-Emmanuel Boutillon
FLEX10K(2)
-53-Emmanuel Boutillon
FLEX10K(3)
-54-Emmanuel Boutillon
FLEX10K(4)
-55-Emmanuel Boutillon
FLEX10K(5)
Mode normal
Mode arithmétique
-56-Emmanuel Boutillon
FLEX10K(6)
-57-Emmanuel Boutillon
performancesperformances
granularité fineflexibilité
granularité fineflexibilité
rapidité de compilation
rapidité de compilation
prédictibilité des temps de propagation
prédictibilité des temps de propagation grand nombre
de registresgrand nombre
de registres
type EPLD
typeFPGA
Intérêts des deux architectures
-58-Emmanuel Boutillon
EPLD FPGA
• machine à états complexe
• machine à états performante• intégration de circuits logiques et PALs• temps de calcul pin à pin prédictible.
• traitement en pipeline
• arithmétique• machine à état codée "hot line"• applications à haut niveau d'intégration• nombre registres et E/S
12
34
5
Applications EPLD/FPGA
-59-Emmanuel Boutillon
APEX20K(1)
-60-Emmanuel Boutillon
APEX20K(2)
-61-Emmanuel Boutillon
XILINX : Famille VIRTEX
CLB CLB
CLB
BRAM
BRAM
BRAM
BRAM
DLL
CL IOB
IOB
IOB
IOB
IOB
IOBIOB
IOB
DLL
DLL DLL
CLCL
CL
CLB
4th GenerationLogic/Memory/Routing Fabric
DLL Technology for High-Performance Clock & I/O
Select I/O Technology
Thermal ManagementSelectMAP
Advanced Configuration Technology
Ultra-High PerformanceSynchronous Dual-Port SRAM
-62-Emmanuel Boutillon
Comment et pourquoi faire de la logique programmable ?
Les technologies de personnalisation PAL, EPLD et FPGA Comment choisir un FPGA Situation présente et évolution.
PLAN
-63-Emmanuel Boutillon
Comment choisir un FPGA ?
Caractéristiques techniques du FPGA- Performances (complexité, vitesse, conso.)
- Nombre E/S et interface
- Tension d’alimentation
- Boitié
Qualité des softs associés au FPGA (CAO et IP)
Technique de programmation (Field/InSitu)
Technique de debug et de test
Critères économiques
- prix, disponibilité
- pérennité et flexibilité de la famille.
-64-Emmanuel Boutillon
PC et/ou station de travail
SAISIESAISIE SYNTHESESYNTHESE PLACEMENTROUTAGE
PLACEMENTROUTAGE
VERIFICATIONVERIFICATION
PROGRAMMATIONCONFIGURATION
PROGRAMMATIONCONFIGURATION
CAO pour conception de CLP
spécifications
Très similaires à celle des circuits VLSI :
TechnologieCLP
: : Synthèse et P/R spécifique :• nombre de cellules figé par circuit • 1 cellule = entre 1 et 20 portes 2 entrées
Synthèse et P/R spécifique :• nombre de cellules figé par circuit • 1 cellule = entre 1 et 20 portes 2 entrées
Autonomie :réalisation= téléchargement de la liste d’équipotentielles dans le circuit
Autonomie :réalisation= téléchargement de la liste d’équipotentielles dans le circuit
-65-Emmanuel Boutillon
partitionnementcircuits multiples floorplanning placement routage
"Netlist " après synthèse
versprogrammeur
CLP+
addercontrol
FIFO
timing
glue
placement routage
Chaque vendeur de CLP fournit son outil de P/R dédié
CLP
Bloc cellule équipotentielle
-66-Emmanuel Boutillon
Importance de la qualité des softs
Les FPGAs deviennent très complexes et très flexibles.=> L’optimisation du P/R devient très complexe=> Logiciels performants
Hors les logiciels de CAO pour les CLPs manquent de maturités : => très lents (24 h pour un placement routage) => peu stables (machine à rebouter) => peu efficaces et non déterministes :
a) temps de propagation trop longb) en échec (pas de solution trouvée). =>il faut alors guider « à la main » le placement
-67-Emmanuel Boutillon
Synthèse sur FPGA
Pour optimiser la synthèse, il faut la guider :
=> Directive global de compilation :Effort d ’optimisation, critères de synthèse (Vitesse vs Surface, Fan out)
=> Directive locale de compilation dans le texte-- « mot clef » « directive compilation »
=> Directive hiérarchique de compilation tel bloc, telle méthode (insertion libre de registres, méthode A).
=> Utilisation d ’opérateurs « optimisés par le fondeur »appels de macro-blocs additionneurs, multiplieurs,... paramétrables
PROBLEME : Le code VHDL devient spécifique au FPGA
-68-Emmanuel Boutillon
Placement sur FPGA
Problème NP-complet qui conditionne :- la possibilité de trouver une solution de routage- le chemin critique
Solution :- Indiquer « à la main » le placement des blocs dans le floor plan.- Placement routage incrémental
Assignation manuelle ou automatique des PAD E/S sur les entrées/sorties du composant VHDL.
-69-Emmanuel Boutillon
Intellectual Property (IP)
Les structures matérielles deviennent du consommable Achat ou location d ’un design paramétrable Licence ou royalties Développement et échange d’IP grâce aux langages standards
La qualité d ’une CLPs dépend aussi des IPs disponibles pour accélérer la conception (de même que la qualité d’un systèmed ’exploitation dépend des logiciels existant).
-70-Emmanuel Boutillon
IP MegaStore: Search Engine
www.altera.com/IPmegastore
-71-Emmanuel Boutillon
The Portfolio (XILINX, ALTERA)
Communications
ADPCM (u-law, a-law)
ATM Controller
Cell Delineation
CRC
Ethernet MAC (10/100/Gigabit)
HDLC Protocol Core
IMA Controller
Intermediate Data Rate Framer/DeFramer
Multi-Channel ATM TC
Packet Over SONET Controller
Rank Order Filter
Speedbridge
Telephony Tone Generator
Utopia Level II/III Master and Slave
Bus Interface
CAN Bus
IIC Slave
IIC Master
IEEE 1394
PCI Target
PCI Master/Target
PCI-X Master/Target
PowerPC Bus Arbiter
PowerPC Bus Master
PowerPC Bus Slave
USB Function Controller
USB Host Controller
Digital Signal Processing
Adaptive Filter
Binary Pattern Correlator
Biorthogonal Wavelet Filter
Complex Multiplier Mixer
CSC
Decimating Filter
Digital Modulator
Discrete Cosine Transform
Early/Late Gate Symbol
FFT
FIR Compiler
FIR Filter Library
Floating Point Adder/Divider
IIR Compiler
Image Processing Library
Integer Divider
NCO
Reed Solomon Compiler
Square Root Operator
Symbol Interleaver/Deinterleaver
Viterbi Decoder
Processor, Peripheral
2910
49410
6402 UART
6850 UART
16450/550 UARTs
8251 UART
8237 DMA Controller
8255 Peripheral Interface
8259 Interrupt Controller
8254 Timer/Counter
8051
8052
6502
Z80
Excalibur NIOS Processor
LX-4080R
Xtensa 32-bit Processor
SDRAM Controller
-72-Emmanuel Boutillon
EPLD
Technologie EEPROMTechnologie EEPROM
programmation sur site via des broches dédiées : ISP (In system Programmation)
connecteur de configurationbroches JTAG
programmateur
Programmation
-73-Emmanuel Boutillon
Technologie SRAMTechnologie SRAM
Configuration
mémoire de configuration
configuration autonome sur site : ICR (In Circuit Reconfiguration)
microcontrôleur
broches de configuration dédiéesou port JTAGCLPFPGA
-74-Emmanuel Boutillon
Debug : Analyseur embarqué
Internal Chip-level
Activity
ExternalBoard-level
Activity
Certains constructeurs proposent des IPs « analyseur logique »
Cela permet de sortir du FPGA des signaux internes pourle debug du système. + Simulation en temps réel (très important).- Synthèse et placement à chaque modification de l ’environnement de test.
-75-Emmanuel Boutillon
JTAG pour le test : boundary scan test
puce
TDI TD0
puce
TDI TD0
ligne à testercircuit Jtag 1 circuit Jtag 2
Le boudary scan test impose :• broches dédiées : TDI,TDO,TMS,TCLK,nTRST
• controleur JTAG Test Access Port avec registre d'instruction• registre à décalage sur les broches (Boundary scan register)
-76-Emmanuel Boutillon
Critère économique
Coût du composant : évidemment...
Coût du développement : dépend de la culture de l’entreprise=> Savoir faire=> Réutilisation de code déjà existant=> Existence ou non des logiciels de CAO(conditionne aussi le temps de développement)
Coût de maintenance :=> extension de la famille FPGA : nouvelle génération de produit
-77-Emmanuel Boutillon
Comment et pourquoi faire de la logique programmable ?
Les technologies de personnalisation PAL, EPLD et FPGA Comment choisir un FPGA Situation présente et évolution.
PLAN
-78-Emmanuel Boutillon
opérateurs +,- : chaîne de retenue, cellule utilisée en "full adder" * : chaîne de retenue pour arbre d’addition + LUT
ou RAM pour logique câblée non linéaires : LUT, mémoire
mémoire temporaires nombreux registres pour pipeline et retards blocs mémoires
Gestion de l'horloge PLL pour diminuer le "skew" et augmenter la fréquence
Intérêts des CLPs pour le traitement du signal
-79-Emmanuel Boutillon
coprocesseur"front end" :décodage canal
filtrage
coprocesseur"front end" :décodage canal
filtrage
processeur"back end"
données au débit élevé
canal 1
canal 2
canal 2
info au débit moins élevé
CLP processeur DSP, RISC,...
performancescalcul et mémoire distribués
centralisation du calcul et de la mémoirefonctions multiples et algorithme complexe
contrôle
interfaceasynchrone
gestion système
complémentarité CLP processeur
-80-Emmanuel Boutillon
Evolution (Roadmap)
Circuit Année N (T ou gates)
4004 1971 2250 T
Pentium I 1993 3100000 T
Pentium IV 2000 42000000 T
ALTERA 2000 1à 4.106 Portes
-81-Emmanuel Boutillon
L’offre ALTERA (début 2001)
ALTERAALTERA
DeviceDevice
APEXAPEXHigh Density, CAM,High Performance IOs FLEX, ACEXFLEX, ACEXDensity
Memory
ExcaliburExcaliburNIOS, ARM, MIPSEmbedded ProcessorPeripherals, More Memory
MAXMAXLogic
MAXMAXLogic
-82-Emmanuel Boutillon
PLD / CPLD / FPGA : L’offre ALTERA :
EXCALIBUR
Processeur embarqué dans une FPGA- Primitive VHDL synthétisé : NIOS- Processeur matériel ARM ou MIPS + FPGA
Performance(MIPs)
20
50
100
200 ARMCore
MIPSCore
0 Soft Core Hard Cores
CoreCore
TMTM
-83-Emmanuel Boutillon
Configurable Soft Core Optimized for ALTERA’s PLD
Architecture 16 or 32 bits Data Path 16 bits instruction set RISC base, 4-stage pipeline 50 MIPS performance
1100 LE for 16-bit mode 1700 LE for 32-bit mode
12% of EP20K200E
NIOS Embedded Processor
Timer
IRQ
PB
M CPU
UART
APEX EP20K200E
Your DesignHere
FLASH
SRAM
SerialPort
-84-Emmanuel Boutillon
Nios RISC Processor Block Diagram
Standard RISC Components
Fully-Synchronous Interface
-85-Emmanuel Boutillon
Nios Compile-Time Parameters
Data Path (32 or 16) Address Bus Width (10 to 33-bits) Register File Size (128, 256 or 512) Reset Address Exception Vector Table Address Barrel-Shifter Speed (1, 3, 7, 15 or 31
Bits/Clock) Hardware-Assisted Multiply (MSTEP)
-86-Emmanuel Boutillon
Nios Peripheral List & PBM
Nios Core
Address Decode
InterruptControl
Wait StateGeneration
Data InMultiplexer
Bus Sizing(Optional)
PeripheralsPeripheral Bus Module
UART
Timer
PIO
Int.& Ext.Memory
User-definedPeripheral
User-definedPeripheral
Processor Core
Port Interface
-87-Emmanuel Boutillon
Nios Flexibility & Scalability
APEX EP20K100E
APEX EP20K200E
APEX EP20K1000E
High-PerformanceEmbedded Processor Custom
DSPMulti-Processor
Micro-Coded System75K Gates Available
150K Gates Available
500K GatesAvailable
FFTFFT
ES
BE
SB
ES
BE
SB
ES
BE
SB
ES
BE
SB
ES
BE
SB
ES
BE
SB
ES
BE
SB
ES
BE
SB
ES
BE
SB
ES
BE
SB
ES
BE
SB
ES
BE
SB
Before Nios 68XXX = 8 MIPS ARM 7 = 53 MIPS Pentium III = 500 MIPS
After Nios 1 Nios = 44 MIPS 40 Nios = 1760 MIPS
-88-Emmanuel Boutillon
ARM/MIPS : Logical Structure
EBI
SRAM(Single Port)
SDRAMController
DPRAM
SDRAM Interface
FlashInterface B
rid
ge
Master Port
Slave Port
Dual-Port RAM Interface
ARM- or MIPS-Based
ProcessorPL
Ls
PLD
-89-Emmanuel Boutillon
EPXA10
SRAM
DPRAM
EPXA4
SRAM
DPRAM
EPXA1
SRAM
DPRAM
Embedded Processor PLD
EmbeddedProcessor
Stripe
PLD
JTAG
TraceModule
ARM922T
ExternalMemory
Interfaces
InterruptController
PLL
Timer
UART
WatchdogTimer
-90-Emmanuel Boutillon
ARM/MIPS : Ressources
-91-Emmanuel Boutillon
ARM/MIPS : Design WorkFLow
Notion deCo-Design
-92-Emmanuel Boutillon
Les acteurs du marché des PLD/FPGA
(en Million$) Ventes 1999 Ventes 2000• ALTERA 837 1377• XILINX 899 1558
• LATTICE 410 568 • ACTEL 172 226• LUCENT • ATMEL• CYPRESS• ...
Permet aux PME d’accéder aux circuits intégrés complexes
-93-Emmanuel Boutillon
Les acteurs du marché des ASIC
Prédiffusés(Million$) 1999
• FUJITSU 494• NEC 370• TOSHIBA 350 • HITACHI 300• LSI Logic 200
Précaractérisés(Million$) 1999
• IBM micro-e 2200• AGERE (LUCENT) 1900• LSI Logic 1450• NEC 1050 • FUJITSU 820
-94-Emmanuel Boutillon
Evolution des marchés
Répartition 99 (en $) des circuits CMOSet prévisions
99 99 00 01 02 03• PLD 10 % 0,5 0,6 0,7 0,9 1• Prédiffusés 12 % 0,4 0,3 0,3 0,3 0,2• Précaractérisés 44 % 2,1 2,7 3,4 4,2 4,9• Full Custom 4 % 0,03 0,02 0,01 0,01 0• Glue 9 % • Autres 21 %
Pour un marché de 25,8 Md$ en 99Forte croissance des PLD/FPGA et PrécaractérisésBaisse (et mort) des prédiffusés et des full custom
-95-Emmanuel Boutillon
Le futur (1)
FPGA avec Processeur … ou Processeur avec zone de FPGA ?
FPGA reconfigurable dynamiquement :- de façon déterministe (filtre A puis B sur image).- de façon dynamique en fonction des données…
=> Problèmes de recherche qui débutent.- software radio : la configuration est télé-chargée , - partitionnement logiciel-matériel- prouver que cela marche...
-96-Emmanuel Boutillon
Le futur (2)
Circuit programmable Analogiques et Mixtes : En cours(www.anadigm.com)