Qu'est-ce que FPGA ?

LSI dont l'utilisateur peut reconfigurer la logique après fabrication. Utilisé pour le prototypage, les produits en petite série, la vérification des ASIC, etc.

Nom japonais: FPGA

« FPGA » apparaît dans 11 questions d'entraînement réparties sur 6 thèmes, dont Flot de conception de circuits intégrés et EDA, HDL et vérification, Circuits logiques.

Domaine: Flot de conception de circuits intégrés et EDA

Ce que contient un FPGA

Un FPGA (field-programmable gate array, réseau de portes programmable sur site) est une matrice de blocs logiques configurables reliés par une interconnexion programmable. Chaque bloc logique contient des tables de correspondance (LUT), de petites mémoires dont les bits stockés définissent une table de vérité et dont les entrées commandent des multiplexeurs qui sélectionnent la sortie : une LUT à k entrées peut donc réaliser n'importe quelle fonction de k entrées. Des bascules mémorisent l'état. Les composants modernes intègrent aussi des blocs câblés comme de la RAM en blocs, des unités DSP de multiplication-accumulation, des gestionnaires d'horloge, des émetteurs-récepteurs série haut débit et parfois des cœurs de processeur. Dans la plupart des FPGA, la configuration réside dans des cellules SRAM et est chargée depuis une mémoire flash externe à la mise sous tension.

Du HDL au bitstream

Les conceptions sont écrites dans un langage de description matérielle comme Verilog ou VHDL. La synthèse projette la logique sur les LUT, les bascules et les blocs câblés en reconnaissant des modèles de codage standard : un tableau de registres écrit et lu de façon synchrone avec l'horloge est inféré en RAM en blocs, alors qu'une lecture asynchrone peut donner des bascules ou de la mémoire distribuée. Le placement-routage attribue ensuite les ressources et les connexions, l'analyse temporelle statique vérifie la fréquence d'horloge, et le résultat est un bitstream chargé dans le composant. Les blocs de traitement sont souvent reliés par des interfaces internes standard comme AXI4-Stream.

FPGA ou ASIC

Un FPGA ne nécessite ni masques ni délai de fabrication et peut être reprogrammé sur le terrain : bogues et nouvelles fonctions peuvent donc être traités après livraison. Le prix à payer est un surcoût : le routage configurable et les LUT rendent une même fonction plus lente, plus gourmande en énergie et bien plus encombrante que dans un circuit intégré spécifique (ASIC), et le prix unitaire est plus élevé. Les ASIC l'emportent en grand volume, une fois leurs importants coûts initiaux d'ingénierie et de masques répartis sur de nombreuses unités ; les FPGA l'emportent pour les prototypes, les petits volumes et les exigences qui évoluent vite.

Où le rencontre-t-on

On trouve des FPGA dans les équipements de communication, les instruments de test et de mesure, les chaînes de traitement vidéo et du signal, le contrôle industriel et les accélérateurs des centres de données. Ils sont aussi au cœur de la vérification des grands SoC : projeter la conception sur des FPGA (prototypage FPGA) l'exécute des ordres de grandeur plus vite qu'une simulation logicielle, si bien que de vrais systèmes d'exploitation et applications peuvent tourner avant que le silicium n'existe. Les émulateurs matériels servent le même but avec une meilleure visibilité sur les signaux internes, tandis que les prototypes FPGA sont généralement plus rapides.

S'entraîner : questions sur FPGA

Quelle caractéristique du FPGA est correcte ?

  1. ALe circuit est figé à la fabrication et ne peut être modifié
  2. BC'est un composant dédié aux circuits analogiques
  3. CL'utilisateur peut reprogrammer la configuration du circuit logique après fabrication
Afficher la réponse et l'explication

Réponse : C. L'utilisateur peut reprogrammer la configuration du circuit logique après fabrication

