LES CIRCUITS FPGA XILINX Concepts de base, technologie et appl
Transcription
LES CIRCUITS FPGA XILINX Concepts de base, technologie et appl
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
Documents pareils
Bien concevoir avec un FPGA
en impédance aussi bien les entrées que les ces blocs Ram autorise l’implantation de par des ressources d’interconnexions génésorties, sans avoir à insérer les traditionnelles fonctions logiques co...