Emmanuel Boutillon - Lab

Download Report

Transcript Emmanuel Boutillon - Lab

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
-1-
Emmanuel Boutillon
PLAN
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.

-2-
Emmanuel Boutillon
Position du problème
Logiciel
Matériel
circuits personnalisés
ASICs
circuits existants
circuits
logiques
programmables
microprocesseurs
processeurs DSPs
mémoires
périphériques
FPGA
EPLD
-3-
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
-4-
Emmanuel Boutillon
Coût CLP/ASIC
NRE
Coût à la pièce
le seuil augmente si le nombre de portes baisse
seuil mini = 1000 pièces
ASIC
CLP
seuil
Nombre de pièces
-5-
Emmanuel Boutillon
Temps de conception
ASIC
spec
Code+synth
Placement
Routage
spec
Code+synth
P
R
spec
Code
FPGA
fab
Time to market
mP
+
temps
logiciel
-6-
Emmanuel Boutillon
Les performances
f
fréquence
de traitement
circuit personnalisé : traitement parallèle
80
70
60
F clock
50
40
processeur : traitement séquentiel
30
20
f=
10
1 2 3 4
8
12
16
20
24
28
32
36
fclock
nb op/cycle
40
44
48
52
Nb opérations/cycle
-7-
Emmanuel Boutillon
Démocratisation de la conception
T0
Temps
Tfin
log10(complexité)
Produit
Idée
3
Spécifications
4
RTL
5
Porte
7
Affaire de
Spécialistes avec
un équipement
lourd
Transistor
Masque
8
10
Fonderie
-8-
Emmanuel Boutillon
Intérêts propres aux CLPs

prototypage



conception rapide de démonstrateurs
autonomie (pas de fondeur)
Reprogrammation

maintenance in situ
-9-
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 notion
de « programmabilité ».
-10-
Emmanuel Boutillon
Fonction logique simple :
Réseau logique
Toute fonction logique booléenne peut s'exprimer sous forme canonique
exemple :
S = A2A1A0 + A2A1A0 + A2A1A0 + A2A1A0
minterme ou terme produit
Ai
Matrice ET
produits des entrées
Matrice OU
somme des produits
Sj
= Réseau logique programmable
-11-
Emmanuel Boutillon
Mémoire
fonction logique 2 entrées :
mémoire 4 mots de 1 bit :
f(A1,A0 ) = f(0,0)A1A0 + f(0,1)A1A0 + f(1,0)A1A0 +f(1,1)A1A0
d=
d0A1A0 +
d1A1A0 +
d2A1A0 + d3A1A0
A0
A1
adresse=entrées
F(A1,A0)=d= A1A0 + A1A0
d0=0
d2=1
d1=1
d3=0
liaison non programmable
liaison programmable
-12-
Emmanuel Boutillon
Mémoire
mémoire 16 mots de 2 bits => 2 fonctions logiques de 4 entrées
A0
A1
A2
A3
matrice
ET
figée
adresse=entrées
matrice
S0
OU
S1
programmable
liaison non programmable
liaison programmable
-13-
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
001
010
011
100
101
110
111
0
1
0
1
0
1
0
1
F(a,b,c)
Adresse
(a,b,c)
SRAM
=> Mode de lecture différent du résultat
-14-
Emmanuel Boutillon
PAL
Programmable Array Logic
A
B
C
D
matrice
ET
programmable
S0
S1
S2
S3
matrice
OU
figée
liaison non programmable
liaison programmable
somme de produits = Macrocellule
PLD : 4 fonctions de 12 mintermes (max) de 3 variables
Au déparet #70-85 : programmation « à la main » (fichier de fusibles)
-15-
Emmanuel Boutillon
cellule logique à MUX

