Votre navigateur devient un FPGA : pourquoi WebFPGA est le truc le plus cool avec lequel vous allez bricoler cette année
Je code des applications web depuis plus de dix ans, et j’ai vu des frameworks JavaScript passer et venir comme des tendances de mode. Mais cette semaine, je suis tombé dans un trou qui m’a fait me sentir comme un gamin avec un fer à souder pour la première fois. Je vous parle de **WebFPGA** (webfpga.io), et ce n’est pas juste une nouvelle bibliothèque — c’est un tournant qui vous permet de programmer du vrai matériel physique directement depuis un onglet de votre navigateur.
Posez-vous ça. Mardi dernier, je cherchais à débugger une condition de course dans une appli Flutter (n’insistez pas), et j’avais besoin d’un break mental. J’ai cliqué sur un lien sur Hacker News qui parlait de « WebFPGA ». Je m’attendais à un tuto barbant sur la simulation en Verilog. À la place, j’ai trouvé un projet qui envoie un bitstream vers une vraie puce FPGA — comme celles dans votre routeur, votre voiture, ou vos appareils médicaux — avec juste du WebUSB et du WebAssembly.
Je me suis immédiatement commandé une petite carte de dev (le Tang Nano 9K, pour ceux que ça intéresse). Vendredi, j’avais une LED qui clignotait et une interface UART qui marchait, le tout depuis Chrome. Pas d’installation d’IDE, pas de clé de licence, pas 2 Go de logiciels Xilinx. Juste une URL.
Voilà pourquoi ça compte pour vous, que vous soyez un ingénieur backend qui pense que « hardware » est un terme de plomberie, ou un bricoleur marre des drivers USB capricieux.
Le moment « Attendez, c’est tout en JavaScript ? »
Si vous avez déjà essayé de monter une chaîne d’outils FPGA classique, vous savez ce que c’est que la galère. Ça implique de télécharger 20 Go de logiciels chez le fabricant, de se battre avec des serveurs de licences, et de supplier les dieux du JTAG pour que la carte soit détectée. Un cauchemar qui a tenu des ingénieurs proches de la hardware éloignés pendant des années.
WebFPGA renverse la table. C’est une chaîne d’outils 100 % côté client. Quand vous ouvrez le site, vous ne balancez pas votre code Verilog sur un serveur pour qu’il compile. La synthèse, le placement-routage, et la génération du bitstream se font localement dans votre navigateur grâce au WebAssembly.
**Voilà ce que ça donne concrètement :**
- **Zéro installation :** Vous ouvrez juste [`https://webfpga.io/`](https://webfpga.io/) et c’est parti.
- **Vie privée :** Votre IP (le genre silicon) reste sur votre machine. C’est énorme pour les boîtes qui bosseurs sur des algorithmes propriétaires — vous ne fuite pas votre design vers un compilo cloud.
- **Rapidité :** Pour les petits projets, la compilation est étonnamment réactive. Ce n’est pas aussi rapide qu’un outil natif comme Yosys, mais suffisamment pour bosser un vendredi après-midi.
Scénario 1 : Le dev backend qui n’a jamais touché le hardware
J’ai forcé ma collègue Sarah — une Go aleckeuse qui pense que GPIO signifie « General I/O Problem » — à tester. Elle était méfiante. On branche une micro-carte FPGA, on clique sur « Connect », et Chrome demande la permission d’accéder à l’appareil.
En 15 minutes, elle avait écrit un simple compteur en Verilog et regardé les LEDs clignoter en binaire. Elle n’a pas eu besoin de comprendre la timing closure ou le crossage de domaine d’horloge. Elle a juste écrit de la logique, cliqué sur « Upload », et vu le résultat physique.
C’est le truc qui tue : **le gratification immédiate**. La boucle entre écrire du code et voir les électrons bouger, c’est environ trois minutes. En moins de temps que la plupart des pipelines CI/CD pour les apps web.
Pourquoi ça compte au-delà de la demo « clignote la LED »
OK, faire clignoter des LED c’est cool, mais vous pouvez faire ça avec une Arduino et une breadboard. Le vrai pouvoir de WebFPGA, c’est **le parallélisme** et **la précision du timing**.
En tant que dev web, vous avez sûrement déjà heurté le mur avec les threads. En JS, vous avez les Workers, mais c’est lourd. En Python, vous avez le GIL. Un FPGA vous permet de lancer des milliers d’opérations logiques **vraiment en même temps**.
Scénario 2 : Le hacker de données en temps réel
Imaginons que vous créiez un outil d’acquisition de données perso. Un capteur qui balance des données sur 24 bits à 1 MHz. En software, parser ça avec un CPU bouffe des cycles, et vous allez perdre des paquets.
Avec WebFPGA, vous pouvez écrire un petit module qui capture les données, les décale dans un registre, et déclenche une interruption — pendant que le CPU fait autre chose. Vous pouvez même implément un FFT ou un filtre FIR directement dans la logique du FPGA. C’est comme écrire du code qui tourne sur un million de micro-cœurs dédiés.
Scénario 3 : Le fan de rétro-gaming
Un exemple sympa : j’ai utilisé WebFPGA pour générer un signal VGA. Ouais, un vrai VGA. J’ai écrit un module qui produit les signaux de synchronisation horizontale et verticale, et un second module qui dessine un carré qui rebondit.
J’ai branché un écran à ma carte, et le carré est apparu parfaitement. Faire ça avec un Raspberry Pi, il faut tripoter le firmware de la GPU. Avec un FPGA, c’est juste… de la logique. Incroyablement pur. Le site WebFPGA a même des exemples pour ça, donc c’est facile à adapter.
Comment commencer (sans ruiner son porte-monnaie)
Vous n’avez pas besoin d’une carte de dev à 500 € pour jouer. Voilà mon setup exact, moins de 40 € au total.
1. **Achetez une carte compatible :** Le projet WebFPGA est open-source et supporte plusieurs cartes. Je recommande vivement le **Tang Nano 9K** (sur AliExpress ou Seeed Studio). Il est minuscule, a assez de ressources pour des projets conséquents, et il est supporté nativement par la chaîne d’outils sur webfpga.io.
2. **Utilisez Chrome ou Edge :** WebUSB est capricieux. Ça marche impec en Chromium, mais Safari et Firefox sont encore en retard sur cette fonction. Ne vous batttez pas, utilisez Chrome pour cette tâche précise.
3. **Commencez par les exemples :** Ne tentez pas d’écrire un core RISC-V le premier jour. Chargez l’exemple « Blinky ». Ensuite, modifiez le diviseur d’horloge pour le faire clignoter plus vite. Puis essayez l’exemple « Button » pour lire des entrées.
4. **Apprenez la syntaxe :** Vous pouvez écrire en Verilog ou VHDL. Si vous débutez, restez sur Verilog — c’est plus répandu dans le monde bricolo et il y a plus d’exemples sur le site.
Le côté moins cool (mes vrais reproches)
Je suis un blogueur, pas un fanboy. Je dois être honnête. WebFPGA est génial, mais ce n’est pas encore parfait.
- **Maturité des outils :** L’outil de synthèse (Apicula pour les puces Gowin) est reverse-engineered. C’est impressionnant qu’il marche, mais pour des designs complexes, vous risquez de tomber sur une erreur de compilation que les outils officiels du fabricant n’auraient pas. Vous ne verrez rien pour les projets perso, mais ça arrivera pour du DSP sérieux.
- **Limites du navigateur :** Si vous laissez l’onglet tourner 48 heures, vous remarquerez des fuites mémoire. Les navigateurs ne sont pas conçus pour tenir une instance WebAssembly de 300 Mo pendant des jours. Il faut rafraîchir l’onglet régulièrement.
- **Le problème « Ça marche sur ma machine » :** Comme la chaîne d’outils est dans le navigateur, vos performances dépendent de votre CPU. Sur mon MacBook Pro M3, la compilation met 3 secondes. Sur un PC bon marché sous Windows, elle met 15 secondes. Ça marche, mais c’est plus lent.
WebFPGA vs. Les géants du cloud
Vous vous dites sûrement : « Pourquoi pas juste utiliser les instances FPGA d’AWS ou Google Cloud ? » Celles-là, c’est puissant, mais aussi très cher (genre 1-2 € l’heure) et il faut un processus de setup lourd.
WebFPGA, c’est **l’environnement de dev local pour le hardware**. C’est comme utiliser Docker sur son laptop avant de déployer sur Kubernetes. Vous prototypiez localement, vous corrigez vos bugs logiques, et *ensuite*, si vous avez besoin de l’échelle d’un FPGA cloud, vous pouvez transposer votre Verilog.
Le futur est branché
Je crois sincèrement que c’est le moment où la « culture maker » rencontre les standards web modernes. Le fait que je puisse partager une URL avec un collègue, et qu’il voie le schéma et compile sans installer un seul driver, c’est révolutionnaire.
Ça abaisse tellement la barrière à l’entrée que j’anticipe une vague de nouveaux bricoleurs. Si vous avez toujours été curieux de comprendre comment les ordinateurs fonctionnent au niveau du silicium, mais que vous détestiez la lourdeur des IDE, c’est votre porte d’entrée.
FAQ : réponses rapides pour les curieux
**Q : WebFPGA est-il gratuit ?**
R : Oui, la chaîne d’outils de base est open-source et gratuite. Vous ne payez que pour la carte physique. Le site n’a pas de murs payants ou de version premium pour le flux de compilation de base.
**Q : Est-ce qu’il faut connaître Verilog/VHDL avant de commencer ?**
R : Ça aide, mais ce n’est pas obligatoire. Le site a une section « Learn » avec la syntaxe de base. Si vous connaissez C ou Python, vous pouvez apprendre les bases de Verilog en un week-end. C’est bizarre parce que c’est concurrent, pas séquentiel, mais c’est ce qui le rend amusant.
**Q : Est-ce que je peux utiliser ma propre carte FPGA ?**
R : Seulement si elle est supportée par la chaîne d’outils open-source (Project Trellis ou Apicula). Ça correspond généralement aux puces Lattice ECP5 ou Gowin GW1N. Les puces Xilinx et Intel (Altera) sont généralement *pas supportées* parce que leurs formats de bitstream sont fortement chiffrés et propriétaires.
**Q : C’est juste pour les bricoleurs, ou je peux l’utiliser au bureau ?**
R : Moi, j’l’utilise au bureau pour faire des prototypes rapides. Par contre, pour la production, vous aurez besoin des outils du fabricant pour faire de l’analyse de timing et de la vérification. Pensez à WebFPGA comme à un *casse-tête* — super utile pour itérer sur des idées, mais vous ne poussseriez pas le résultat du navigateur directement sur une ligne de fabrication.
**Q : Et si je n’ai pas de carte ? Est-ce que je peux quand même tester ?**
R : Oui ! WebFPGA a un simulateur intégré. Vous pouvez écrire votre Verilog et simuler la forme d’onde directement dans le navigateur. Ce n’est pas aussi satisfiant que de voir des vraies LEDs clignoter, mais vous pouvez déboguer votre logique tranquillement sans hardware.
Alors allez-y. Ouvrez un nouvel onglet, branchez une carte à 30 €, et réécrivez votre vision de ce qu’un navigateur peut faire. Promis, c’est plus satisfiant qu’une appli de to-do list.
Technologie
Comments (0)
No comments yet. Be the first to comment!
Leave a Comment