au sommaire


    FPGA est l'abréviation de « Field-programmable gate array », ce qui peut être traduit en français par « réseau de portesportes 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. Un FPGA se distingue ainsi d'un Asic (ApplicationApplication specific integrated circuit), un circuit intégré spécialisé qui ne peut pas être reprogrammé une fois construit. Les FPGA sont performants, rapides et reprogrammables, ce qui permet de faire des économies de temps et d'argentargent. 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 MicrosoftMicrosoft. Récemment Altera et Xilinx ont été respectivement rachetées par Intel et AMD.

    À quoi sert un FPGA ?

    Étant reprogrammable, un FPGA a l'utilité qu'on lui donne. Les FPGA sont notamment utilisés pour concevoir des prototypes d'Asic, dans des systèmes en temps réel où 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. On les retrouve dans des domaines et industries tels que les télécommunications, l'industrie automobileautomobile, l'aérospatial, la médecine, l'audio, la finance, l’informatique, la vidéo ou encore la sécurité. Il est par exemple possible de reprogrammer et de mettre à jour la caméra de reculcaméra de recul de toute une série de voitures à distance et sans avoir à modifier physiquement les véhicules.

    Matrice FPGA. © Eduardo Sanchez, École polytechnique fédérale de Lausanne
    Matrice FPGA. © Eduardo Sanchez, École polytechnique fédérale de Lausanne

    Comment fonctionne un FPGA ?

    L'architecture d'un FPGA est composée :

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

    Ces blocs créent un réseau physiquephysique 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éseaucartes réseau.

    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ériquenumé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 binairebinaire est généré à l'aide du logiciellogiciel propriétaire du fabricant de FPGA puis implémenté dans le FPGA.