utilisée pour la technologie ANTIFUSIBLE
équivaut à une LUT cablée
e0
e1
e2
e3
mux
sortie
a b
sortie = abe0 ou abe1 ou abe2 ou abe3
intérêt : surface réduite
cellule grain fin
-16-
Emmanuel Boutillon
comparatif des réseaux
programmables
type
structure
avantage
ET
MEMOIRE
OU
PAL
ET
toutes les fonctions
=> 22n possibles
• grand nombre d'entrées
• économique
inconvénient
•Mémoire conséquente si
nombreuses entrées
Nombre de mintermes limité
OU
MUX
Taille très faible
-17-
Limité à peu d ’entrées
Emmanuel Boutillon
Programmation des
interconnections
Par connexion ou non de deux fils
F1
F1
F2
F2
Par l’utilisation de multiplexeur
F1’
!
F1
Le nombre de connexions
réalisables est limité à ce qui
existe...
F2
-18-
Emmanuel Boutillon
Programmation des registres et E/S
D
Registre Q
clk
rst
Possibilité de programmer
le PAD en mode entrée ou
sortie.
Possibilité d ’utiliser
ou non le registre
-19-
Emmanuel Boutillon
Système d’entrée sortie complet
OE
OUT
IN
DFF
broche
DFF
la broche peut être :
entrée simple
sortie simple
bidir
entrée avec DFF (structure FPGA)
sortie avec DFF (structure FPGA)
inutilisée pour faciliter le routage (structure PAL)
avec logique JTAG
-20-
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
PLL
CLK_OUT
 compensation le "skew" d'horloge
 multiplication de la fréquence si diviseur dans la boucle de réaction
-21-
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és
différentes :
=> Zone de mémoire RAM
=> Zone de CLP
=> Zone spécialisée
-22-
Emmanuel Boutillon
Principes du CLP
programmation
ou configuration
Entrées / Sorties
Plan de programmation :
interconnexion
Entrées / Sorties
Entrées / Sorties
Plan actif : cellules logiques
Entrées/Sorties
technologies
de programmation :
- EEPROM
- SRAM
- antifusible
-23-
architectures du plan actif :
- PAL hiérarchique (EPLD)
- gate-array (FPGA)
- mixtes (CPLD ALTERAs)
Emmanuel Boutillon
PLAN
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.

-24-
Emmanuel Boutillon
Les composants logiques programmables :
Les technologies de personnalisation
Le circuit est personnalisé par création/destruction de
connections sur la structure prédéfinie.
 Fusibles
 Anti-fusibles
 UV
PROM (obsolète) EEPROM
 SRAM
 Métalisation
 Comparaison des différents techniques.
-25-
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
-26-
Emmanuel Boutillon
Les composants logiques programmables : Technologie de personnalisation :
Antifusibles
-27-
Emmanuel Boutillon
Les composants logiques programmables : Technologie de personnalisation :
UV-EPROM / EEPROM
Non-volatile
SAMOS : -28Stacked MOS
Emmanuel Boutillon
Les composants logiques programmables : Technologie de personnalisation :
SRAM
Besoin d’une mémoire externe
d’initialisation :
Processeur associé ou
EEPROM série
-29-
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
Les ressources peuvent être uniques
(par exemple des NAND) ou plus
diversifiées
Le routage se fait «dessus» : sea of gate
ou «à coté» : row-based
Les outils de CAO vont permettre
de dériver le dessin du ou des
masques de connexions en tenant
compte du schéma et du circuit choisi
Exemple de métalisation pour obtenir un registre.
-30-
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)
Type
d'interconnexion
EPROM
Antifusible SRAM
Rapidité
-
+
-
Densité
-
+
--
Facilité
+
-
+
Reprogrammabilité
+
non
++
-31-
Emmanuel Boutillon
PLAN
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.

