Академический Документы
Профессиональный Документы
Культура Документы
Emmanuel Boutillon
-1-
Emmanuel Boutillon
PLAN
-2-
Emmanuel Boutillon
Position du problème
Matériel Logiciel
-4-
Emmanuel Boutillon
Coût CLP/ASIC
NRE
Coût à la pièce
seuil
Nombre de pièces
-5-
Emmanuel Boutillon
Temps de conception
ASIC Placement
spec Code+synth Routage
fab
FPGA
P
spec Code+synth Time to market
R
mP
+ spec Code
logiciel temps
-6-
Emmanuel Boutillon
Les performances
f
fréquence
de traitement
80
circuit personnalisé : traitement parallèle
70
60
F clock 50
40
1 2 3 4 8 12 16 20 24 28 32 36 40 44 48 52
Nb opérations/cycle
-7-
Emmanuel Boutillon
Démocratisation de la conception
T0 Temps Tfin log10(complexité)
Idée Produit 3
Spécifications 4
RTL 5
Porte 7
Affaire de
Transistor Spécialistes avec 8
un équipement
Masque lourd 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 ?
-10-
Emmanuel Boutillon
Fonction logique simple :
Réseau logique
Toute fonction logique booléenne peut s'exprimer sous forme canonique
Matrice OU
Sj
somme des produits
A0
A1
adresse=entrées
-12-
Emmanuel Boutillon
Mémoire
A0
A1
matrice
A2
A3 ET
adresse=entrées figée
matrice S0
OU S1
programmable
liaison non programmable
liaison programmable
-13-
Emmanuel Boutillon
LOOK UP TABLE (LUT)
000 0
001 1
010 0
F(a,b,c)
011 1 SRAM
100 0 Adresse
101 1 (a,b,c)
110 0
111 1
=> Mode de lecture différent du résultat
-14-
Emmanuel Boutillon
PAL
Programmable Array Logic
A
B
matrice
C
D ET
programmable
S0
matrice
S1
OU S2
figée S3
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
e0 mux
e1
sortie
e2
e3
sortie = abe0 ou abe1 ou abe2 ou abe3
a b
intérêt : surface réduite
cellule grain fin
-16-
Emmanuel Boutillon
comparatif des réseaux
programmables
type structure avantage inconvénient
ET •Mémoire conséquente si
MEMOIRE toutes les fonctions nombreuses entrées
OU => 22n possibles
-17-
Emmanuel Boutillon
Programmation des
interconnections
Par connexion ou non de deux fils
F1 F1
F2 F2
D
Registre Q
clk
rst
Possibilité de programmer
Possibilité d ’utiliser le PAD en mode entrée ou
ou non le registre sortie.
-19-
Emmanuel Boutillon
Système d’entrée sortie complet
OE
DFF
OUT broche
DFF
IN
entrée simple
sortie simple
bidir
la broche peut être : 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
CLK
PLL
CLK_OUT
-21-
Emmanuel Boutillon
Gestion de la complexité
Entrées/Sorties
technologies architectures du plan actif :
de programmation : - PAL hiérarchique (EPLD)
- EEPROM - gate-array (FPGA)
- SRAM - mixtes (CPLD ALTERAs)
- antifusible
-23-
Emmanuel Boutillon
PLAN
-24-
Emmanuel Boutillon
Les composants logiques programmables :
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
Intact «Programmé»
Problème de l’électro-migration
-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 : -28-
Stacked MOS
Emmanuel Boutillon
Les composants logiques programmables : Technologie de personnalisation :
SRAM
-29-
Emmanuel Boutillon
Prédiffusés (Gate Array)
Circuits génériques au «catalogue»
(ressources sans les interconnexions finales)
Rapidité - + -
Densité - + --
Facilité + - +
Reprogrammabilité + non ++
-31-
Emmanuel Boutillon
PLAN
-32-
Emmanuel Boutillon
Taxinomie des CLPs (PLD)
-33-
Emmanuel Boutillon
Vocabulaire (1)
-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
Types de sorties
Type Structure de sortie
H combinatoire à logique positive
L combinatoire à logique négative
P combinatoire à polarité programmable
C combinatoire à logique complémentaire
R 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
Programmable array logic
22 I/O - 10 Versatile Outputs
CMOS ERASABLE
-37-
Emmanuel Boutillon
PAL22V10CE : sortie Versatile
-39-
Emmanuel Boutillon
Architecture PAL hiérarchique (EPLD)
matrice d'interconnexion
E/S E/S
macrocellule
...
E/S E/S
LAB LAB
E/S E/S
...
...
E/S E/S
LAB LAB
E/S E/S
E/S
E/S
-40-
Emmanuel Boutillon
Routage d’un EPLD
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
Architecture gate-array (FPGA)
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
des canaux de routage organisés en
E/S
E/S Rangées/Colonnes. A chaque
E/S
E/S intersection se trouve un
E/S
E/S
commutateur.
E/S
E/S
• Le temps de propagation dépend
E/S
du routage choisi pour réaliser
E/S
E/S
l'interconnexion.
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 cellule
logique logique
colonne pour
exemple : XC4000 XILINX connexions locales
-48-
Emmanuel Boutillon
routage dans un FPGA
A A
B B
-49-
Emmanuel Boutillon
routage dans un FPGA : FLEX
ALTERA
routage local AA A A
dans le bloc
B
-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 type
EPLD FPGA
performances
prédictibilité des
grand nombre
temps de propagation
de registres
-57-
Emmanuel Boutillon
Applications EPLD/FPGA
EPLD FPGA
• machine à états complexe • traitement en pipeline
1
2
5
3
4 • arithmétique
• machine à états • machine à état codée "hot line"
performante • applications à haut niveau
• intégration de circuits d'intégration
logiques et PALs • nombre registres et E/S
• temps de calcul pin à pin
prédictible.
-58-
Emmanuel Boutillon
APEX20K(1)
-59-
Emmanuel Boutillon
APEX20K(2)
-60-
Emmanuel Boutillon
XILINX : Famille VIRTEX
4th Generation DLL Technology for
Logic/Memory/Routing Fabric High-Performance Clock & I/O
B B
I I
R R Ultra-High Performance
Select I/O Technology O CLB CLB O
A A Synchronous Dual-Port SRAM
B B
M M
B B
I I
R R
O CLB CLB O
A A
B B
M M
SelectMAP
Thermal Management Advanced Configuration Technology
-61-
Emmanuel Boutillon
PLAN
-62-
Emmanuel Boutillon
Comment choisir un FPGA ?
-63-
Emmanuel Boutillon
CAO pour conception de CLP
Très similaires à celle des circuits VLSI :
D: Synthèse et P/R spécifique :
• nombre de cellules figé par circuit
spécifications • 1 cellule = entre 1 et 20 portes 2 entrées
Autonomie :
réalisation= téléchargement de la liste
VERIFICATION d’équipotentielles dans le circuit
PLACEMENT PROGRAMMATION
SAISIE SYNTHESE CONFIGURATION
ROUTAGE
Technologie
CLP
-64-
Emmanuel Boutillon
placement routage
Chaque vendeur de CLP fournit son outil de P/R dédié
"Netlist " après synthèse
vers
programmeur
partitionnement
circuits multiples floorplanning placement routage
control
adder
timing
+ CLP
-65-
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
-66-
Emmanuel Boutillon
Synthèse sur FPGA
Pour optimiser la synthèse, il faut la guider :
Solution :
- Indiquer « à la main » le placement des blocs dans le
floor plan.
- Placement routage incrémental
-68-
Emmanuel Boutillon
Intellectual Property (IP)
-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 PCI Target CSC 16450/550 UARTs
(10/100/Gigabit)
PCI Master/Target Decimating Filter 8251 UART
HDLC Protocol Core
PCI-X Master/Target Digital Modulator 8237 DMA Controller
IMA Controller
PowerPC Bus Arbiter Discrete Cosine Transform 8255 Peripheral Interface
Intermediate Data Rate
Framer/DeFramer PowerPC Bus Master Early/Late Gate Symbol 8259 Interrupt Controller
Multi-Channel ATM TC PowerPC Bus Slave FFT 8254 Timer/Counter
Packet Over SONET USB Function Controller FIR Compiler 8051
Controller 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 Integer Divider LX-4080R
and Slave
NCO Xtensa 32-bit Processor
Reed Solomon Compiler SDRAM Controller
Square Root Operator
Symbol Interleaver/Deinterleaver
-71-
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
broches de configuration
dédiées
FPGA
CLP ou port JTAG
-73-
Emmanuel Boutillon
Debug : Analyseur embarqué
Internal
Chip-level
Activity
puce puce
-75-
Emmanuel Boutillon
Critère économique
Coût de maintenance :
=> extension de la famille FPGA : nouvelle génération de
produit
-76-
Emmanuel Boutillon
PLAN
-77-
Emmanuel Boutillon
Intérêts des CLPs pour le traitement
du signal
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
-78-
Emmanuel Boutillon
complémentarité CLP
processeur
données au débit élevé info au débit moins élevé
canal 1 interface
coprocesseur processeur
asynchrone
canal 2 "front end" : "back end"
décodage canal gestion système
canal 2 filtrage contrôle
-80-
Emmanuel Boutillon
L’offre ALTERA (début 2001)
-81-
Emmanuel Boutillon
PLD / CPLD / FPGA : L’offre ALTERA :
EXCALIBUR
200
ARM MIPS
Core Core
100
Performance
(MIPs)
50
TM
Core
20
0 Soft Core
-82- Hard Cores
Emmanuel Boutillon
NIOS Embedded Processor
Configurable Soft Core
SRAM
Optimized for ALTERA’s PLD
PBM
IRQ
CPU
Architecture
FLASH
16 or 32 bits Data Path
16 bits instruction set
Timer
RISC base, 4-stage pipeline
50 MIPS performance Serial
UART
Port
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
Fully-
Synchronous
Interface
-84-
Emmanuel Boutillon
Nios Compile-Time Parameters
Interrupt
Control PIO
Int.& Ext.
Wait State Memory
Generation
Data In User-defined
Multiplexer Peripheral
User-defined
Peripheral
Bus Sizing
(Optional)
-86-
Emmanuel Boutillon
Nios Flexibility & Scalability
High-Performance
Embedded Processor Custom
DSP
Multi-Processor
FFT Micro-Coded System
75K Gates
Available
ESB
ESB
ESB
ESB
APEX EP20K100E 150K Gates
Available
ESB
ESB
ESB
ESB
ESB
ESB
ESB
ESB
APEX EP20K200E
Before Nios
68XXX = 8 MIPS
ARM 7 = 53 MIPS 500K Gates
Pentium III = 500 MIPS
Available
After Nios
1 Nios = 44 MIPS
40 Nios = 1760 MIPS
-87-
APEX EP20K1000E
Emmanuel Boutillon
ARM/MIPS : Logical Structure
Dual-Port
DPRAM
RAM
Interface
SRAM
(Single Port)
PLD
SDRAM SDRAM
Interface Controller
Bridge
Based
Processor
-88-
Emmanuel Boutillon
Embedded Processor PLD
External
PLL UART Trace
Memory SRAM SRAM SRAM
Interfaces Module
Embedded
JTAG Timer
Processor
Interrupt
Stripe Watchdog ARM922T DPRAM DPRAM DPRAM
Timer
Controller
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
Prédiffusés Précaractérisés
(Million$) 1999 (Million$) 1999
-93-
Emmanuel Boutillon
Evolution des marchés
Répartition 99 (en $) des circuits CMOS
et 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 %
-96-
Emmanuel Boutillon