Les circuits intégrés numériques : Les FPGA - Quiz
Les FPGA
Les FPGA (Field Programmable Gate Array) sont des circuits intégrés numériques dont le fonctionnement peut être entièrement reprogrammé après leur fabrication. Contrairement à un processeur qui exécute des instructions une par une, un FPGA permet de créer directement le circuit électronique souhaité à l'intérieur de la puce.
Cette technologie offre une très grande souplesse. Le même composant peut être configuré pour devenir un processeur, un contrôleur de communication, un décodeur vidéo, un système de traitement d'images ou tout autre circuit numérique complexe.
Les FPGA sont utilisés dans les télécommunications, l'aéronautique, l'industrie, les centres de données, les équipements médicaux, les systèmes embarqués et le développement de nouveaux circuits électroniques.
Le principe de fonctionnement
Un FPGA est constitué de milliers, voire de plusieurs millions de petits blocs logiques reliés entre eux par un vaste réseau de connexions programmables.
Lors de la programmation, le concepteur choisit quelles connexions doivent être établies afin de construire le circuit désiré.
Une fois configuré, le FPGA se comporte exactement comme un circuit électronique spécialement fabriqué pour cette application.
Contrairement à un logiciel qui s'exécute successivement sur un processeur, toutes les parties du circuit créées dans un FPGA peuvent fonctionner en même temps.
Les blocs logiques
Les blocs logiques constituent les éléments de base du FPGA.
Ils renferment principalement des portes logiques, des bascules, des multiplexeurs et de petites mémoires appelées LUT (Look-Up Tables).
Ces blocs permettent de réaliser aussi bien des opérations très simples que des circuits numériques extrêmement complexes.
Les interconnexions programmables
Les blocs logiques sont reliés par un réseau d'interconnexions programmables.
Ce réseau agit comme un immense câblage électronique dont les connexions peuvent être modifiées par programmation.
C'est cette architecture qui donne au FPGA sa grande flexibilité.
Les blocs d'entrée et de sortie
Autour de la puce se trouvent les blocs d'entrée et de sortie, appelés IOB (Input/Output Blocks).
Ils permettent au FPGA de communiquer avec les mémoires, les capteurs, les écrans, les processeurs, les réseaux de communication ou d'autres circuits électroniques.
Selon les modèles, ils prennent en charge de nombreuses normes électriques et des débits pouvant atteindre plusieurs dizaines de gigabits par seconde.
Les ressources intégrées
Les FPGA modernes ne se limitent plus à de simples portes logiques.
Ils intègrent également de nombreuses ressources spécialisées comme des blocs de mémoire RAM, des multiplicateurs matériels, des unités de calcul numérique (DSP), des contrôleurs mémoire, des interfaces Ethernet, PCI Express ou encore des transceivers très haut débit.
Ces ressources permettent de construire des systèmes électroniques extrêmement performants sur une seule puce.
La programmation d'un FPGA
Contrairement aux microcontrôleurs, un FPGA ne se programme pas principalement avec un langage comme le C ou le C++.
On utilise des langages de description matérielle, tels que VHDL ou Verilog.
Ces langages décrivent directement l'organisation du circuit électronique plutôt que la suite d'instructions à exécuter.
Les outils de développement convertissent ensuite cette description en un fichier de configuration appelé bitstream, qui est chargé dans le FPGA.
Le parallélisme
L'un des principaux avantages des FPGA est leur capacité à effectuer de nombreux traitements simultanément.
Chaque partie du circuit fonctionne indépendamment des autres, sans attendre la fin des calculs voisins.
Cette exécution parallèle permet d'obtenir des performances très élevées pour le traitement des images, des vidéos, des signaux radio ou des données scientifiques.
Les FPGA et les processeurs
Dans de nombreux systèmes, un FPGA travaille aux côtés d'un processeur.
Le processeur exécute les logiciels classiques, tandis que le FPGA réalise les traitements matériels nécessitant une très grande rapidité ou un fonctionnement simultané.
Certains composants regroupent même un processeur ARM et un FPGA sur une seule puce afin de combiner les avantages des deux technologies.
Les avantages des FPGA
Les FPGA peuvent être reprogrammés autant de fois que nécessaire, ce qui facilite les essais, les mises à jour et les corrections.
Ils offrent une très grande vitesse d'exécution, un fonctionnement fortement parallèle et une excellente adaptabilité.
Ils permettent également de développer rapidement un prototype avant la fabrication d'un circuit intégré définitif.
Les limites des FPGA
Les FPGA sont généralement plus coûteux et consomment davantage d'énergie qu'un circuit spécialement conçu pour une seule application.
Leur programmation est également plus complexe et demande une bonne connaissance de l'électronique numérique et des langages de description matérielle.
Les applications
Les FPGA sont utilisés dans les stations de base des réseaux mobiles, les équipements de télécommunication, les satellites, les radars, les systèmes de vision industrielle, les caméras professionnelles, les appareils médicaux, les accélérateurs d'intelligence artificielle, les instruments scientifiques et les centres de calcul.
Ils servent également au prototypage des futurs circuits intégrés avant leur fabrication sous forme d'ASIC.
Quelques FPGA célèbres
Les principaux fabricants de FPGA sont AMD Xilinx, Intel (anciennement Altera), Lattice Semiconductor et Microchip Technology.
Les familles Spartan, Artix, Kintex, Virtex, Cyclone et MAX sont largement utilisées dans l'industrie, la recherche et l'enseignement.