ย Technologie FPGA, Evolution et Projectionsย
Le marchรฉ de la conception dโapplication ร base de FPGA intรฉresse de plus en plus les รฉditeurs traditionnels de CAO. Jusquโร une รฉpoque rรฉcente, la conception dโun systรจme sur puce (SOC) nโรฉtait accessible quโaux sociรฉtรฉs de grande taille, du fait des multiples exigences quโelle induisait (complexitรฉ et diversitรฉ des compรฉtences requises, coรปts รฉlevรฉs des outils de dรฉveloppement matรฉriel et logiciel, et forts volumes nรฉcessaires pour justifier le coรปt de conception dโun ASIC). Aujourdโhui, deux รฉvรฉnements ont changรฉ la donne : lโavรจnement des derniรจres gรฉnรฉrations de FPGA et la disponibilitรฉ des blocs de propriรฉtรฉ intellectuelle (IP), utilisable notamment sur ces matrices programmables, mettent la technologie SOC ร la portรฉe dโun public nettement plus large. Ainsi, cette technologie, qui ciblait principalement les domaines : public, mรฉdical, tรฉlรฉcommunication et automobile, devient intรฉressante pour des applications plus simples et portant sur des volumes moins importants. Et ceci particuliรจrement depuis que les FPGA sont proposรฉs ร un prix trรจs faible (0.0001dollar par porte). De plus, lโoffre en propriรฉtรฉ intellectuelle pour ces circuits, ร prรฉsent est trรจs variรฉe et performante. Mentionnons simplement la richesse des cลurs des processeurs : des microcontrรดleurs 8 et 16 bits aux microprocesseurs et DSP 32 bits de haute performance, grรขce notament ร lโarchitecture VLIW (Very Large Instruction Word). Pour mettre en ลuvre ces applications SOC, les concepteurs doivent disposer dโoutils de CAO รฉlectronique et de dรฉveloppement de logiciels enfouis. Dans les PME, les premiers systรจmes sur puce remplacent gรฉnรฉralement des produits existants rรฉalisรฉs ร lโaide de plusieurs composants (microcontrรดleur, pรฉriphรฉriques, etc.). Afin de mener ร bien leurs projets, ces sociรฉtรฉs ont besoin dโun jeu de blocs IP fonctionnant ensemble et dโun fournisseur capable de garantir cette interopรฉrabilitรฉ, et non dโune mรฉthodologie gรฉnรฉrique de conception SOC. Les cลurs IPs et les pรฉriphรฉriques choisis pour ces systรจmes sont souvent des copies de composants discrets associรฉs ร des outils de dรฉveloppement logiciel, de haute qualitรฉ et de prix modique, mais proposรฉs par des firmes diffรฉrentes.
Limites de FPGA
Lโemploi de FPGA est devenu, ร juste titre, une solution privilรฉgiรฉe pour produire rapidement des circuits. Pourtant, la complexitรฉ croissante des plus grandes matrices engendre de graves problรจmes ร lโรฉtape de routage. Entre les ASIC et les FPGA de haute complexitรฉ, la durรฉe du procรฉdรฉ de placement-routage sous contrainte temporelle varie beaucoup avant de converger vers la solution optimale .
Les FPGA ont certes de nombreux atouts, mais les concepteurs de systรจmes ont tendance ร se tourner, par habitude, vers cette solution sans regarder si elle rรฉpond correctement aux objectifs de performances et de coรปt, voire si elle sโinscrit bien dans le calendrier de dรฉveloppement de leurs projets. Pourtant, les FPGA de forte complexitรฉ induisent des limitations sรฉvรจres qui peuvent pรฉnaliser le bon dรฉroulement dโune conception. Certaines applications, dans le domaine des rรฉseaux et communications notamment, exigent des fonctions complexes et un nombre รฉlevรฉ de broches, ceci assorti de performances toujours croissantes. De ce fait, les plus grands rรฉseaux logiques programmables choisis pour rรฉaliser ces projets sont frรฉquemment employรฉs au-delร de leurs possibilitรฉs physiques, des limitations inhรฉrentes ร leurs architectures. Avec de tels FPGA, il faut souvent plusieurs mois avant de converger vers un routage satisfaisant au niveau des performances temporelles (Figure 2.3). Dans ce cas, la convergence vers un timing optimal est presque toujours un procรฉdรฉ long, imprรฉvisible, onรฉreux, et extrรชmement laborieux.
Au niveau des FPGA de forte complexitรฉ, la difficultรฉ dโutilisation de ces matrices dans des applications de hautes performances rรฉside dans le principe dโinterconnexions programmables pour le routage des signaux. Et ceci nโest pas entiรจrement dรป au fait que la quantit รฉ de ressources de routage disponibles est plus faible dans les FPGA basรฉs sur des points SRAM que dans les technologies concurrentes. Entre en jeu รฉgalement le retard substantiel, de type R-C, inhรฉrent ร ces circuits programmables par SRAM (Figure 2.4 : Chaque point dโaiguillage consomme au moins cinq transistors pour la Ram et un transistor interrupteur de grande taille). Ce dรฉlai de propagation rend les performances du composant hautement sensibles au moindre changement dans un chemin de routage .
Technologie FPGA du Xilinx
Dรจs lโorigine, les FPGA, tels que Xilinx les a inventรฉs, avaient la rรฉputation de mettre ร disposition de lโutilisateur une conception rapide, fiable et simple. Les progrรจs technologiques ont permis dโaccรฉder ร des matrices logiques programmables de plusieurs millions de portes. Cette complexitรฉ actuelle reste absolument gรฉrable et permet la rรฉalisation dโapplications trรจs performantes moyennant une bonne connaissance des ressources offertes et le respect dโune mรฉthodologie de conception.
Les principales caractรฉristiques de ces trois familles sont :
โฆย Complexitรฉs allant de 1500 ร plus de 8 millions de portes.
โฆย Faible consommation.
โฆ Grande souplesse dโutilisation des entrรฉes/sorties avec adaptation dโimpรฉdance (Virtex-II) et configuration en mode diffรฉrentiel (Spartan-IIE, Virtex-E et Virtex-II).
โฆย Fonctions mรฉmoire (distribuรฉe et blocs de Ram).
โฆย Dispositifs de gestion des horloges (DLL et DCM).
โฆ Multiplieurs cรขblรฉs (Virtex-II) .
FPGA Virtex-II Pro
Xilinx a mis depuis peu sur le marchรฉ, une nouvelle technologie de circuits FPGA intรฉgrants de nouvelles fonctionnalitรฉs, ces derniers permettent la rรฉalisation dโarchitectures qui auparavant sโavรฉraient trรจs compliquรฉes ร entreprendre. Parmi ces nouveaux circuits, le VIRTEX-II PRO (Figure 2.11) qui est un composant FPGA intรฉgrant un cลur de processeur PowerPC 405 de chez IBM pouvant fonctionner ร plus de 300MHz. Afin de rendre le co-design plus simple ร rรฉaliser, la famille de composant Virtex-II-Pro possรจde plusieurs atouts tel que :
โฆย lโintรฉgration dโun ou deux cลurs de processeur powerPC405
โฆ un grand nombre de slices pouvant atteindre 44.096 unitรฉs permet dโimplรฉmenter des algorithmes dont la complexitรฉ les rend gourmand en consommation des ressources logiques
โฆ des blocs de mรฉmoire de 18Kb sont aussi disponible ce qui diminuera lโaccรจs vers des ressources externes et ce qui peut รชtre fatal pour le circuit surtout du point de vue consommation dโรฉnergie
โฆย des multiplieurs 18×18 bits, des DCM (Digital Clock Manager).
Pour cela Xilinx fourni des IPs soft (Figure 2.12) รฉcrites en langage VHDL qui permettent dโexploiter le PowerPC405 et de lui fournir tous les pรฉriphรฉriques nรฉcessaires ร son fonctionnement. Les premiรจres IPs ร implรฉmenter autour du processeur sont le PLB ยซ Processor Local Bus ยป et le ยซOn Chip Memory Controllerยป, la premiรจre constitue le bus de communication sur lequel viennent se greffer dโautres IPs, quant au ยซOn Chip Memory Controller ยป il permet de connecter le PowerPC405 avec les Bramโs du FPGA ou bien avec des RAMs externes oรน sera logรฉ le code ร exรฉcuter.
|
Table des matiรจres
INTRODUCTION
CHAPITRE 1 : CONTEXTE GENERAL DE LA THESE ET MOTIVATIONS
1.1 Conception des systรจmes embarquรฉs
1.2 Contribution
1.3 Plan du mรฉmoire
CHAPITRE 2 : SYSTEME SUR PUCE
2.1 Technologie ASIC, Evolution et Projection
2.2 Technologie FPGA, Evolution et Projections
2.2.1 Introduction
2.2.2 Limites de FPGA
2.2.3 Technologie FPGA du Xilinx
2.2.4 La famille FPGA Xilinx Virtex-II
2.2.5 FPGA Virtex-II Pro
2.2.6 Flot de conception FPGA
2.2.6.1 Vue Gรฉnรฉrale
2.2.6.2 Conception et Synthรจse
2.2.6.3 Design Hiรฉrarchique
2.2.6.4 Schรฉmatiques
2.2.6.5 Les รฉlรฉments des Librairies
2.2.6.6 Outil de Gรฉnรฉration de Cores
2.2.6.7 HDL et synthรจse
2.2.6.8 Simulation fonctionnelle
2.2.6.9 Contraintes
2.2.6.10 Translation en NetList
2.2.6.11 Implรฉmentation
2.2.6.12 Mapping
2.2.6.13 Placement et Routage
2.2.6.14 Gรฉnรฉration de flot de bits
2.2.6.15 Vรฉrification
2.2.6.16 Analyse temporelle statique
2.2.6.17 Vรฉrification sur le circuit
2.3 Module ADM-XRC-II
2.3.1 Prรฉsentation de la plateforme ADM-XRC-II
2.3.2 Spรฉcifications techniques du module ADM-XRC-II
2.3.3 Signaux du bus local
2.3.4 Fonctions de commande plateforme
2.4 Mรฉthodologies de Conception SOC et IPs
2.4.1 Les composants rรฉutilisables
2.4.2 Mรฉthodologie de rรฉutilisabilitรฉ
2.4.3 Les composants virtuels IPs
2.5 IPs Paramรฉtrables et SOPC
2.6 Reconfigurabilitรฉ dynamique
2.7 Conclusion
CHAPITRE 3 : ALGORITHMES EVOLUTIONNAIRES MONO ET MULTIOBJECTIFS
3.1 Optimisation difficile
3.2 Mรฉtaheuristiques
3.3 Capacitรฉ des mรฉtaheuristiques ร sโextraire dโun minimum local
3.4 Fonction dโobjectif et fonction dโadaptation
3.5 Optimisation monobjectif
3.5.1 La mรฉthode du recuit simulรฉ
3.5.2 La mรฉthode de recherche avec Tabous
3.5.3 Algorithme gรฉnรฉtique
3.5.3.1 Introduction ร lโAG
3.5.3.2 Algorithme gรฉnรฉtique simple ยซ AGS ยป
3.5.3.3 Algorithme Gรฉnรฉtique Canonique ยซ AGC ยป
3.5.3.4 Principe de lโAGC
3.5.3.5 Reproduction
3.5.3.6 Croisement
3.5.3.7 Mutation
3.5.3.8 Les paramรจtres de lโAG
3.5.3.9 Gรฉnรฉration dโune nouvelle population
3.5.3.10 Elitisme
3.5.3.11 Etat de lโart de la convergence de lโAGC
3.6 Optimisation multiobjectifs
3.6.1 Objectifs multiples avec la mรฉthode dโagrรฉgation
3.6.2 Mรฉthodes non-agrรฉgatives
3.6.2.1 Pareto Archived Evolution Strategy ยซ PAES ยป
3.6.2.2 Strength Pareto Evolutionary Algorithm ยซ SPEA ยป
3.6.3 Objectifs multiples avec le critรจre de Pareto
3.7 Lโalgorithme NSGA-II
3.7.1 Classification des individus
3.7.2 Prรฉservation de la diversitรฉ
3.7.3 Opรฉrateur de comparaison Crowded
3.7.4 Boucle principale de lโalgorithme NSGA -II
3.7.5 Convergence et diversitรฉ des solutions des algorithmes multiobjectifs
3.7.6 Implรฉmentation de NSGA -II
3.7.7 Distribution du calcul des performances
3.8 Conclusion
CHAPITRE 4 : EXPLORATION ARCHITECTURALE
4.1 IPs Processeurs et Microarchitecture
4.2 Evaluation des Performances
4.3 Evaluation de la consommation dโรฉnergie
4.3.1 Techniques employรฉes pour la rรฉduction de la consommation dโรฉnergie
4.3.2 SimplePower
4.4 Evaluation de la surface silicium
4.5 Exploration de lโespace architectural ร base de simulation
4.5.1 Le Simulateur SimpleScalar
4.5.2 Paramรจtres de simulation
4.5.2.1 Paramรจtres caches
4.5.2.2 Paramรจtres de Pipeline et les unitรฉs fonctionnelles
4.5.3 Reprรฉsentation chromosomique: codage dโindividus
4.5.4 Dรฉcodage de la solution
4.5.5 Rรฉsultats de la simulation
4.6 Exploration ร base dโEmulation
4.6.1 IP de processeur Leon
4.6.2 Caractรฉristiques configurables du Leon
4.6.2.1 Utilisation du processeur
4.6.2.2 Utilisation du compilateur
4.6.2.3 Processeur et mรฉmoires
4.6.3 Intรฉgration de lโIP Leon sur le FPGA
4.6.3.1 Structure Hard
4.6.3.2 Compilation dโune application pour initialiser la ROM
4.6.4 Le processeur Leon dans la bocle dโexploration
4.6.4.1 Objectif
4.6.4.2 Architecture HARD de la plateforme dโรฉmulation
4.6.4.3 Structure Soft cรดtรฉ PC
4.6.5 Rรฉsultats de lโรฉmulation
4.6.5.1 Exploration exhaustive
4.6.5.2 Exploration avec lโalgorithme NSGA-II
4.7. Conclusion
CONCLUSION
Tรฉlรฉcharger le rapport complet