URL:     https://linuxfr.org/news/eniac-le-premier-fpga
Title:   ENIAC, le premier FPGA ?
Authors: martoni
         BAud, Benoît Sibaud et Julien Jorge
Date:    2026-07-28T21:35:26+02:00
License: CC By-SA
Tags:    fpga
Score:   7


Les employés de chez Xilinx aiment à raconter qu'ils sont les inventeurs du [FPGA](https://fr.wikipedia.org/wiki/Circuit_logique_programmable). Avec leurs glorieux [XC2064](https://spectrum.ieee.org/chip-hall-of-fame-xilinx-xc2064-fpga) ils auraient été les inventeurs du concept et les premiers à en commercialiser.



![Blueprint du XC2064](https://www.amd.com/content/dam/amd/en/images/blogs/designs/projects/pr-blog-assets/amd_blog_image_fpga_40th_anniversary_1.png)
_[Deux ingénieurs de xilinx](https://spectrum.ieee.org/chip-hall-of-fame-xilinx-xc2064-fpga) en plein placement-routage du XC2064 ?_


En est-on si sûr ?

----


----

Tout d’abord revenons à la définition d’un FPGA : 



**F**ield **P**rogrammable **G**ate **A**rray


Littéralement: Grille de portes programmable sur le champ.


Les FPGA sont des composants munis d’éléments logiques plus ou moins complexes dont les connexions ne sont pas figées. Les connexions peuvent être re-programmées pour modifier l’architecture électronique du système en fonction du besoin sans avoir à démonter l’appareil à chaque fois.


L’aspect _programmable_ ne doit pas être vu dans le sens d’un programme que l’on télécharge dans une mémoire pour qu’il soit exécuté par un processeur. Non, le bon mot serait plutôt _configurable_ ou re-câblable (quel beau mot) au besoin.


Dans un FPGA moderne, les blocs que l’on peut connecter sont des éléments logiques (LUT), des multiplexeurs, des multiplieurs, des additionneurs, les sérialiseurs/dé-sérialiseur (serdes) sans oublier les blocs de mémoires ram (BRAM). Des [PLL](https://fr.wikipedia.org/wiki/Boucle_%C3%A0_phase_asservie) viennent en renfort pour générer des horloges pour cadencer tout ce bazar.


![Mapping du Gatemate A1](https://colognechip.com/wp-content/uploads/chipview.png)
_Plan du [Gatemate A1](https://colognechip.com/programmable-logic/gatemate/) de Colognechip, les entrées sorties sont à la périphérie et les blocs logique au centre_


Le « re-câblage » (on parle plutôt de configuration) est effectué en téléchargeant un fichier appelé _bitstream_ dans la mémoire RAM ou flash du FPGA.


Mais alors revenons à l'[ENIAC](https://fr.wikipedia.org/wiki/ENIAC). Cette machine est considérée comme le premier ordinateur électronique. Quand on pense ordinateur vient tout de suite l’idée d’un processeur qui exécute des instructions enregistrées dans une mémoire.



Ça n’est pourtant pas le cas des débuts de l’ENIAC qui est conçu pour faire des calculs très rapidement, notamment pour calculer des tables de tir de missiles (pour tuer des gens). Et à chaque nouveau calcul il faut le re-câbler. 


Les blocs que l’on peut connecter sont des multiplieurs, des additionneurs, des tables de fonctions ([à roulettes](https://fr.wikipedia.org/wiki/Fichier:Classic_shot_of_the_ENIAC.jpg)) ainsi que des imprimantes et des lecteurs de cartes perforées pour les entrées/sorties.


![Plan «mapping» de l’ENIAC](https://historyofinformation.com/images/Screen_Shot_2020-09-06_at_8.55.13_AM_big.png)
_Plan de l’ENIAC, il y quelques similitudes avec un FPGA. Cependant les blocs sont à l’extérieur et le multiplexage et les entrées sorties se font au centre. (sources [https://historyofinformation.com](https://historyofinformation.com))_


Pour re-câbler l’ENIAC point de _bitstream_ mais des équipes de câbleuses qui reconfigurent la machine pour lancer un nouveau calcul histoire de faire péter une bombe plus fort (nucléaire) ou de bien atteindre la cible avec un canon.


![Câbleuse en action](https://www.sigarch.org/wp-content/uploads/2021/02/Reprogramming_ENIAC-980x638.png)
_Câbleuses en pleine action, maintenant on télécharge un bitstream (source [sigarch](https://www.sigarch.org/eniac-day/))_


Mais, attendez, cette description ressemble furieusement à la description d’un FPGA non ?



Et oui, Xilinx n’a qu’à bien se tenir, le premier ordinateur électronique était également le premier FPGA de l’histoire. [D’autres ont fait le lien également](https://www.sigarch.org/eniac-day/).



Peut-être pourrait-on l’inclure dans les outils de synthèse libre comme [Yosys](https://github.com/yosyshq/yosys) ?



Pas sûr.