-32-
Emmanuel Boutillon
Taxinomie des CLPs (PLD)
Circuits logiques programmable
(Programmable Logic Device)
PLD
PAL
EPLD-CPLD
FPGA
GAL
SRAM
UVPROM
!
EECMOS
antifuse
isp
Les noms peuvent changer selon
l‘auteur, le fondeur ...
-33-
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 électriquement
Principe similaire aux PAL mais avec interconnexions réalisées en techno UVPROM
On 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 choix
La 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
-34-
Emmanuel Boutillon
Vocabulaire (2)
ASIC
Application Specific Integrated Circuit - Circuit intégré conçu à la demande
CPLD
Complex Programmable Logic Device - Réseau logique programmable complexe
DRAM
Dynamic Random Access Memory - Mémoire dynamique à accès aléatoire
DSP
Digital Signal Processor - Processeur orienté vers le traitement du signal
EDIF
Electronic Design Interchange Format
EEPLD
Electrically Erasable Programmable Logic Device - PLD effaçable électriquement
FPGA
Field Programmable Gate Array - Réseau de portes programmables
GAL
Generic Array Logic - PAL générique
ISP
In-System (In Situ) Programmable - Composant programmable sur carte
JEDEC
Joint Electronic Device Engineering Council - Organisme de normalisation
JTAG
Joint Test Action Group - Bus de test des composants
LCA
Logic Cell Array (Xilinx) - Réseau de cellules logiques
LUT
Look-Up Table
MAX
Multiple Array Matrix - Megapals d'Altera
NOVRAM ou NVRAM Non Volatile Random Access Memory - RAM non volatile
OTP
One Time Programmable - Programmable une seule fois
PAL
Programmable Array Logic - Réseau logique programmable
PGA
Programmable Gate Array - Réseau de portes programmable
PLA
Programmable Logic Array - Réseau logique programmable
PLD
Programmable Logic Device - Dispositif logique programmable, EPLD : Erasable PLD : PLD Effacable
ROM
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éatoire
SDF
Standard Delay File
SOG
Sea-of-Gates - Mer de portes : réseau actif logique prédiffusé
SRAM
Static Random Access Memory - Mémoire statique à accès aléatoire
TTL
Transistor Transistor Logic - Logique transistor-transistor
VHDL
VHSIC Hardware Description Language
-35-- Langage de description matérielle VHSIC
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 sorties
Type
Structure de sortie
H
combinatoire à logique positive
L
combinatoire à logique négative
P
combinatoire à polarité programmable
C
R
combinatoire à logique complémentaire
logique à registre
RA
logique asynchrone à registre
RP
logique à registre programmable
V
logique à macrocellules (versatiles)
-36-
Emmanuel Boutillon
Principe
des
PAL
Architecture générale des PALs
Possibilité de rebouclage
Vedette : PAL22V10CE
-37-
Programmable array logic
22 I/O - 10 Versatile Outputs
CMOS ERASABLE
Emmanuel Boutillon
PAL22V10CE : sortie Versatile
Choix de la polarité de la logique
Programmation entrée sortie
Rebouclage programmable.
-38-
Emmanuel Boutillon
PAL22V10
-39-
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
macrocellule
macrocellule
macrocellule
E/S
LAB
...
E/S
E/S
LAB
...
LAB
E/S
E/S
E/S
...
E/S
LAB
matrice d'interconnexion
E/S
E/S
LAB
E/S
E/S
E/S
E/S
E/S
-40-
Emmanuel Boutillon
Routage d’un EPLD
E/S
LAB
LAB
LAB
LAB
routage systématisé
 modèle électrique et délais prédictibles
 placement non critique (temps de compilation faible

-41-
Emmanuel Boutillon
Exemple : EP610/1810 (1)
-42-
Emmanuel Boutillon
Exemple (ALTERA) : P610/1810 (2)
-43-
Emmanuel Boutillon
MAX9000 (1)
-44-
Emmanuel Boutillon
PLD / CPLD / FPGA : L’offre ALTERA :
MAX9000 (2)
-45-
Emmanuel Boutillon
MAX9000 (3)
-46-
Emmanuel Boutillon
• 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.
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
Architecture gate-array (FPGA)
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
canaux de routage
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
cellule logique
-47-
Emmanuel Boutillon
routage dans un FPGA
commutateur
rangée pour connexions globales
= lignes longues
cellule
logique
cellule
logique
rangée pour connexions locales
=segments
colonne pour
connexions locales
exemple : XC4000 XILINX
-48-
Emmanuel Boutillon
routage dans un FPGA
A
A
B
B
grande adaptabilité du routage
-49-
Emmanuel Boutillon
routage dans un FPGA : FLEX
ALTERA
routage local
dans le bloc
AA
A A
B
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éterministe
besoin de + de lignes
-50-
Emmanuel Boutillon
FLEX10K(1)
-51-
Emmanuel Boutillon
FLEX10K(2)
-52-
Emmanuel Boutillon
FLEX10K(3)
-53-
Emmanuel Boutillon
FLEX10K(4)
-54-
Emmanuel Boutillon
FLEX10K(5)
Mode normal
Mode arithmétique
-55-
Emmanuel Boutillon
FLEX10K(6)
-56-
Emmanuel Boutillon
Intérêts des deux architectures
type
FPGA
type
EPLD
performances
rapidité
de compilation
prédictibilité des
temps de propagation
granularité fine
flexibilité
grand nombre
de registres
-57-
Emmanuel Boutillon
Applications EPLD/FPGA
EPLD
FPGA
• traitement en pipeline
• machine à états complexe
1
2
5
4
3
• arithmétique
• machine à état codée "hot line"
• applications à haut niveau
d'intégration
• nombre registres et E/S
• machine à états
performante
• intégration de circuits
logiques et PALs
• temps de calcul pin à pin
prédictible.
-58-
Emmanuel Boutillon
APEX20K(1)
-59-
Emmanuel Boutillon
APEX20K(2)
-60-
Emmanuel Boutillon
XILINX : Famille VIRTEX
DLL Technology for
High-Performance Clock & I/O
4th Generation
Logic/Memory/Routing Fabric
Select I/O Technology
CL
DLL
I
O
B
B
R
A
M
I
O
B
B
R
A
M
CL
DLL
IOB
DLL
CL
CLB
B
R
A
M
I
O
B
CLB
CLB
B
R
A
M
I
O
B
IOB
IOB
DLL
CL
IOB
CLB
Ultra-High Performance
Synchronous Dual-Port SRAM
SelectMAP
Advanced Configuration Technology
Thermal Management
-61-
Emmanuel Boutillon
PLAN
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.

-62-
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.
-63-
Emmanuel Boutillon
CAO pour conception de CLP
Très similaires à celle des circuits VLSI :
D:
Synthèse et P/R spécifique :
spécifications
• nombre de cellules figé par circuit
• 1 cellule = entre 1 et 20 portes 2 entrées
Autonomie :
VERIFICATION
SAISIE
SYNTHESE
PLACEMENT
ROUTAGE
réalisation= téléchargement de la liste
d’équipotentielles dans le circuit
PROGRAMMATION
CONFIGURATION
Technologie
CLP
PC et/ou station de travail
-64-
Emmanuel Boutillon
placement routage
Chaque vendeur de CLP fournit son outil de P/R dédié
"Netlist " après synthèse
partitionnement
circuits multiples
vers
programmeur
floorplanning
adder
placement
routage
control
CLP
glue
FIFO
timing
+
CLP
Bloc
cellule
-65-
équipotentielle
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 long
b) en échec (pas de solution trouvée).
=>il faut alors guider « à la main » le placement
-66-
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
-67-
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.
-68-
Emmanuel Boutillon
Intellectual Property (IP)
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ème
d ’exploitation dépend des logiciels existant).




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
-69-
Emmanuel Boutillon
IP MegaStore: Search Engine
www.altera.com/IPmegastore
-70-
Emmanuel Boutillon
The Portfolio (XILINX, ALTERA)
Communications
Bus Interface
Digital Signal Processing
Processor, Peripheral
ADPCM (u-law, a-law)
CAN Bus
Adaptive Filter
2910
ATM Controller
IIC Slave
Binary Pattern Correlator
49410
Cell Delineation
IIC Master
Biorthogonal Wavelet Filter
6402 UART
CRC
IEEE 1394
Complex Multiplier Mixer
6850 UART
Ethernet MAC
(10/100/Gigabit)
PCI Target
CSC
16450/550 UARTs
PCI Master/Target
Decimating Filter
8251 UART
PCI-X Master/Target
Digital Modulator
8237 DMA Controller
PowerPC Bus Arbiter
Discrete Cosine Transform
8255 Peripheral Interface
PowerPC Bus Master
Early/Late Gate Symbol
8259 Interrupt Controller
Multi-Channel ATM TC
PowerPC Bus Slave
FFT
8254 Timer/Counter
Packet Over SONET
Controller
USB Function Controller
FIR Compiler
8051
USB Host Controller
FIR Filter Library
8052
Rank Order Filter
Floating Point Adder/Divider
6502
Speedbridge
IIR Compiler
Z80
Telephony Tone Generator
Image Processing Library
Excalibur NIOS Processor
Utopia Level II/III Master
and Slave
Integer Divider
LX-4080R
NCO
Xtensa 32-bit Processor
Reed Solomon Compiler
SDRAM Controller
HDLC Protocol Core
IMA Controller
Intermediate Data Rate
Framer/DeFramer
Square Root Operator
-71-
Symbol Interleaver/Deinterleaver
Viterbi Decoder
Emmanuel Boutillon
Programmation
Technologie EEPROM
connecteur de
configuration
broches JTAG
EPLD
programmateur
programmation sur site via des broches dédiées : ISP (In system Programmation)
-72-
Emmanuel Boutillon
Configuration
Technologie SRAM
mémoire de configuration
microcontrôleur
FPGA
CLP
broches de configuration
dédiées
ou port JTAG
configuration autonome sur site : ICR (In Circuit Reconfiguration)
-73-
Emmanuel Boutillon
Debug : Analyseur embarqué
Certains constructeurs proposent des IPs « analyseur
logique »
External
Board-level
Activity
Internal
Chip-level
Activity
Cela permet de sortir du FPGA des signaux internes pour
le debug du système.
+ Simulation en temps réel (très important).
- Synthèse et placement à chaque modification
de l ’environnement de test.
-74-
Emmanuel Boutillon
JTAG pour le test : boundary scan test
TDI
TD0
TDI
puce
circuit Jtag 1
TD0
puce
ligne à tester
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)
-75-
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
-76-
Emmanuel Boutillon
PLAN
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.

