Présentation

Article

1 - HISTORIQUE ET TERMINOLOGIE

2 - ARCHITECTURE GÉNÉRIQUE D'UN FPGA

3 - EXEMPLES DE FAMILLES DE FPGA

4 - OUTILS DE DÉVELOPPEMENT

5 - APPLICATIONS

6 - CONCLUSION

Article de référence | Réf : H1196 v1

Outils de développement
Architectures reconfigurables FPGA

Auteur(s) : Olivier SENTIEYS, Arnaud TISSERAND

Relu et validé le 10 févr. 2019

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais English

RÉ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’article

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.

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h1196


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 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

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais English

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 est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 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

ABONNEZ-VOUS

Lecture en cours
Outils de développement
Sommaire
Sommaire

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).

  • ...

1 Outils logiciels

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 est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 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

ABONNEZ-VOUS