LES CIRCUITS FPGA XILINX Concepts de base, technologie

publicité
Les circuits FPGA
Concepts de base, architecture et applications
Cours Master Recherche
«S ystèmes Intelligents et Communicants »
François Verdier
www-etis.ensea.fr/~verdier/
Université de Cergy-Pontoise
Laboratoire ETIS - UMR CNRS 8051
Plan du cours
1 - Technologie et densité
2 - La famille des circuits logiques
2.1 - Les fonctions logiques
2.2 - Les technologies
3 - Architecture des FPGA XILINX
3.1
3.2
3.3
3.4
3.6
- Architecture générale
- Les interconnexions
- Les CLB
- Les IOB
- La configuration des
3.5
3.6
3.7
3.8
- Les canaux de routage
- La mémoire interne
- Configuration des FPGA
- Evolution des produits
circuits
4 - Méthodologie de conception
4.1 - Le flot de conception
4.2 - Les Intelectual Properties
4.3 - La production en volume
5 - Applications : Les FCCM
5.1 - Exemples de machines
5.2 - Le CoDesign
6 - La reconfiguration dynamique
7 - Des FPGA aux SOPC
7.1
7.2
7.3
7.4
- Architecture Virtex2-Pro
- Architecture Virtex4
- ALTERA Excalibur-ARM
- XPP de PACT
8 - Conclusion
9 - Pistes
1 - Technologie et densité
•
Les systèmes électroniques modernes sont de plus en
plus complexes,
•
Les contraintes de taille, de puissance dissipée et de
performances sont de plus en plus sévères (téléphonie
mobile, ordinateurs, traitement du signal, de l'image,
etc...).
•
Accroissement spectaculaire des densités.
Les techniques de circuit imprimés à trous
traversants
Densité limitée par la surface !
Trous métallisés
Soudure
Insertion des
composants
Pistes de cuivre
Carte en fibre epoxy
Les techniques de circuit imprimés à
montage en surface
Densité multipliée par 10
Dépôt et collage
des CMS
Composants sur les deux faces !
Pistes en cuivre
multicouches
Carte en fibre epoxy
Les contraintes physiques, technologiques et commerciales
imposent aujourd'hui la conception de systèmes de plus en
plus :
- compacts,
- économes en énergie,
- rapides à concevoir,
- fiables et peu coûteux.
La contrainte de « time to market » devient la plus
importante et rend inefficace désormais les cycles classiques
de développement / vérification / réalisation physique.
=> besoin d'une technologie fiable, abordable et souple...
2 - La grande famille des circuits
logiques
•
•
•
La logique standard
Les mémoires (RAM, PROM, EPROM...)
Les réseaux logiques programmables (PLA, PLD,
EPLD, CPLD...)
• réseaux ET/OU
•
•
technologie fusibles/anti-fusibles
réseaux logiques programmables sur site (FPGA)
•
•
technologie RAM/SRAM
logique à LUT
2.1 - Les différentes techniques de
réalisation d’une fonction logique
S = (A . B) +
C
A
B
C
S
2.1.1 - La logique standard
• Utilisation de circuits TTL / CMOS ...
A
B
C
S
densité : <20%
temps : mn à h
7408
7432
2.1.2 - La logique à mémoire : LUT
• à partir d’une table de vérité
S = (A . B) + C
C
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
A
0
1
0
1
0
1
0
1
S
0
0
0
1
1
1
1
1
et d’une mémoire (8x1bit)
A
B
C
0
0
0
1
1
1
1
1
S
2.1.3 - Les connexions
programmables : Les circuits PAL
réseau de portes ET
A
B
C
réseau de portes OU
S = A.B + C
Connexions à base A.B
de fusibles
C
L’équation se programme sous sa première forme
canonique (somme de produits)
2.1.4 - Les FPGA
(Field Programmable Gate Array)
A
B
LUT
ET
LUT
LUT
LUT
OU
Un ensemble de
chemins de
routage
S = A.B + C
C
Programmation des mémoires Un ensemble de mémoires LUT
et établissement des connexions
2.1.4 - Les FPGA
Connexions par transistors MOS
A
B
ET
OU
C
Cellule mémoire
S = A.B + C
2.2 - Classification des technologies
Logique
Logique standard
ASIC
PLD
PAL
CPLD
EPROM
EEPROM/FLASH
FPGA
anti-fusibles
SRAM
Les circuits FPGA SRAM deviennent des solutions de
remplacement avantageuses pour les systèmes numériques
à haute intégration.
Les cycles de développement et de prototypage (test et
vérification en conditions réelles) sont accélérés et même
confondus.
Spécification
Conception
Vérification
Réalisation
3 - Architecture des circuits FPGA
(XILINX)
•
•
•
Un FPGA réalise une fonction logique complexe. Il est
programmable, et re-programmable dans son
environnement
Les circuits FPGA XILINX sont disponibles en de
nombreuses configurations de taille, de vitesse et de
prix
Des outils logiciels puissants et automatiques
permettent de réaliser facilement un système sur
FPGA.
Evolution de la technologie des circuits
FPGA XILINX
198 5 /8 6 1994
Nom bre de
Tra nsist ors
Nom bre de
Port es
Couches de
Mét a l
1995 1996/97 2000
2001
85 K
3 ,5 M
6M
12 M
75 M
> 100 M
800
25 K
50 K
100 K
500 K
10 M
2
3
3
3-4
4-5
8
Les différentes « familles » FPGA XILINX
Famille
# portes
# E/S
XC2000*
0.6 - 1.5K
58 - 74
XC3000*
XC4000
XC6200*
0
64-100
1.3 - 9K
64 - 176 256 - 1320
0
64-484
2 - 180K
80 - 448 360 - 7168
3K - 100K
100-3136
0
2K - 16K
9K - 100K 192 - 512
SPARTAN 2K - 200K
VIRTEX2
# CLB
122 - 174
XC4000XV 75K - 500K
VIRTEX
# bascules # RAM bits
448
2K - 16K
10K - 20K 131K - 270K
77 - 284 360 - 2016
16K - 57K
58K - 1M 180 - 512 1728 - 27K 32K - 131K
40K - 10M 88 - 1108 256 - 61K
* produits obsolètes
2.5K-5K
238 - 5292
384-6144
72K - 3.4M 64-15360*
3.1 - Architecture générale
•
•
•
•
Un FPGA est un réseau (matrice) de
blocs combinatoires et séquentiels (CLB)
Des blocs d’entrée/sortie (IOB) sont
associés aux broches du circuit
Les CLB et IOB sont interconnectés entre
eux par des dispositifs variés
Les matrices s’organisent de 8x8 à
128x120
3.1 - Architecture générale
CLB
IOB
lignes de
connections
matrices de
connexion
3.2 - Les interconnexions
(directes)
2 ns
CLB
CLB
DELAIS DEPENDANT
5 ns DU ROUTAGE !!!
CLB
CLB
3.2 - Les interconnexions
(matrices)
CLB
CLB
CLB
CLB
3.2 - Les interconnexions (lignes)
CLB
CLB
CLB
CLB
3.3 - Structure des CLB
•
Une table de transcodage combinatoire (LUT)
pouvant implanter :
– deux fonctions indépendantes à 4 variables
– une fonction complète à 5 variables
– une fonction incomplète à 6 variables
•
•
Deux cellules séquentielles (bascules D)
Des multiplexeurs de configuration
3.3.1 - Structure d’un CLB 3000
3.3.2 - Structure d’un CLB 4000
3.3.3 - Structure d’un CLB
SPARTAN
3.4 - Structure des IOB
Ports d’entrée/sortie totalement programmables :
• Seuil d’entrée TTL ou CMOS
• Slew-rate programmable
• Buffer de sortie programmable en haute
impédance
• Entrées et sorties directes ou mémorisées
• Inverseur programmable
3.4.1 - Structure des IOB (XC3000)
3.4.2 - Structure des IOB (XC4000)
3.4.3 - Structure des IOB
(SPARTAN)
3.5 - Canaux de routage
Matrices d'interconnexions
(Programmable Switch Matrix)
Routage inter-CLB
3.6 - Utilisation des CLB en
mémoires
3.7 - Configuration des FPGA
Les circuits FPGA XILINX se configurent selon plusieurs modes :
1) Le mode série qui utilise une EEPROM série (avantage de
la compacité mais faible rapidité)
2) Le mode parallèle 8 bits (EPROM classique) plus rapide
3) Le mode parallèle asynchrone : le circuit FPGA se comporte
comme un périphérique de micro-processeur : possibilité de
(re)configuration partielle intelligente
Dans chaque mode, plusieurs FPGAs peuvent être chaînés en
mode maître/esclave.
Mode de configuration série (EEPROM série)
Circuit «principal»
Circuits en «daisy chain»
Mode de configuration parallèle
(EPROM parallèle)
Mode de configuration parallèle asynchrone
(mode périphérique de processeur)
3.8 - Evolution des produits
•
•
•
•
La technologie micro-électronique continue d'évoluer de manière
exponentielle (en densité, en vitesse, en taille et en consommation) :
La taille des puces augmente : les entrées/sorties sont plus
nombreuses
La densité augmente : le grain des FPGA augmente
La technologie SRAM se fiabilise : la quantité de mémoire augmente
Les nouvelles familles apparaissent :
- XC4000(X)
- VIRTEX
- VIRTEX-II
- VIRTEX-II PRO
- VIRTEX-4
3.8.1 - XC4000X
La technologie évolue (premier FPGA
avec une technologie 0.25 microns)
et la densité des circuits augmente...
...tandis que la consommation
diminue
3.8.1 - XC4000X
Les performances augmentent avec
la finesse de la technologie
Fréquences inter-circuits
Fréquences intra-ciruits
Les produits XC4000(X)
3.8.2 - La famille VIRTEX
Device
XCV50
XCV100
XCV150
XCV200
XCV300
XCV400
XCV600
XCV800
XCV1000
CLB
# gates Array
58K
109K
164K
236K
323K
468K
661K
888K
1.1M
16
20
24
28
32
40
48
56
64
x
x
x
x
x
x
x
x
x
24
30
36
42
48
60
72
84
96
Logic Block SelectRAM
Cells RAM bits bits
Max I/O
1728
2700
3888
5292
6912
10800
15552
21168
27648
32768
40960
49152
57344
65536
81920
98304
114688
131072
24576
38400
55296
75264
98304
153600
221184
301056
393216
180
180
260
284
316
404
512
512
512
3.8.3 - La famille VIRTEX-II
Accélération
des délais
de routage
Avec la densité qui augmente,
intégration de la notion
d'« Intelectual Properties »
(IP = Macro-Cellules tierces)
3.8.3 - La famille VIRTEX-II
Vaste choix de formats et de
standards d'entrées/sorties grâce
aux canaux différentiels
configurables
Technologie plus rapide :
certaines applications DSP
deviennent concurentielles
3.8.3 - La famille VIRTEX-II
Protection de la propriété industrielle :
le Reverse Engineering est impossible
3.8.3 - La famille VIRTEX-II
Device
CLB
SelectRAM
# gates Array SlicesMax RAM Kbits
Multipliers Kbits Max I/O
XC2V40
XC2V80
XC2V250
XC2V500
XC2V1000
XC2V1500
XC2V2000
XC2V3000
XC2V4000
XC2V6000
XC2V8000
XC2V10000
40K
8x8
256
80K
16 x 8
512
250K 24 x 16 1536
500K 32 x 24 3072
1M
40 x 32 5120
1.5M 48 x 40 7680
2M
56 x 48 10752
3M
64 x 56 14336
4M
80 x 72 23040
6M
96 x 88 33792
8M 112 x 10446592
10M 128 x 12061440
8
16
48
96
160
240
336
448
720
1056
1456
1920
4
8
24
32
40
48
56
96
120
144
168
192
72
144
432
576
720
864
1008
1728
2160
2592
3024
3456
88
120
200
264
432
528
624
720
912
1104
1108
1108
3.8.3 - Architecture VIRTEX-II
Matrice de « Slices »
Blocs d'E/S
Blocs de mémoire
Générateurs d'horloge
Multiplieurs 18x18
4 - Méthodologie de conception
Les systèmes à concevoir devenant de plus en plus complexes, les
types de descriptions deviennent de plus en plus variés :
- schémas,
- VHDL structurel, fonctionnel,
- ABEL (machines à états), Verilog,
- code C / C++ ?
Plus les systèmes deviennent complexes à concevoir, plus les
étapes de vérification sont nécessaires :
- simulation fonctionnelle,
- analyse des timings (chemins critiques),
- simulation post-routage (temporelle),...
Avec l'augmentation de la densité des circuits, les notions de
placement géométrique deviennent indispensables :
- floorplanning
4.1 - Le flot de conception
1- Description du système :
- Schémas (hiérarchie),
- code VHDL (Verilog, ABEL)
2- Compilation du code VHDL :
- synthèse si code fonctionnel
3- Simulation fonctionnelle :
- vérification de la description
4- Placement relatif et estimation du routage :
- «floorplanning» et gestion des contraintes d'E/S
5- Compilation du circuit :
- conversion du Netlist,
- optimisation combinatoire,
- placement / routage des cellules
- retro-annotation temporelle
6- Vérification finale :
- simulation temporelle,
- configuration / validation
4.2 - Les Intelectual Properties (IP)
Les IP sont des macro-celulles (pré-placées et/ou pré-routées)
disponibles comme des cellules de bibliothèque proposant sous
forme de « boites noires » des fonctions complexes entièrement
simulables et respectant la propriété industrielle.
On transpose directement la méthodologie de conception d'un
système complexe (associant logique discrète, composants
standards, circuits spécifiques) dans un seul circuit FPGA...
La description complète du système associe saisie de schémas,
spécifications de haut niveau (structurelle et/ou fonctionnelle)
en langage VHDL ou Verilog et langage C.
Spécification
C
Spécification
VHDL
Bibliothèque
standard
COMPILATEUR
Bibliothèque
IP
Simulation
PLACE & ROUTE
Rétroannotation
temporelle
Programmation
du composant
Validation
Modèle de
composant
Les bibliothèques d'Intelectual Properties
IP
C2 9 1 0 a
C8 0 5 1
ARC3 2
Typ e
Microprogram cont roller
Micro Cont roller
32-bit Configurable
RISC Processor
D8 0 5 3 0
8 -bit Micro Cont roller
C2 9 0 1
Microprocessor Slice
W 6 5 C0 2 S
Micro Processor
M in i-RISC
Micro Processor
Op e n RISC-1 0 0 0 RISC Processor
La va CORE
Jav a Microprocessor
Fr e e -RISC8
Microprocessor
LEON-1
SPARC-com pat ible
Micro Processor
Pr ovid e r
CAST Inc.
CAST Inc.
ARC Cores
CAST Inc.
CAST Inc.
West ern Design Cent er
OpenCores.org
OpenCores.org
Deriv at ion Syst em Inc.
The Free IP Project
European Space Agency
(ESA)
Les bibliothèques d'Intelectual Properties
IP
Applica t ion
Encode ur Re e d-Solom on Transm ission de données
Dé code ur Re e d-Solom on Transm ission de données
Int e r fa ce PCI-X
Bus de com m unicat ion
Cont r ôle ur H DLC
Connect ion couche physique
Code ur /dé code ur ADPCMTransm ission, com pression
4.3 - La production en volume : HardWireTM
Le coût de production d'une solution sur FPGA devient
considérable sur de grands volumes. Le surcoût introduit
par les capacités de re-programmabilité devient prohibitif.
=> Transformation FPGA -> ASIC (Gate Array)
La technologie HardWireTM permet le passage d'une version
prototype (reprogrammable) validée à une version de
production en grande série.
Les cibles FpgASIC sont totalement compatibles et vérifiées.
Volume
Début de production
Fin de vie
Circuits FpgASIC
FPGA
HardWire
FPGA
Durée de vie du produit
5 - Application des FPGAs :
Les machines (re)configurables
L'existence de composants logiques (re)programmables in-situ et
performants conduit à un nouveau paradigme de programmation :
« la fonction cablée reconfigurable »
Un traitement complexe se pense désormais en termes d'opérateurs
matériels optimisés configurables et programmables à l'infini.
Les FCCM (FPGA-based Custom Computing Machines) deviennent
de réels (co)processeurs de calcul optimisés.
Des traitements coûteux deviennent possibles : le temps-réel
embarqué devient possible (codage/décodage, TI, TS, etc..).
Le concept de FCCM
Processeur
hôte
Plusieurs circuits FPGA
Réseau d'interconnexion
FPGA
FPGA
Mem.
Mem.
FPGA
FPGA
Mem.
Mémoires
de travail
5.1 - Quelques exemples de
FCCM
Machine
FPGA
Processeur
Mémoire
Bus
9 20 4 /FPGA
2 x XC402 5
T9000
64Ko + 8Mo Tran spu t er DS-Lin k
DVC1
2 x XC401 3
1 Mo + FIFOs
Sbu s
EDgAR-2
4 x XC401 3
PCI
Funct ional Memory Comput8er
x XC401 0 + 3 x XC401 3
1 Mo
PCI
LIRMM
2 x XC401 3
TMS 3 2 0C40
2 x 1 Mo
ISA ou Sbu s
MARC-1
2 5 x XC4005
6 Mo
Sbu s
MORRPH-ISA
6 x XC402 5
Dédié
CARMeN
VIRTEX XCV1 000
ARM
8Mo + 2 Mo PCI, CAN, et c...
OPART
2 x XC402 8EX
Pen t iu m + PPC2 Mo + FIFO
Com pact PCI
ARDOISE
ATMEL At 40K
DSP
2 Mo / m odu le
Dédié
5.1.1 - La machine ARMEN
Laboratoire d'Informatique de Brest
Université de Bretagne Occidentale
Processeurs Transputer T805
FPGA XC3090
5.1.2 - La machine CARMeN
SIDSA
5.2 - Programmation des FCCM :
Le CODESIGN
Application
?
DSP
Réseau FPGA
Les projets d'outils de CODESIGN
CO SI
SYN D EX
M CSE
M O SARTS
LI RM M
SKIPPER
CO SM O S
PO LI S
CO W ARE
Cod e X
CH IN O O K
IRISA (Renn es)
INRIA
IRESTE (Nan t es)
Univ ersit é de Nice-An t ipolis
Univ ersit é de Mon t pellier
Univ . de Clerm ont -Ferran d
TIMA (Grenoble)
Univ . de Berkeley
Belgique
Univ . de KaiserSlau t ern
Univ . de Wash in gt on
ASIC : Sy st em On Ch ip
Trait em en t du signal
Spécif icat ion pou r le Codesign
Télécom . : part it ionn em en t
Télécom . Sy nt h èse et v érif icat ion
Parallélisat ion de code en TI
IP + processeu rs classiques
Concept ion m ix t e / FSM
IP et st andardisat ion
Réseau x m ix t es sy st oliqu es
Sy st èm es m ix t es in du st riels
Form alisat ion des lan gages de descript ion :
H a n d e lC
LCC
Sy st e m C
Anglet erre
Lan gage de descript ion m ix t e (OCCAM)
Univ . de Virgin ie
Lan gage m ix t e DSP + FPGA
COWARE / Fron t ier / Sy n opsy s Lan gage et com pilat eu r C+ + m ix t e
5.2.1 - Les problèmes ouverts du CoDesign
Spécification de haut niveau
(C, C++)
Bibliothèque
standard et IP
Analyse
du code
DSP
Extraction
du parallélisme
Compilateur
séquentiel
Gestion des
communication
s
FPGA
Modèle
d'architecture
Analyse des dépendances
de données
Analyse des ressouces
mémoire
Place / Route
5.2.2 - Le flot classique de conception
Développement
Modèle niveau système
C / C++
Traduction
Description
VHDL / Verilog
SIMULATION
ANALYSE
SYNTHESE
Résultats de test
5.2.2 - Un nouveau standard : SystemCTM
(Synopsys + CoWare + Frontier Design : www.systemc.org)
Modèle SystemC
Essais d'architectures
Amélioration
Analyse de
performances
Modèle temporel
Harware / Software
Partitionnemen
t
Modèle Bus
Modèle abstrait
RTOS
Amélioration
Amélioration
Modèle cycle
synthétisable
Cible RTOS
6 – La Reconfiguration Dynamique des FPGA
Les architectures de type FPGA offrent la possibilité de modifier à
la demande l’agencement structurel ainsi que la fonctionalité des
ressources internes de la puce.
L’exploitation de ce concept introduit la notion de “fonction
câblée” programmable :
Parallélisme spatial (de données)
Parallélisme temporel (pipeline)
Flexibilité
La machine ARDOISE (Atmel)
Action incitative inter-GDR (ETIS)
ARDOISE :
Architecture Reconfigurable Dynamiquement Orientée Image et Signal Embarqué
Carte m ère + 3 m odules
Pro toty p e d’un m odule
Objectifs du projet ARDOISE
1. Utiliser la reconfiguration dynamique des FPGA
• Reconfiguration totale = 0,8 ms
• Reconfiguration partielle possible
• Changement d’algorithmes en temps réel sur le même
circuit
• Vitesse des architectures câblées, flexibilité des
architectures programmables
2. Développer l’architecture, les méthodes et les outils
• ARDOISE = prototype expérimental (académique)
• Applications en segmentation d’images
• Applications en caméras intelligentes
• Application en compression / décompression d’images
(MPEG)
Ac quisition, traitem ent
et visualisation en tem ps réel
• Proc esse ur front-end de c ontrôle des
c onfigurations ADSP SHARC 21161
• Rec o nfig uration pa rtielle et dy nam iq ue
des c irc uits FPGA ATMEL AT40K40
Architecture d’ARDOISE :
ARDOISE = application du principe de
reconfiguration dynamique en traitement
d'images :
op1
op2
Image i
Image i-1
op1
Image i-2
Image i+1
Conf. Deriche1
GTI1
GTI2
BC
Mémoire
256kx32
IN
FPGA
GTI1
Deriche 1
Mémoire
256kx32
FPGA
GTI2
OUT
Exec. Deriche1 / Conf. Deriche 2
GTI1
GTI2
BC
Mémoire
256kx32
IN
FPGA
GTI1
Deriche 1
Mémoire
256kx32
FPGA
GTI2
OUT
Exec. Deriche 2 / Conf. Contours
GTI1
GTI2
BC
Mémoire
256kx32
IN
FPGA
GTI1
Deriche 2
Mémoire
256kx32
FPGA
GTI2
OUT
Exec. Contours / Conf. Fermeture 1
GTI1
GTI2
BC
Mémoire
256kx32
IN
FPGA
GTI1
Contours
Mémoire
256kx32
FPGA
GTI2
OUT
Exec. Fermeture 1 / Conf. Fermeture 2
GTI1
GTI2
BC
Mémoire
256kx32
IN
FPGA
GTI1
Fermeture
1
Mémoire
256kx32
FPGA
GTI2
OUT
Exec. Fermeture 2 / Conf. région 1
GTI1
GTI2
BC
Mémoire
256kx32
IN
FPGA
GTI1
Fermeture
2
Mémoire
256kx32
FPGA
GTI2
OUT
Exec. Région 1 / Conf. région 2
GTI1
GTI2
BC
Mémoire
256kx32
IN
FPGA
GTI1
Région
1
Mémoire
256kx32
FPGA
GTI2
OUT
Exec. Région 2 / Conf. Deriche 1
GTI1
GTI2
BC
Mémoire
256kx32
IN
FPGA
GTI1
Région
2
Mémoire
256kx32
FPGA
GTI2
OUT
Exec. Deriche 1 / Conf. Deriche 2
GTI1
GTI2
BC
Mémoire
256kx32
IN
FPGA
Deriche 1
GTI1
FPGA
GTI2
Mémoire
256kx32
OUT
ARDOISE : Estimation de performances
Application de segmentation d’images
7 – Des FPGA aux SOPC
Systems On Programmable Chips
Les applications susceptibles d'être intégrées dans des FPGA (ou
dans des systèmes configurables) gagnent en complexité et en
densité.
La granularité des architectures FPGA ne suffit plus pour le
développement des applications :
- multiplieurs, mémoires, E/S rapides (Xilinx Virtex)
- blocs Mult-Accu-Reg pour le traitement du signal (Altera)
De plus en plus d'applications nécessitent des ressources
programmables classiques sous forme de processeurs (RISC ou
DSP)
7.1 – Architecture des Virtex2-Pro
Transceivers
RocketIO 622 Mbps
Architecture FPGA
VitexII
Processeur PowerPC
32 bits 400MHz
7.1 – Architecture des Virtex2-Pro
PPC
405
7.1 – Architecture des Virtex2-Pro
Auto-reconfiguration complète de la plate-forme !
Mémoire
PPC
405
Ethernet
I/O
Internal Configuration
Acces Port
7.2 – Architecture des Virtex4-multiPlatform
Virtex-4 LX FPGA Devices
Une « famille » de composants « plate-forme »
différenciés en fonction des besoins :
• LX : logique haute performances
• FX : TS très hautes performances
• SX : traitement embarqué et connectivité
rapide
Virtex-4 SX FPGA Devices
Virtex-4 FX FPGA Devices
7.2 – Architecture des Virtex4-multiPlatform
Virtex-4 LX FPGA Device Combinations
XC
4VLX15
XC
4VLX25
XC
4VLX40
XC
4VLX60
XC
4VLX80
XC
4VLX100
XC
4VLX160
XC
4VLX200
--
XCE
4VLX25
XCE
4VLX40
XCE
4VLX60
XCE
4VL80
XCE
4VLX100
XCE
4VLX160
XCE
4LX200
13,824
24,192
41,472
59,904
80,640
110,592
152,064
200,448
Block RAM/FIFO
w/ECC (18 kbits
each)
48
72
96
160
200
240
288
336
Total Block RAM
(kbits)
864
1,296
1,728
2,880
3,600
4,320
5,184
6,048
Digital Clock
Managers (DCM)
4
8
8
8
12
12
12
12
Phase-matched
Clock Dividers
(PMCD)
0
4
4
4
8
8
8
8
Max Differential
I/O Pairs
160
224
320
320
384
480
480
480
XtremeDSP™
Slices
32
48
64
64
80
96
96
96
PowerPC™
Processor Blocks
--
--
--
--
--
--
--
--
10/100/1000
Ethernet MAC
Blocks
--
--
--
--
---
--
--
--
RocketIO™ Serial
Transceivers
--
--
--
--
--
--
--
--
4,875,392
8,037,312
12,647,680
18,315,520
24,101,440
31,818,624
41,863,296
50,648,448
320
448
640
640
768
960
960
960
Feature/Product
EasyPath™ Cost
Reduction
Solutions
Logic Cells
Configuration
Memory Bits
Max SelectIO™
7.2 – Architecture des Virtex4-multiPlatform
Virtex-4 SX FPGA Device Combinations
XC
4VSX25
XC
4VSX35
XC
4VSX55
XCE
4VSX25
XCE
4VSX35
XCE
4VSX55
23,040
34,560
55,296
128
192
320
2,304
3,456
5,760
Digital Clock Managers (DCM)
4
8
8
Phase-matched Clock Dividers (PMCD)
0
4
4
Max Differential I/O Pairs
160
224
320
XtremeDSP™ Slices
128
192
512
PowerPC Processor Blocks
--
--
--
10/100/1000 Ethernet MAC Blocks
--
--
--
RocketIO Serial Transceivers
--
--
--
9,651,072
14,476,608
24,088,320
320
448
640
Feature/Product
EasyPath Cost Reduction Solutions
Logic Cells
Block RAM/FIFO w/ECC (18 kbits
each)
Total Block RAM (kbits)
Configuration Memory Bits
Max SelectIO
7.2 – Architecture des Virtex4-multiPlatform
Virtex-4 FX FPGA Device Combinations
XC
4VFX12
XC
4VFX20
XC
4VFX40
XC
4VFX60
XC
4VFX140
--
XCE
4VFX20
XCE
4VFX40
XCE
4VFX60
XCE
4VFX140
12,312
19,224
41,904
56,880
142,128
Block RAM/FIFO w/ECC
(18 kbits each)
36
68
144
232
552
Total Block RAM (kbits)
648
1224
2,592
4,176
9,936
Digital Clock Managers
(DCM)
4
4
8
12
20
Phase-matched Clock
Dividers (PMCD)
0
0
4
8
8
Max Differential I/O Pairs
160
160
224
288
448
XtremeDSP™ Slices
32
32
48
128
192
PowerPC Processor
Blocks
1
1
2
2
2
10/100/1000 Ethernet MAC
Blocks
2
2
4
4
4
RocketIO Serial
Transceivers
0
8
12
16
24
5,017,088
7,641,088
15,838,464
22,262,016
50,900,352
320
320
448
576
896
Feature/Product
EasyPath Cost
Reduction Solutions
Logic Cells
Configuration Memory Bits
Max SelectIO
7.3 – Architecture Excalibur-ARM
7.4 – Architecture XPPTM de PACT
Du SOPC au RSoC : Reconfigurable System on Chip
Architecture interne organisée autour d’un réseau de communication :
• Processeur central intégré (ARM 32 bits)
• Mémoire intégrée
• Ressources d’entrée/sortie
• Périphériques
• Zone reconfigurable dynamiquement (64 ALUs reconfigurables)
• Applications de type multimédia
8 – CONCLUSION
L’évolution des performances de la technologie reconfigurable rend
les RSoC économiquement faisables et meilleurs candidats pour les
machines de type plateformes.
La technologie est mûre, maîtrisée et les concepts de configuration
statique largement acceptés.
Les SOPC et RSoC deviennent de plus en plus intégrés, parallèles et
hétérogènes. Leurs applications se déplacent progressivement vers le
temps réel « mou » et « dur ».
Besoin de développer des méthodologies d’exploitation efficace de
ces machines :
• OS embarqués temps-réel
• méthodologies de conception par composants
• exploitation de la reconfiguration dynamique en ligne…
9 – PISTES
Le challenge scientifique est aujourd’hui de concevoir des plateformes embarquées totalement autonomes dotées des capacités de
reconfiguration partielle dynamique (RSoC).
Complexité architecturale + complexité des applications
+ hétérogénéité des ressources + HW/SW
= nouvelles méthodologies de conception
Applications : radio-logicielle, plate-formes multimédia portables,
contrôle/commande embarqué…
Ressources : processeurs RISC (ARM, PPC), processeurs DSP,
µContrôleurs, mémoire(s), bus, réseaux, IP dédiées,
ARD, I/O
Concepts :
Reconfiguration dynamique (ARD), routage
dynamique (réseaux), SW+HW, RTOS,
parallélisme,
séquentiel, reprogrammabilité « en ligne »,
qualité de
service…
Méthodes :
Génie logiciel, modélisation, concepts objets,
portabilité, validation à haut niveau
Modèle logiciel des plate-formes
Application
OS pour SOC+ARD
Interconnexions (réseau, bus...)
noyau
Proc.
noyau
DSP
non-reconfigurable
Communications flexibles
Communications flexibles
noyau
noyau
noyau
noyau
noyau
noyau
MV
MM
MM
MV
MV
MM
Reconf. HAL
Reconf. HAL
ARD1
ARD2
reconfigurable
OS pour ARD
Gestion
des
communications
OS_createMV()
entrepot
de config.
main
OS_createMM()
MODULE MATERIEL
MACHINE VIRTUELLE
PROCESSEUR CENTRAL
réseau de communication
flexible
Zone reconfigurable
OS pour ARD
mémoires
de tâches
PROCESSEUR CENTRAL
MODULE MATERIEL
MACHINE VIRTUELLE
réseau de communication
flexible
Zone reconfigurable
OS pour ARD
changement de contexte
Migration
Ordonnancement
changements
de contexte
soft / soft
Migration
hard / soft
PROCESSEUR CENTRAL
MODULE MATERIEL
MACHINE VIRTUELLE
Préemption
matérielle
Zone reconfigurable
Modélisation UML des plate-formes
Flot de modélisation, d’abstraction et de raffinement
http://oversoc.ensea.fr
Projet ANR 2005-2008
Téléchargement
Study collections