-77-
Emmanuel Boutillon
Intérêts des CLPs pour le traitement
du signal

opérateurs




mémoire temporaires



+,- :
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
nombreux registres pour pipeline et retards
blocs mémoires
Gestion de l'horloge

PLL pour diminuer le "skew" et augmenter la fréquence
-78-
Emmanuel Boutillon
complémentarité CLP
processeur
info au débit moins élevé
données au débit élevé
canal 1
canal 2
coprocesseur
"front end" :
canal 2
décodage canal
filtrage
processeur
"back end"
contrôle
performances
calcul et mémoire distribués
interface
asynchrone
gestion système
centralisation du calcul et de la mémoire
fonctions multiples et algorithme complexe
processeur DSP, RISC,...
CLP
-79-
Emmanuel Boutillon
Evolution (Roadmap)
Circuit
Année
N (T ou gates)
4004
Pentium I
Pentium IV
ALTERA
1971
1993
2000
2000
2250 T
3100000 T
42000000 T
1à 4.106 Portes
-80-
Emmanuel Boutillon
L’offre ALTERA (début 2001)
-81-
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
200
ARM
Core
MIPS
Core
100
Performance
(MIPs)
50
TM
20
0
Core
Soft Core
-82-
Hard Cores
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
SRAM
PBM

