FPGA est l'abréviation de « Field-programmable gate array ».

Ce qui peut être traduit en français par « réseau de portes programmables sur site ». C'est un circuit intégré fait pour être (re)programmé par l'utilisateur après sa fabrication en utilisant un langage informatique spécifique, donc sans modifier le matériel.

Contrairement aux microprocesseurs traditionnels, un FPGA peut exécuter plusieurs opérations en parallèle. Le premier dispositif reprogrammable fut construit en 1984 par Altera. L'année suivante, les cofondateurs de Xilinx inventèrent le premier FPGA. Depuis les années 1990, les FPGA sont de plus en plus utilisés, notamment par de grandes compagnies comme Microsoft. Récemment Altera et Xilinx ont été respectivement rachetées par Intel et AMD.

Étant reprogrammable, un FPGA a l'utilité qu'on lui donne. Les FPGA sont notamment utilisés pour concevoir des prototypes de circuits intégrés, interfacer des systèmes ou le temps de réponse joue un rôle crucial et dans des projets où la configuration du matériel est susceptible d'être modifiée.

 Comment fonctionne un FPGA ?

L'architecture d'un FPGA est composée : Exemple intel MAX10

  • d'un ensemble de blocs logiques configurables ;
  • d'un canal de routage programmable contenant des commutateurs ;
  • de blocs I/O transportant les signaux à l'intérieur ou à l'extérieur du FPGA ;
  • de blocs de mémoire (UFM, CFM).
  • de blocs matériels (ADC, PLLs, I/O)
  • de blocs IP ( Phy Ethernet, Driver SPI, MCU etc... )

Ces blocs créent un réseau physique de portes logiques qui peuvent être personnalisées pour effectuer des tâches informatiques spécifiques. De nombreux autres éléments peuvent être ajoutés, comme des CPU (processeurs), des contrôleurs de mémoire, des contrôleurs USB ou des cartes réseau. On parlera dans ce dernier cas de figure de SOC (Sytem On Chip).

Les blocs logiques configurables constituent le cœur d'un FPGA. Ils contiennent différents éléments selon le constructeur. Xilinx utilise des CLB (Configurable logic block), bloc logique configurable, en français. Altera utilise des LAB (Logic array module), ce qui signifie « module de réseau logique ». Toutefois, un bloc logique configurable contient toujours une ou plusieurs tables de conversion (des LUT) à trois ou quatre entrées, un D Flip-Flop (un circuit électronique numérique utilisé pour retarder le changement d'état de son signal de sortie) et une sortie.

Comment est configuré un FPGA ?

Un FPGA est configuré en utilisant un langage de description matériel comme VHDL ou Verilog, des langages informatiques qui permettent de décrire un circuit électronique et son comportement. On crée ainsi des configurations matérielles appelées circuits numériques. On utilise au préalable un simulateur HDL pour concevoir un circuit et vérifier son fonctionnement. Une fois le processus de conception et de validation terminé, un fichier binaire est généré à l'aide du logiciel propriétaire du fabricant de FPGA puis implémenté dans le FPGA.

Afficher l’image source