Upload
wassim-baccari
View
50
Download
0
Embed Size (px)
Citation preview
Les circuits FPGAConcepts de base, architecture et applications
Cours Master Recherche
«S ystèmes Intelligents et Communicants »
François Verdierwww-etis.ensea.fr/~verdier/
Université de Cergy-Pontoise Laboratoire ETIS - UMR CNRS 8051
Plan du coursPlan du cours
1 - Technologie et densité2 - La famille des circuits logiques
2.1 - Les fonctions logiques2.2 - Les technologies
3 - Architecture des FPGA XILINX3.1 - Architecture générale3.2 - Les interconnexions3.3 - Les CLB3.4 - Les IOB3.6 - La configuration des
circuits3.5 - Les canaux de routage3.6 - La mémoire interne3.7 - Configuration des FPGA3.8 - Evolution des produits
4 - Méthodologie de conception4.1 - Le flot de conception4.2 - Les Intelectual Properties4.3 - La production en volume
5 - Applications : Les FCCM5.1 - Exemples de machines5.2 - Le CoDesign
6 - La reconfiguration dynamique7 - Des FPGA aux SOPC
7.1 - Architecture Virtex2-Pro7.2 - Architecture Virtex47.3 - ALTERA Excalibur-ARM7.4 - XPP de PACT
8 - Conclusion9 - 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 Les techniques de circuit imprimés à trous traversantstraversants
Carte en fibre epoxy
Pistes de cuivreTrous métallisés
Insertion descomposants
Soudure
Densité limitée par la surface !
Les techniques de circuit imprimés à Les techniques de circuit imprimés à montage en surfacemontage en surface
Carte en fibre epoxy
Pistes en cuivremulticouches
Dépôt et collagedes CMS
Composants sur les deux faces !
Densité multipliée par 10
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 2 - La grande famille des circuits logiqueslogiques
• La logique standard La logique standard • Les mémoires (RAM, PROM, EPROM...)Les mémoires (RAM, PROM, EPROM...)• Les réseaux logiques programmables (PLA, PLD, Les réseaux logiques programmables (PLA, PLD,
EPLD, CPLD...)EPLD, CPLD...)• réseaux ET/OUréseaux ET/OU• technologie fusibles/anti-fusiblestechnologie fusibles/anti-fusibles
• réseaux logiques programmables sur site (FPGA)réseaux logiques programmables sur site (FPGA)• technologie RAM/SRAMtechnologie RAM/SRAM• logique à LUTlogique à LUT
2.1 - Les différentes techniques de 2.1 - Les différentes techniques de réalisation dréalisation d’’une fonction logiqueune fonction logique
S = (A . B) + S = (A . B) + CC
AABBCC
SS
2.1.1 - La logique standard2.1.1 - La logique standard
• Utilisation de circuits TTL / CMOS ...Utilisation de circuits TTL / CMOS ...
AABBCC
SS
74087408 74327432
densité : <20%densité : <20%
temps : mn à htemps : mn à h
2.1.2 - La logique à mémoire : LUT2.1.2 - La logique à mémoire : LUT
• à partir dà partir d’’une table de véritéune table de vérité
S = (A . B) + CS = (A . B) + C
C B A S0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 11 0 1 11 1 0 11 1 1 1
et det d’’une mémoire (8x1bit)une mémoire (8x1bit)
00011111
ABC
S
2.1.3 - Les connexions 2.1.3 - Les connexions programmables : Les circuits PALprogrammables : Les circuits PAL
réseau de portes ET
réseau de portes OU
ABC
S = A.B + C
LL’’équation se programme sous sa première formeéquation se programme sous sa première formecanonique (somme de produits)canonique (somme de produits)
A.B CConnexions à base
de fusibles
2.1.4 - Les FPGA 2.1.4 - Les FPGA (Field Programmable Gate Array)(Field Programmable Gate Array)
LUT
LUT
LUT
LUT
Un ensemble de mémoires LUTUn ensemble de mémoires LUT
Un ensemble deUn ensemble dechemins de chemins de routageroutage
A
B
C
ET
OU S = A.B + C
Programmation des mémoiresProgrammation des mémoireset établissement des connexionset établissement des connexions
2.1.4 - Les FPGA2.1.4 - Les FPGA
A
B
C
ET
OU S = A.B + C
Cellule mémoire
Connexions par transistors MOSConnexions par transistors MOS
2.2 - Classification des technologies2.2 - Classification des technologies
Logique standardLogique standard
LogiqueLogique
ASICASIC
PLDPLD
PALPAL CPLDCPLD
EPROMEPROM
EEPROM/FLASHEEPROM/FLASH
FPGAFPGA
anti-fusiblesanti-fusibles
SRAMSRAM
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êmeconfondus.
Spécification
Conception
Vérification
Réalisation
3 - Architecture des circuits FPGA 3 - Architecture des circuits FPGA (XILINX)(XILINX)
• Un FPGA réalise une fonction logique complexe. Il est Un FPGA réalise une fonction logique complexe. Il est programmableprogrammable, et , et re-programmablere-programmable dans son dans son environnementenvironnement
• Les circuits FPGA XILINX sont disponibles en de Les circuits FPGA XILINX sont disponibles en de nombreuses configurations de taille, de vitesse et de nombreuses configurations de taille, de vitesse et de prixprix
• Des outils logiciels puissants et automatiques Des outils logiciels puissants et automatiques permettent de réaliser facilement un système sur permettent de réaliser facilement un système sur FPGA.FPGA.
Evolution de la technologie des circuits Evolution de la technologie des circuits FPGA XILINXFPGA XILINX
198 5 /8 6 1994 1995 1996/97 2000 2001Nom bre deTra nsist ors 8 5 K 3 ,5 M 6 M 1 2 M 7 5 M > 1 0 0 MNom bre de Port es 8 0 0 2 5 K 5 0 K 1 0 0 K 5 0 0 K 1 0 MCouches deMét a l 2 3 3 3 - 4 4 - 5 8
Famille # portes # E/S # bascules # RAM bits # CLB
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 180 - 512 1728 - 27K 32K - 131K 384-6144
VIRTEX2 40K - 10M 88 - 1108 256 - 61K 72K - 3.4M 64-15360*
Les différentes « familles » FPGA XILINXLes différentes « familles » FPGA XILINX
* produits obsolètes
3.1 - Architecture générale3.1 - Architecture générale
• Un FPGA est un réseau (matrice) de Un FPGA est un réseau (matrice) de blocs combinatoires et séquentiels (CLB)blocs combinatoires et séquentiels (CLB)
• Des blocs dDes blocs d’’entrée/sortie (IOB) sont entrée/sortie (IOB) sont associés aux broches du circuitassociés aux broches du circuit
• Les CLB et IOB sont interconnectés entre Les CLB et IOB sont interconnectés entre eux par des dispositifs variéseux par des dispositifs variés
• Les matrices sLes matrices s’’organisent de 8x8 à organisent de 8x8 à 128x120128x120
3.1 - Architecture générale3.1 - Architecture générale
CLBCLB
IOBIOB
matrices dematrices deconnexionconnexion
lignes delignes deconnectionsconnections
3.2 - Les interconnexions 3.2 - Les interconnexions (directes)(directes)
CLB CLB
CLB CLB
2 ns
5 nsDELAIS DEPENDANTDELAIS DEPENDANT
DU ROUTAGE !!!DU ROUTAGE !!!
3.2 - Les interconnexions 3.2 - Les interconnexions (matrices)(matrices)
CLB CLB
CLB CLB
3.2 - Les interconnexions (lignes)3.2 - Les interconnexions (lignes)
CLB CLB
CLB CLB
3.3 - Structure des CLB 3.3 - Structure des CLB
• Une table de transcodage combinatoire (LUT) Une table de transcodage combinatoire (LUT) pouvant implanter :pouvant implanter :– deux fonctions indépendantes à 4 variablesdeux fonctions indépendantes à 4 variables– une fonction complète à 5 variablesune fonction complète à 5 variables– une fonction incomplète à 6 variablesune fonction incomplète à 6 variables
• Deux cellules séquentielles (bascules D)Deux cellules séquentielles (bascules D)• Des multiplexeurs de configurationDes multiplexeurs de configuration
3.3.1 - Structure d3.3.1 - Structure d’’un CLB 3000un CLB 3000
3.3.2 - Structure d3.3.2 - Structure d’’un CLB 4000un CLB 4000
3.3.3 - Structure d3.3.3 - Structure d’’un CLB un CLB SPARTANSPARTAN
3.4 - Structure des IOB 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.1 - Structure des IOB (XC3000)
3.4.2 - Structure des IOB (XC4000)3.4.2 - Structure des IOB (XC4000)
3.4.3 - Structure des IOB 3.4.3 - Structure des IOB (SPARTAN)(SPARTAN)
3.5 - Canaux de routage3.5 - Canaux de routage
Routage inter-CLB
Matrices d'interconnexions(Programmable Switch Matrix)
3.6 - Utilisation des CLB en 3.6 - Utilisation des CLB en mémoiresmémoires
3.7 - Configuration des FPGA3.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)Mode de configuration série (EEPROM série)
Circuit «principal» Circuits en «daisy chain»
Mode de configuration parallèle Mode de configuration parallèle (EPROM parallèle)(EPROM parallèle)
Mode de configuration parallèle asynchrone Mode de configuration parallèle asynchrone (mode périphérique de processeur)(mode périphérique de processeur)
3.8 - Evolution des produits 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
La technologie évolue (premier FPGAavec une technologie 0.25 microns)et la densité des circuits augmente...
...tandis que la consommation diminue
3.8.1 - XC4000X 3.8.1 - XC4000X
Fréquences inter-circuits Fréquences intra-ciruits
Les performances augmentent avecla finesse de la technologie
3.8.1 - XC4000X 3.8.1 - XC4000X
Les produits XC4000(X)
CLB Logic Block SelectRAMDevice # gates Array Cells RAM bits bits Max I/O
XCV50 58K 16 x 24 1728 32768 24576 180XCV100 109K 20 x 30 2700 40960 38400 180XCV150 164K 24 x 36 3888 49152 55296 260XCV200 236K 28 x 42 5292 57344 75264 284XCV300 323K 32 x 48 6912 65536 98304 316XCV400 468K 40 x 60 10800 81920 153600 404XCV600 661K 48 x 72 15552 98304 221184 512XCV800 888K 56 x 84 21168 114688 301056 512XCV1000 1.1M 64 x 96 27648 131072 393216 512
3.8.2 - La famille VIRTEX 3.8.2 - La famille VIRTEX
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 3.8.3 - La famille VIRTEX-II
Vaste choix de formats et de standards d'entrées/sorties grâceaux canaux différentiels configurables
Technologie plus rapide :certaines applications DSPdeviennent concurentielles
3.8.3 - La famille VIRTEX-II 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 3.8.3 - La famille VIRTEX-II
3.8.3 - La famille VIRTEX-II 3.8.3 - La famille VIRTEX-II
CLB SelectRAMDevice # gates Array SlicesMax RAM KbitsMultipliers Kbits Max I/O
XC2V40 40K 8 x 8 256 8 4 72 88XC2V80 80K 16 x 8 512 16 8 144 120XC2V250 250K 24 x 16 1536 48 24 432 200XC2V500 500K 32 x 24 3072 96 32 576 264XC2V1000 1M 40 x 32 5120 160 40 720 432XC2V1500 1.5M 48 x 40 7680 240 48 864 528XC2V2000 2M 56 x 48 10752 336 56 1008 624XC2V3000 3M 64 x 56 14336 448 96 1728 720XC2V4000 4M 80 x 72 23040 720 120 2160 912XC2V6000 6M 96 x 88 33792 1056 144 2592 1104XC2V8000 8M 112 x 10446592 1456 168 3024 1108XC2V10000 10M 128 x 12061440 1920 192 3456 1108
3.8.3 - Architecture VIRTEX-II 3.8.3 - Architecture VIRTEX-II
Matrice de « Slices »
Blocs d'E/SBlocs de mémoire Multiplieurs 18x18
Générateurs d'horloge
4 - Méthodologie de conception 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 conception4.1 - Le flot de conception1- 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
Les IP sont des macro-celulles (pré-placées et/ou pré-routées)disponibles comme des cellules de bibliothèque proposant sousforme de « boites noires » des fonctions complexes entièrementsimulables et respectant la propriété industrielle.
On transpose directement la méthodologie de conception d'unsystème complexe (associant logique discrète, composantsstandards, 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.
4.2 - Les 4.2 - Les Intelectual Properties (IP)Intelectual Properties (IP)
SpécificationC
SpécificationVHDL
Bibliothèquestandard
BibliothèqueIP
COMPILATEUR
PLACE & ROUTE
Rétro-annotationtemporelle
Simulation
Modèle decomposant
Programmationdu composant
Validation
Les bibliothèques dLes bibliothèques d'Intelectual Properties'Intelectual Properties
IP Type Provider
C2 91 0a Microprogram cont roller CAST Inc.C8051 Micro Cont roller CAST Inc.ARC32 32-bit Conf igurable ARC Cores
RISC ProcessorD80530 8 -bit Micro Cont roller CAST Inc.C2 901 Microprocessor Slice CAST Inc.W 65C02 S Micro Processor West ern Design Cent erM ini-RISC Micro Processor OpenCores.orgOpenRISC-1 000 RISC Processor OpenCores.orgLavaCORE Jav a Microprocessor Deriv at ion Syst em Inc.Free -RISC8 Microprocessor The Free IP ProjectLEON-1 SPARC-com pat ible European Space Agency
Micro Processor (ESA)
Les bibliothèques dLes bibliothèques d'Intelectual Properties'Intelectual Properties
IP Applicat ion
Encodeur Reed-Solom on Transm ission de données
Décodeur Reed-Solom on Transm ission de données
Inter face PCI-X Bus de com m unicat ion
Cont rôleur HDLC Connect ion couche physique
Codeur /décodeur ADPCMTransm ission, com pression
4.3 - La production en volume : HardWire4.3 - La production en volume : HardWireTMTM
Le coût de production d'une solution sur FPGA devientconsidérable sur de grands volumes. Le surcoût introduitpar les capacités de re-programmabilité devient prohibitif.
=> Transformation FPGA -> ASIC (Gate Array)
La technologie HardWireTM permet le passage d'une versionprototype (reprogrammable) validée à une version de
production en grande série.
Les cibles FpgASIC sont totalement compatibles et vérifiées.
Volume
Durée de vie du produit
Fin de vie
Début de production
FPGA FPGACircuits FpgASIC
HardWire
5 - Application des FPGAs :5 - Application des FPGAs :Les machines (re)configurablesLes 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..).
FPGA
FPGA
FPGA
FPGA
Mem. Mem.
Mem.
Processeurhôte
Le concept de FCCMLe concept de FCCM
Plusieurs circuits FPGARéseau d'interconnexion
Mémoiresde travail
Machine FPGA Processeur Mémoire Bus
9204/FPGA 2 x XC4025 T9000 64Ko + 8Mo Transput er DS-LinkDVC1 2 x XC4013 1Mo + FIFOs SbusEDgAR-2 4 x XC4013 PCIFunctional Memory Computer8 x XC4010 + 3 x XC4013 1Mo PCILIRMM 2 x XC4013 TMS 320C40 2 x 1Mo ISA ou SbusMARC-1 25 x XC4005 6 Mo SbusMORRPH-ISA 6 x XC4025 DédiéCARMeN VIRTEX XCV1000 ARM 8Mo + 2Mo PCI, CAN, et c...OPART 2 x XC4028EX Pent ium + PPC2Mo + FIFO Com pact PCIARDOISE ATMEL At 40K DSP 2Mo / m odule Dédié
5.1 - Quelques exemples de 5.1 - Quelques exemples de FCCM FCCM
5.1.1 - La machine ARMEN5.1.1 - La machine ARMENLaboratoire d'Informatique de BrestLaboratoire d'Informatique de BrestUniversité de Bretagne OccidentaleUniversité de Bretagne Occidentale
Processeurs Transputer T805
FPGA XC3090
5.1.2 - La machine CARMeN5.1.2 - La machine CARMeNSIDSASIDSA
5.2 - Programmation des FCCM : 5.2 - Programmation des FCCM : Le Le CODESIGNCODESIGN
Application
?
DSP Réseau FPGA
Les projets d'outils de CODESIGNLes projets d'outils de CODESIGN
CO SI IRISA (Rennes) ASIC : Syst em On Ch ipSYN D EX INRIA Trait em en t du signalM CSE IRESTE (Nan t es) Spécif icat ion pou r le CodesignM O SARTS Univ ersit é de Nice-An t ipolis Télécom . : par t it ionnem en t LIRM M Univ ersit é de Mon t pellier Télécom . Sy n t hèse et v ér if icat ionSKIPPER Univ . de Clerm on t -Fer rand Parallélisat ion de code en TICO SM O S TIMA (Grenoble) IP + processeu rs classiquesPO LIS Univ . de Berkeley Concept ion m ix t e / FSMCO W ARE Belgique IP et st andardisat ionCod e X Univ . de KaiserSlau t ern Réseaux m ix t es syst oliquesCH IN O OK Univ . de Wash ingt on Sy st èm es m ix t es indust r iels
Form alisat ion des langages de descr ipt ion :
H a n d e lC Anglet er re Langage de descr ipt ion m ix t e (OCCAM)LCC Univ . de Virgin ie Langage m ix t e DSP + FPGASyst e m C COWARE / Fron t ier / Sy nopsy sLangage et com pilat eu r C+ + m ix t e
5.2.1 - Les problèmes ouverts du 5.2.1 - Les problèmes ouverts du CoDesignCoDesign
Spécification de haut niveau(C, C++)
Analysedu code
Bibliothèquestandard et IP
Extractiondu parallélisme
Analyse des dépendancesde données
Analyse des ressoucesmémoire
Compilateurséquentiel
DSP
Place / RouteFPGA
Gestion descommunication
s
Modèled'architecture
5.2.2 - Le flot classique de conception5.2.2 - Le flot classique de conception
Modèle niveau systèmeC / C++
ANALYSE
Résultats de test
Dév
elop
pem
ent
DescriptionVHDL / Verilog
SIMULATION
SYNTHESE
Traduction
5.2.2 - Un nouveau standard : SystemC5.2.2 - Un nouveau standard : SystemCTMTM
(Synopsys + CoWare + Frontier Design : (Synopsys + CoWare + Frontier Design : www.systemc.orgwww.systemc.org))
Modèle SystemC
Amélioration
Modèle temporel
Partitionnement
Modèle Bus
Amélioration
Modèle cyclesynthétisable
Modèle abstrait RTOS
Amélioration
Cible RTOS
Essais d'architectures
Analyse de performances
Harware / Software
6 – La Reconfiguration Dynamique des FPGA6 – 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é
ARDOISE : Architecture Reconfigurable Dynamiquement Orientée Image et Signal Embarqué
La machine ARDOISE (Atmel)La machine ARDOISE (Atmel)Action incitative inter-GDR (ETIS)Action incitative inter-GDR (ETIS)
Prototype d’un module
Carte mère + 3 modules
Objectifs du projet ARDOISEObjectifs 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 programmables2. 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, traitementet visualisation en temps réel
• Proc esseur front-end de c ontrôle des c onfigurations ADSP SHARC 21161• Rec onfiguration partielle et dynamique des c irc uits FPGA ATMEL AT40K40
Architecture d’ARDOISE :Architecture d’ARDOISE :
ARDOISE = application du principe de ARDOISE = application du principe de reconfiguration dynamique en traitement reconfiguration dynamique en traitement
d'images :d'images :
Image i
Image i-1
Image i-2
Image i+1
op1 op2
op1
Conf. Deriche1
FPGA
GTI1
FPGA
GTI2
GTI1 GTI2
Deriche 1
Mémoire
256kx32
Mémoire
256kx32
BC
IN OUT
Exec. Deriche1 / Conf. Deriche 2
FPGA
GTI1
FPGA
GTI2
GTI1 GTI2
Deriche 1
Mémoire
256kx32
Mémoire
256kx32
BC
IN OUT
Exec. Deriche 2 / Conf. Contours
FPGA
GTI1
FPGA
GTI2
GTI1 GTI2
Deriche 2
Mémoire
256kx32
Mémoire
256kx32
BC
IN OUT
Exec. Contours / Conf. Fermeture 1
FPGA
GTI1
FPGA
GTI2
GTI1 GTI2
Contours
Mémoire
256kx32
Mémoire
256kx32
BC
IN OUT
Exec. Fermeture 1 / Conf. Fermeture 2
FPGA
GTI1
FPGA
GTI2
GTI1 GTI2
Fermeture1
Mémoire
256kx32
Mémoire
256kx32
BC
IN OUT
Exec. Fermeture 2 / Conf. région 1
FPGA
GTI1
FPGA
GTI2
GTI1 GTI2
Fermeture2
Mémoire
256kx32
Mémoire
256kx32
BC
IN OUT
Exec. Région 1 / Conf. région 2
FPGA
GTI1
FPGA
GTI2
GTI1 GTI2
Région1
Mémoire
256kx32
Mémoire
256kx32
BC
IN OUT
Exec. Région 2 / Conf. Deriche 1
FPGA
GTI1
FPGA
GTI2
GTI1 GTI2
Région2
Mémoire
256kx32
Mémoire
256kx32
BC
IN OUT
Exec. Deriche 1 / Conf. Deriche 2
FPGA
GTI1
FPGA
GTI2
GTI1 GTI2
Deriche 1
Mémoire
256kx32
Mémoire
256kx32
BC
IN OUT
ARDOISE : Estimation de performancesARDOISE : Estimation de performances
Application de segmentation d’imagesApplication de segmentation d’images
7 – Des FPGA aux SOPC7 – Des FPGA aux SOPCSystems On Programmable ChipsSystems 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-Pro7.1 – Architecture des Virtex2-Pro
TransceiversRocketIO 622 Mbps
TransceiversRocketIO 622 Mbps
TransceiversRocketIO 622 Mbps
TransceiversRocketIO 622 Mbps
Architecture FPGAVitexII
Processeur PowerPC32 bits 400MHz
7.1 – Architecture des Virtex2-Pro7.1 – Architecture des Virtex2-Pro
PPC405
7.1 – Architecture des Virtex2-Pro7.1 – Architecture des Virtex2-Pro
PPC405
EthernetI/O
Mémoire
Internal ConfigurationAcces Port
Auto-reconfiguration complète de la plate-forme !
7.2 – Architecture des Virtex4-multiPlatform7.2 – Architecture des Virtex4-multiPlatform
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 LX FPGA Devices
Virtex-4 SX FPGA Devices
Virtex-4 FX FPGA Devices
7.2 – Architecture des Virtex4-multiPlatform7.2 – Architecture des Virtex4-multiPlatform
Virtex-4 LX FPGA Device Combinations
960960960768640640448320Max SelectIO™
50,648,44841,863,29631,818,62424,101,44018,315,52012,647,6808,037,3124,875,392Configuration Memory Bits
----------------RocketIO™ Serial Transceivers
-----------------10/100/1000 Ethernet MAC Blocks
----------------PowerPC™ Processor Blocks
9696968064644832XtremeDSP™ Slices
480480480384320320224160Max Differential I/O Pairs
88884440Phase-matched Clock Dividers (PMCD)
121212128884Digital Clock Managers (DCM)
6,0485,1844,3203,6002,8801,7281,296864Total Block RAM (kbits)
336288240200160967248Block RAM/FIFO w/ECC (18 kbits each)
200,448152,064110,59280,64059,90441,47224,19213,824Logic Cells
XCE4LX200
XCE4VLX160
XCE4VLX100
XCE4VL80
XCE4VLX60
XCE4VLX40
XCE4VLX25 --
EasyPath™ Cost Reduction Solutions
XC4VLX200
XC4VLX160
XC4VLX100
XC4VLX80
XC4VLX60
XC4VLX40
XC4VLX25
XC4VLX15Feature/Product
7.2 – Architecture des Virtex4-multiPlatform7.2 – Architecture des Virtex4-multiPlatform
Virtex-4 SX FPGA Device Combinations
640448320Max SelectIO
24,088,32014,476,6089,651,072Configuration Memory Bits
------RocketIO Serial Transceivers
------10/100/1000 Ethernet MAC Blocks
------PowerPC Processor Blocks
512192128XtremeDSP™ Slices
320224160Max Differential I/O Pairs
440Phase-matched Clock Dividers (PMCD)
884Digital Clock Managers (DCM)
5,7603,4562,304Total Block RAM (kbits)
320192128Block RAM/FIFO w/ECC (18 kbits each)
55,29634,56023,040Logic Cells
XCE4VSX55
XCE4VSX35
XCE4VSX25 EasyPath Cost Reduction Solutions
XC4VSX55
XC4VSX35
XC4VSX25Feature/Product
7.2 – Architecture des Virtex4-multiPlatform7.2 – Architecture des Virtex4-multiPlatformVirtex-4 FX FPGA Device Combinations
896576448320320Max SelectIO
50,900,35222,262,01615,838,4647,641,0885,017,088Configuration Memory Bits
24161280RocketIO Serial Transceivers
4442210/100/1000 Ethernet MAC Blocks
22211PowerPC Processor Blocks
192128483232XtremeDSP™ Slices
448288224160160Max Differential I/O Pairs
88400Phase-matched Clock Dividers (PMCD)
2012844Digital Clock Managers (DCM)
9,9364,1762,5921224648Total Block RAM (kbits)
5522321446836Block RAM/FIFO w/ECC (18 kbits each)
142,12856,88041,90419,22412,312Logic Cells
XCE4VFX140
XCE4VFX60
XCE4VFX40
XCE4VFX20 --EasyPath Cost
Reduction Solutions
XC4VFX140
XC4VFX60
XC4VFX40
XC4VFX20
XC4VFX12Feature/Product
7.3 – Architecture Excalibur-ARM7.3 – Architecture Excalibur-ARM
7.4 – Architecture XPP7.4 – Architecture XPPTMTM de PACT 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
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…
8 – CONCLUSION8 – CONCLUSION
9 – PISTES9 – PISTES
Le challenge scientifique est aujourd’hui de concevoir des plate-formes 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
ARD1 ARD2DSPProc.
Reconf. HAL Reconf. HAL
MV MM MM MV MV MMnoyau noyau noyau noyau noyau noyau
Communications flexibles Communications flexibles
noyau noyau
Interconnexions (réseau, bus...)
OS pour SOC+ARD
reconfigurablenon-reconfigurable
Application
Modèle logiciel des plate-formesModèle logiciel des plate-formes
OS pour ARD
PROCESSEUR CENTRAL
MACHINE VIRTUELLEMODULE MATERIEL
main
entrepotde config.
OS_createMV()
OS_createMM()
Zone reconfigurable
Gestiondes
communications
réseau de communicationflexible
OS pour ARD
PROCESSEUR CENTRAL
mémoiresde tâches
MODULE MATERIEL MACHINE VIRTUELLE
réseau de communicationflexible
Zone reconfigurable
OS pour ARD
PROCESSEUR CENTRAL
changement de contexte
changementsde contexte
Migration
soft / soft
Migrationhard / soft
Préemptionmatérielle
MODULE MATERIEL MACHINE VIRTUELLE
Zone reconfigurable
Ordonnancement
Modélisation UML des plate-formesModélisation UML des plate-formes
Flot de modélisation, d’abstraction et de raffinementFlot de modélisation, d’abstraction et de raffinement
http://oversoc.ensea.frhttp://oversoc.ensea.frProjet ANR 2005-2008Projet ANR 2005-2008