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 > Outils de développement
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
4. Outils de développement
La programmation d'un FPGA est réalisée via un nombre important de points mémoire permettant de configurer la structure matérielle de la fonctionnalité réalisée. Cette configuration permet notamment de programmer :
-
le contenu des LUT et les autres paramètres des blocs logiques (présence d'une bascule, état au reset, utilisation de la chaîne de retenue, etc.) ;
-
les connexions dans les blocs de routage ;
-
l'initialisation du contenu des mémoires ;
-
la taille et le chemin de données des blocs arithmétiques ;
-
les autres structures programmables telles que les entrées/sorties, les générateurs d'horloge, etc.
Les outils de CAO (conception assistée par ordinateur) pour les FPGA permettent de transformer le Design, spécifié à l'aide de schémas ou d'un langage de description du matériel, en une suite de données binaires (Bitstream) permettant de programmer le FPGA lorsque celui-ci est en mode configuration.
La figure 12 montre un exemple typique de flot de CAO pour FPGA depuis la spécification de la fonctionnalité au fichier de configuration du FPGA en passant par les étapes de synthèse, de placement et de routage.
4.1 Langages de description
Depuis le milieu des années 1990, il est devenu tout à fait classique d'utiliser des langages de description matérielle HDL (Hardware Description Language) tels que VHDL ou Verilog pour spécifier une fonctionnalité dans un circuit intégré ou dans un FPGA. On parle alors de spécification de niveau RTL (Register Transfer Level ) et le concepteur décrit son système par un ensemble de fonctions de base qui sont soit combinatoires (logique, arithmétique, aiguillage), soit synchrones (bascules, registres, mémoire), ainsi que par les signaux qui les connectent entre elles. Des langages de ce type permettent en outre d'exprimer le parallélisme très facilement puisque leur description est intrinsèquement concurrente et prend la forme d'un ensemble de processus ou d'instructions flots de données communicants. Une machine d'états de Moore sera par exemple spécifiée par un processus synchrone décrivant le registre d'états associé à un ou plusieurs processus pour décrire les fonctions logiques combinatoires de décodage de l'état courant fournissant...
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
Outils de développement
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