FLASH
CPU
IRQ
NIOS Embedded Processor
Timer
Serial
Port
UART
1100 LE for 16-bit mode
1700 LE for 32-bit mode
 12% of EP20K200E
Your Design
Here
APEX EP20K200E
-83-
Emmanuel Boutillon
Nios RISC Processor Block
Diagram


Standard RISC
Components
FullySynchronous
Interface
-84-
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)

-85-
Emmanuel Boutillon
Nios Peripheral List & PBM
Processor Core
Peripheral Bus Module
Address
Decode
Nios Core
Port
Interface
Peripherals
UART
Timer
Interrupt
Control
Wait State
Generation
Data In
Multiplexer
Bus Sizing
(Optional)
-86-
PIO
Int.& Ext.
Memory
User-defined
Peripheral
User-defined
Peripheral
Emmanuel Boutillon
Nios Flexibility & Scalability
Custom
DSP

Before Nios
 68XXX
= 8 MIPS
 ARM 7
= 53 MIPS
 Pentium III = 500 MIPS
After Nios
 1 Nios
 40 Nios
= 44 MIPS
= 1760 MIPS
500K Gates
Available
-87-
ESB
ESB
ESB
ESB
ESB
ESB
ESB
ESB
ESB
APEX EP20K200E
ESB
150K Gates
Available
APEX EP20K100E
ESB
FFT
75K Gates
Available

Multi-Processor
Micro-Coded System
ESB
High-Performance
Embedded Processor
APEX
EP20K1000E
Emmanuel
Boutillon
ARM/MIPS : Logical Structure
Dual-Port
RAM
Interface
DPRAM
SRAM
(Single Port)
SDRAM
Controller
Flash
Interface
EBI
PLLs
SDRAM
Interface
Bridge
PLD
Master Port
Slave Port
ARM- or MIPSBased
Processor
-88-
Emmanuel Boutillon
Embedded Processor PLD
PLL UART
Embedded
Processor
Stripe
JTAG
Timer
Watchdog
Timer
External
Memory
Interfaces
Trace
Module
Interrupt
Controller
ARM922T
SRAM
SRAM
SRAM
DPRAM DPRAM
DPRAM
EPXA1
PLD
EPXA4
-89-
EPXA10
Emmanuel Boutillon
ARM/MIPS : Ressources
-90-
Emmanuel Boutillon
ARM/MIPS : Design WorkFLow
Notion de
Co-Design
-91-
Emmanuel Boutillon
Les acteurs du marché des PLD/FPGA
(en Million$)
• ALTERA
• XILINX
• LATTICE
• ACTEL
• LUCENT
• ATMEL
• CYPRESS
• ...
Ventes 1999
837
899
410
172
Ventes 2000
1377
1558
568
226
Permet aux PME d’accéder aux circuits
intégrés complexes
-92-
Emmanuel Boutillon
Les acteurs du marché des ASIC
Prédiffusés
(Million$)
1999
• FUJITSU
• NEC
• TOSHIBA
• HITACHI
• LSI Logic
Précaractérisés
(Million$)
1999
• IBM micro-e
• AGERE (LUCENT)
• LSI Logic
• NEC
• FUJITSU
494
370
350
300
200
-93-
2200
1900
1450
1050
820
Emmanuel Boutillon
Evolution des marchés
Répartition 99 (en $) des circuits CMOS
et prévisions
99
99
00
01
02
• PLD
10 %
0,5
0,6
0,7
0,9
• Prédiffusés
12 %
0,4
0,3
0,3
0,3
• Précaractérisés 44 %
2,1
2,7
3,4
4,2
• Full Custom
4%
0,03 0,02 0,01 0,01
• Glue
9%
• Autres
21 %
Pour un marché de 25,8 Md$ en 99
Forte croissance des PLD/FPGA et Précaractérisés
Baisse (et mort) des prédiffusés et des full custom
-94-
Emmanuel Boutillon
03
1
0,2
4,9
0
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...
-95-
Emmanuel Boutillon
Le futur (2)
Circuit programmable Analogiques et Mixtes : En cours
(www.anadigm.com)
-96-
Emmanuel Boutillon