Les circuits cir cuits FPGA FPGA Concepts de base, architecture et applications applications Cours Master Recherche «S ystèm ystèmes es Intell Intelligen igents ts et Com Comm municants unicants »
François Verdier www-etis.ensea.fr/~verdier/
Uni Univers versiité de de Ce Cergyrgy-Po Pont ntoi oisse
Labo Labora rattoire oire ETI ETIS - UM UMR CNR CNRS S 8051 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 Arch itecture des d es FPGA XILINX XILINX 3.1 - Architecture générale 3.2 - Les interconnexions 3.3 - Les CLB 3.4 - Les IOB 3.6 - La configuration configuration des circuits 3.5 3.6 3.7 3.8 -
Les canaux canaux de d e routage La mémoire interne Configuration Configuration des FPGA Evolution Evolution des produit produ itss
4 - Méthodologie de d e conception 4.1 - Le flot de conception 4.2 - Les Intelectual Intelectual Properties 4.3 - La producti pro duction on en volume vo lume
5 - Applications : Les FCCM 5.1 - Exemples de machines 5.2 - Le CoDesign
6 - La reconfiguration reconfiguration dynamique dy namique 7 - Des FPGA aux SOPC 7.1 - Architecture Virtex2-Pro 7.2 - Architecture Virtex4 7.3 - ALTERA Excalibur-ARM Excalibur-ARM 7.4 - XPP de PACT
8 - Conclusion 9 - Pistes
Plan du cours 1 - Technologie et densité 2 - La famille des circuits logiques 2.1 - Les fonctions logiques 2.2 - Les technologies
3 - Architecture Arch itecture des d es FPGA XILINX XILINX 3.1 - Architecture générale 3.2 - Les interconnexions 3.3 - Les CLB 3.4 - Les IOB 3.6 - La configuration configuration des circuits 3.5 3.6 3.7 3.8 -
Les canaux canaux de d e routage La mémoire interne Configuration Configuration des FPGA Evolution Evolution des produit produ itss
4 - Méthodologie de d e conception 4.1 - Le flot de conception 4.2 - Les Intelectual Intelectual Properties 4.3 - La producti pro duction on en volume vo lume
5 - Applications : Les FCCM 5.1 - Exemples de machines 5.2 - Le CoDesign
6 - La reconfiguration reconfiguration dynamique dy namique 7 - Des FPGA aux SOPC 7.1 - Architecture Virtex2-Pro 7.2 - Architecture Virtex4 7.3 - ALTERA Excalibur-ARM Excalibur-ARM 7.4 - XPP de PACT
8 - Conclusion 9 - Pistes
1 - Technologie et densité •
Les systèmes électroniques électroniques modernes sont de plus pl us en plus complexes, complexes,
•
Les contraintes de taille, de puissance dissipée et de performa performances nces sont de plus en plus sévères sévères (téléphonie mobile, ordinateurs, traitement traitement du signal, de l'image 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
B C
S
2.1.1 - La logique standard •
Utilisation de circuits TTL / CMOS ... 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 de fusibles
A.B
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
C
Un ensemble de chemins de routage S = A.B + 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
C
OU
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 19 94 Nombre de Tra nsist ors Nombre de Port es Couches de Mét a l
1995 19 96/9 7 2000
2 001
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
122 - 174
0
64-100
XC3000*
1.3 - 9K
64 - 176
256 - 1320
0
64-484
XC4000
2 - 180K
80 - 448
360 - 7168
3K - 100K
100-3136
XC6200*
9K - 100K
192 - 512
2K - 16K
0
2K - 16K
XC4000XV
75K - 500K
448
10K - 20K
131K - 270K
2.5K-5K
SPARTAN
2K - 200K
77 - 284
360 - 2016
16K - 57K
238 - 5292
VIRTEX
58K - 1M
32K - 131K
384-6144
72K - 3.4M
64-15360*
VIRTEX2
# bascules # RAM bits
180 - 512 1728 - 27K
40K - 10M 88 - 1108
* produits obsolètes
256 - 61K
# CLB
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 prod uits La technologie micro-électronique continue d'évoluer de manière exponentielle (en densité, en vitesse, en taille et en consommation) 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 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) microns) et la densité des circuits augmente...
...tandis que la l a consommation consommation diminue
3.8.1 - XC4000X Les performances augmentent avec la finesse de la technologie
Frééquenc Fr quencees inte interr-ccirc ircuits uits
Frééque Fr quence nces intr intraa-cir -ciruit uitss
Les produits XC4000(X)
3.8.2 - La famille VIRTEX
Device XCV50 XCV100 XCV150 XCV200 XCV300 XCV400 XCV600 XCV800 XCV1000
CLB # gat e 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 bit bit s Max I/ 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 CLB SelectRAM Array SlicesMax RAM Kbit Multiplier Kbits Max I/
Device
# gate
XC2V40 XC2V80 XC2V250 XC2V500 XC2V1000 XC2V1500 XC2V2000 XC2V3000 XC2V4000 XC2V6000 XC2V8000 XC2V1000
40K
8 x 8
256
8
4
72
88
80K
16 x 8
512
16
8
144
120
250K
24 x 16
1536
48
24
432
200
500K
32 x 24
3072
96
32
576
264
1M
40 x 32
5120
160
40
720
432
1.5M
48 x 40
7680
240
48
864
528
2M
56 x 48 10752
336
56
1008
624
3M
64 x 56 14336
448
96
1728
720
4M
80 x 72 23040
720
120
2160
912
6M
96 x 88 33792
1056
144
2592
1104
8M
112 x 10446592
1456
168
3024
1108
10M
128 x 12061440
1920
192
3456
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 C2910a C8051 ARC32
Type
Microprogram contr oller Micro Cont roller 32 -bit Conf igurable RISC Processor 8 -bit Micr o Co nt r o lle r D80530 Micr opr ocessor Slice C2901 Micro Processor W65C02S Micro Processor Mini-RISC OpenRISC-1000 RISC Processor Jav a Micr opr oce sso r LavaCORE Microprocessor Free-RISC8 SPARC-com pat ible LEON-1 Micro Processor
Pr ovide r CAST Inc. CAST Inc. ARC Cores CAST In c. CAST In c. West ern Design Cent er OpenCores.org OpenCores.org D er iv a t ion Sy st e m In c. The Free IP Project Eu ropean Space Agen cy (ESA)
Les bibliothèques d'Intelectual Properties
IP
Ap p lica t ion
Encodeu r Reed -Solomon Transmission de donn ées Décodeur Reed-Solomon Transmission de donn ées Inte rface PCI-X
Bus de comm unicat ion
Contrôleur HDLC
Connect ion couche physique
Codeur/décodeur ADPCM Transmission, compr ession
4.3 - La production en volume : HardWire TM 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
9204/FPGA 2 x XC4025 T9000 64Ko + 8Mo Transput er DS-Lin DVC1 2 x XC4013 1Mo + FIFOs Sbu s EDgAR-2 4 x XC401 3 PCI Functional M emory Compu8 x XC401 0 + 3 x XC4013 1Mo PCI LIRMM 2 x XC4013 TMS 320C40 2 x 1 Mo ISA ou Sbus MARC-1 25 x XC4005 6 Mo Sbu s MORRPH-ISA 6 x XC402 5 Dédié CARMeN VIRTEX XCV1000 ARM 8Mo + 2 Mo PCI, CAN, et c... OPART 2 x XC4028EX Pen t ium + PP 2Mo + FIFO Com pact PCI ARDOISE ATMEL At 40K DSP 2Mo / m odul 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 COSI SYNDEX MCSE MOSARTS LIRMM SKIPPER COSMOS POLIS COWARE CodeX CHINOOK
IRISA (Rennes) INRIA IRESTE (Nant es) Université de Nice-Antipolis Un iv e r sit é d e M on t p ellie r Univ. de Clerm ont-Ferrand TIMA (Grenoble) Univ . de Berkeley Belgique Un iv . de Kaiser Slau t er n Univ . de Washingt on
ASIC : Sy st em On Chip Trait em ent du signal Spécif icat ion pour le Codesign Télécom. : partitionnem ent Té léco m . Sy n t h èse et v é rif ica t io n Parallélisation de code en TI IP + pr ocesseurs classiques Concept ion m ix t e / FSM IP et st andardisat ion Réseau x m i xt e s sy st o liqu es Sy st èm es m ixt es indust riels
Form alisation des langages de descript ion :
HandelC LCC SystemC
Anglet erre Langage de descript ion m ix t e (OCCAM) Univ . de Vir ginie Langage m ixt e DSP + FPGA COWARE / Front ier / SynopsysLangage et com pilat eur C+ + m ixt 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
t n e m e p p o l e v é D
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é
Ca rte m ère + 3 m od ules
Prototype d’un module
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 temps réel
• Proc esse ur front-end de c ontrôle des c onfiguratio ns ADSP SHARC 21161 • Reconfiguration partielle et dynamique d es 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 Des FPGA FPGA aux aux SOPC 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 « fami famille » de composa composant ntss « plat platee-form forme e » différenciés en fonction des besoins : • LX : logique haute performances • FX : TS très hautes performances traitement embarqué embarqu é et connecti conn ectivité vité • SX : traitement rapide
Virtex-4 SX FPGA Devices
Virtex-4 Virtex-4 F X FPGA De vices
7.3 – Architecture Excalibur-ARM
7.4 – Architecture 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
entrepot de config.
OS_createMV()
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
Préemption matérielle
MACHINE VIRTUELLE
Zone reconfigurable
Modélisation UML des plate-formes
Flot de modélisation, d’abstraction et de raffinement