Le FPGA est un composant dont les blocs logiques, dotés de petites tables de vérité (LUT), et les connexions entre eux peuvent être reprogrammés après fabrication par des données de configuration. Sans le délai de fabrication ni le coût des masques d'un ASIC, il sert aux prototypes, aux petites séries et aux équipements nécessitant des mises à jour fonctionnelles. En revanche, les circuits de reprogrammation supplémentaires font qu'à circuit égal, l'ASIC est plus rapide, moins gourmand et plus compact. Ce n'est pas un composant dédié à l'analogique.

Dans la vérification des grands SoC, quelle méthode exécute le circuit conçu sur du matériel dédié ou un FPGA et le vérifie rapidement en association avec le logiciel ?

  1. AÉmulation et prototypage sur FPGA
  2. BDRC
  3. CCMP
Afficher la réponse et l'explication

Réponse : A. Émulation et prototypage sur FPGA

La simulation logique logicielle devient si lente pour les grands circuits qu'une seconde de fonctionnement peut demander plusieurs jours. Implanter le circuit dans un émulateur ou un FPGA accélère la vérification de plusieurs ordres de grandeur et permet de développer et vérifier le logiciel avant la disponibilité de la puce, en exécutant un vrai système d'exploitation et de vraies applications. L'émulateur facilite l'observation des signaux internes, tandis que le prototype FPGA est plus rapide.

Questions fréquentes

Que signifie FPGA ?

FPGA signifie field-programmable gate array (réseau de portes programmable sur site) : une puce dont la logique et le câblage peuvent être configurés par l'utilisateur après fabrication, sur le terrain, au lieu d'être figés lors de la fabrication.

Quelle est la différence entre un FPGA et un microcontrôleur ?

Un microcontrôleur possède un processeur fixe qui exécute les instructions logicielles les unes après les autres. Un FPGA n'a pas de fonction figée : c'est le matériel lui-même qui est configuré, si bien que de nombreuses opérations peuvent s'exécuter en parallèle à chaque cycle d'horloge, au prix d'un flot de conception plus difficile.

Un FPGA conserve-t-il sa configuration hors tension ?

La plupart des FPGA stockent leur configuration en SRAM et la perdent à la mise hors tension ; ils rechargent un bitstream depuis une mémoire flash externe à chaque mise sous tension. Certaines familles utilisent une flash intégrée ou des antifusibles programmables une seule fois et sont non volatiles.

« FPGA » dans les explications

Questions mentionnant « FPGA » (11)

  1. Quelle caractéristique du FPGA est correcte ?
  2. Dans la vérification des grands SoC, quelle méthode exécute le circuit conçu sur du matériel dédié ou un FPGA et le vérifie rapidement en association avec le logiciel ?
  3. Comment la description ci-dessus est-elle généralement traitée lors de la synthèse logique pour FPGA ?
  4. Quelle est la fonction correcte d'un multiplexeur ?
  5. Quelle description de la conception en cellules standard est correcte ?
  6. Quelle méthode de conception dessine manuellement chaque transistor, dimensions et placement compris, pour pousser performances et surface à l'extrême ?
  7. Quelle méthode prépare à l'avance une base commune (master) couverte de transistors et ne conçoit que les couches d'interconnexion pour chaque produit ?
  8. Comment appelle-t-on un LSI conçu spécifiquement pour une application ou un client particulier ?
  9. Quel est un exemple de mécanisme de programmation pour le calcul parallèle sur GPU et autres, utilisable aussi sur des GPU autres que NVIDIA ?
  10. Quelle est la caractéristique du codage one-hot des états d'une machine d'états ?
  11. Quelle caractéristique d'AXI4-Stream est correcte ?

Comparatifs incluant ce terme

Termes associés

ASIC (circuit intégré spécifique) Synthèse logique Placement-routage SoC (système sur puce) Multiplexeur GPU CUDA OpenCL Mémoire partagée (shared memory) Codage one-hot

Retour au glossaire