Présentation
En anglaisRÉSUMÉ
Les circuits FPGA (Field Programmable Gate Arrays) sont programmables, ou configurables, par l'utilisateur après fabrication. Cet article s’attache à détailler leur architecture générique (blocs, interconnexions, processeurs, configuration). Il donne également des exemples de familles de FPGA (Altera, Xilinx, Actel/Microsemi, ou encore Achronix) et fournit des outils de développement comme les langages de description, la synthèse logique, la synthèse de haut niveau, le placement/routage.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleABSTRACT
The Field Programmable Gate Arrays (FPGAs) circuits are programmable or configurable by the user after fabrication. This article details their generic architecture (blocs, interconnection, processors, configuration). It also provides examples of FPGA families ( (Altera, Xilinx, Actel/Microsemi and even Achronix) and development tools such as description languages, logic synthesis, high-level synthesis and placement/routing.
Auteur(s)
-
Olivier SENTIEYS : Professeur à l'École nationale supérieure des sciences appliquées et de technologie (ENSSAT) de l'Université de Rennes 1 à Lannion - Chercheur et responsable du département architecture et de l'équipe-projet CAIRN commune au laboratoire IRISA et au Centre de recherche INRIA Rennes – Bretagne Atlantique
-
Arnaud TISSERAND : Chercheur au Centre national de la recherche scientifique (CNRS) dans le laboratoire IRISA et l'équipe-projet CAIRN à Lannion - Enseignant vacataire à l'École nationale supérieure des sciences appliquées et de technologie (ENSSAT) et l'École normale supérieure de Rennes
INTRODUCTION
Les FPGA (Field Programmable Gate Arrays) sont des circuits intégrés dont la fonctionnalité est entièrement programmable par l'utilisateur après fabrication. Ils constituent une alternative aux circuits ASIC (Application Specific Integrated Circuits) dont la fonctionnalité est totalement figée en fonderie.
Les FPGA sont un type particulier d'architecture reconfigurable. On parle de configuration pour leur processus de programmation. Différents types d'architectures reconfigurables se distinguent par le niveau de granularité des éléments programmables internes. Dans les FPGA, les éléments ont une fonctionnalité programmable à grain fin, c'est-à-dire pour chaque bit individuellement. Il existe des architectures reconfigurables à grain épais où la fonctionnalité est programmable au niveau des mots (par exemple 16 ou 32 bits).
Les FPGA utilisent les technologies les plus avancées disponibles à un moment donné (gravure 28 nm en 2012). Concevoir un ASIC dans ces technologies permettrait d'obtenir un système extrêmement performant, mais au prix d'un investissement colossal. Il faut, en effet, une équipe de conception importante, des outils coûteux et complexes, plusieurs mois de conception et enfin un budget important pour la fabrication. De plus, les délais de fabrication chez le fondeur peuvent être importants (quelques mois). Le temps de conception et vérification d'une solution FPGA est beaucoup plus court qu'en ASIC et nécessite moins d'efforts et de personnel. Bon nombre de détails techniques sont réglés par le fabricant du FPGA.
Les FPGA sont fabriqués en grands volumes, ce qui permet de partager les coûts de conception par tous les clients. Un FPGA coûte quelques euros, pour les plus simples, à quelques centaines (voire milliers) pour les plus complexes. Pour des petites séries, les FPGA sont bien plus accessibles que des ASIC. Bien entendu, pour des grands volumes, une solution ASIC est plus rentable.
Les mécanismes de configuration des FPGA réduisent les performances par rapport à des solutions ASIC. La vitesse est moindre et la consommation d'énergie supérieure. Mais le caractère reconfigurable permet d'optimiser le système dans le temps. On peut imaginer de mettre rapidement sur le marché une première solution, puis de l'améliorer dans le temps (Time-To-Market réduit) ou bien de supporter des nouveaux standards dans le temps sans devoir les « émuler » en logiciel.
Les FPGA fournissent les très hautes performances du matériel mais avec une utilisation simple et rapide par configuration logicielle. Ainsi, on les retrouve dans de nombreux domaines d'applications : calcul à hautes performances, systèmes embarqués, télécommunications, routeurs de réseaux, réseaux sans fil, traitement du signal et des images, imagerie médicale, vision par ordinateur, cryptologie, dispositifs de sécurité, capteurs biomédicaux, bioinformatique, prototypage de circuits, etc. Les FPGA sont devenus le support matériel de base de systèmes sur puce complets ou SoC (System on Chip). Toutes les fonctionnalités sont alors intégrées dans le FPGA.
MOTS-CLÉS
circuit intégré numérique circuit programmable architecture reconfigurable haute performance flexibilité
KEYWORDS
digital integrated circuit | programmable circuit | reconfigurable architecture | high performance | flexibility
DOI (Digital Object Identifier)
CET ARTICLE SE TROUVE ÉGALEMENT DANS :
Accueil > Ressources documentaires > Technologies de l'information > Technologies logicielles Architectures des systèmes > Architectures matérielles > Architectures reconfigurables FPGA > Applications
Cet article fait partie de l’offre
Électronique
(227 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
5. Applications
Les premiers FPGA étaient cantonnés à des applications d'interfaçage entre circuits intégrés au sein d'une carte électronique (mise en forme de signaux, gestion des entrées/sorties, fonction de décodage, retard variable de signaux, petits automates de contrôle, etc.). On parlait alors l'utilisation en Glu Logique.
Aujourd'hui, l'intégration d'importantes capacités de calcul, de mémorisation et de communication dans un seul FPGA leur permet de devenir des solutions incontournables dans de nombreuses applications. Ainsi, il n'est pas rare de rencontrer des solutions entièrement basées sur un circuit FPGA comme élément actif et, éventuellement, d'un ou plusieurs circuits de mémoire.
L'une des caractéristiques qui a fait, et continue de faire, le succès de FPGA est leur grande flexibilité du fait de la reconfiguration. Il est ainsi possible de corriger ou améliorer, dans une certaine mesure, un système après sa mise sur le marché. Les mises à jour du FPGA sont alors assez proches de mises à jour purement logicielles. De plus, les FPGA offrent un temps de développement et de mise sur le marché réduit par rapport à des solutions ASIC pour un investissement et un risque bien plus faibles. Cependant, ils offrent des performances moindres et une énergie consommée plus importante qu'en ASIC. Mais il est quand même possible de concevoir assez facilement des systèmes avec plusieurs milliards d'opérations par seconde (GOp · s–1) dans un FPGA récent.
Les FPGA ont toujours été très présents dans le domaine du calcul spécialisé. Les processeurs généralistes, comme ceux qui équipent nos ordinateurs domestiques et les serveurs, sont conçus pour manipuler des nombres entiers ou réels (approximation en virgule flottante) sur 32 ou 64 bits. Pour des tailles plus petites et des types de calculs particuliers, ils ne sont pas du tout efficaces.
en codage-décodage vidéo, les FPGA permettent de manipuler directement en parallèle des blocs d'images de 3 × 3 ou même 8 × 8 pixels sur 8 bits. Les différentes étapes d'un tel système peuvent être exécutées en Pipeline avec des hauts débits. Les différents blocs matériels sont optimisés pour leur tâche. Souvent un processeur logiciel (par exemple, μBlaze, NIOS) se charge de l'ordonnancement des tâches et de l'interfaçage.
En bio-informatique, les FPGA ont...
Cet article fait partie de l’offre
Électronique
(227 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Applications
BIBLIOGRAPHIE
-
(1) - HAUCK (S.), DEHON (A.), KAUFMANN (M.) - Reconfigurable computing. The theory and practice of FPGA-Based Computation. - Systems on Silicon (2007).
-
(2) - TESSIER (R.), ROSE (J.), KUON (I.) - FPGA architecture : survey and challenges. - Now Publishers Inc. (2008).
-
(3) - JOAO (M.P.), CARDOSO, DINIZ (P.C.) - Compilation techniques for reconfigurable architectures. - Springer-Verlag, 2e éd. (2010).
-
(4) - BETZ (V.), ROSE (J.), MARQUARDT (A.) - Architecture and CAD for deep-submicron FPGAs. - Kluwer Academic Publishers (1999).
-
(5) - WESTE (N.), HARRIS (D.) - CMOS VLSI design : a circuits and systems perspective. - Addison Wesley, 4e éd. (2010) http://www.cmosvlsi.com/
-
(6) - FANET (H.) - Micro et nano-électronique : bases, composants, circuits. - Dunod (2006).
- ...
ANNEXES
VPR : ensemble d'outils de CAO pour FPGA fait par l'Université de Toronto. Initialement spécialisés sur les phases de placement/routage. Aujourd'hui disponibles pour d'autres phases du flot de conception FPGA http://www.eecg.utoronto.ca/vpr/
Synplify : outil de synthèse logique pour circuits FPGA commercialisé par la société Synopsys capable d'effectuer des synthèses pour différents FPGA de différents fabricants http://www.synopsys.com
ISE : environnement de conception de la société Xilinx, permettant d'effectuer toutes les phases du flot de conception (synthèse, placement, routage, programmation, debug) pour les circuits FPGA Xilinx. Version limitée (webpack) disponible en téléchargement gratuit pour les petits circuits http://www.xilinx.com
Quartus : environnement de conception de la société Altera, permettant d'effectuer toutes les phases du flot de conception (synthèse, placement, routage, programmation, debug) pour les circuits FPGA Altera. Version limitée disponible en téléchargement gratuit pour une utilisation pendant 30 jours http://www.altera.com
OpenCores : blocs IP en open source http://opencores.org
Xilinx...
Cet article fait partie de l’offre
Électronique
(227 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive