Interview diffusée dans les émissions CPU releases Ex0232 : FPGA, première partie, CPU release Ex0233 : FPGA, deuxième partie et CPU release Ex0234 : FPGA, troisième partie.
Pour parler des FPGA, nous avons la chance d'avoir sur Toulouse un spécialiste du sujet, ingénieur électronicien le jour, et passionné de retrocomputing la nuit.
Nous recevons Fred Requin, alias FrenchShark :
- concepteur de FPGA pour le traitement d’image,
- co-créateur de l’émulateur retrogaming MCC-216,
- expert du microprocesseur Motorola 68000 jusque dans ses bugs,
- Et espèce protégée, même près des plages./li>
- Première partie : À l'origine
- Quelle est ta formation et ton domaine de prédilection ?
- Comment es-tu venu au FPGA ? Curiosité personnelle, ou une application industrielle où t'as pas pu passer à côté ?
- Qu'appelle-t-on FPGA ?
- Quelle est la différence par rapport à des processeurs plus conventionnels ? les ASIC ?
- Il y avait quoi avant ? (PAL, PLA, CPLD)
- J’ai entendu dire que la révolution micro des Anglais Sinclair, Amstrad, mais aussi les Thomson MO/TO, avait été rendue possible par les ULA ?
- Mais rentrons dans le vif du sujet : quand sont arrivés les FPGA ?
- Comment les programmait-on au départ ? (langage/toolchain XACT + XC2064 RAM-based)
- Qui étaient les clients de cette première génération ?
- Deuxième partie : C'est comme une carte à wrapper
- Le prototype idéal avant de lancer un ASIC ? Pourquoi ne pas simplement se lancer dans un ASIC ?
- Mais alors, a-t-on vraiment besoin d’un ASIC, hormis les questions de prix ?
- Mais alors, un gros ASIC, ça ne rentre pas dans un seul FPGA ? (machines d’émulation avec une flopée de FPGA à fréquence éventuellement réduite)
- La deuxième génération a amené une solution plus pratique pour les programmer. Peux-tu nous en expliquer les détails ? (le RTL, les HDL après les équations façon Abel mais avant la HLS)
- Quels sont les principaux fabricants de FPGA à travers le monde ?
- Les challengers chinois, français, allemands, autres ?
- Troisième partie : L’industrie aujourd’hui
- Combien coûte un FPGA ? Où se situe le break-even par rapport à un ASIC ? Est-ce plus rentable d'utiliser un FPGA ou de trouver un circuit intégré qui fait le travail et un peu plus, par exemple un System-On-Chip ?
- Est-ce qu'on trouve des FPGA par exemple dans de l'électroménager ou des ordinateurs ? Dans l’espace ?
- Actuellement, quels sont les plus gros clients de FPGA et pour quels types d'applications ?
- Fred, sans contrevenir au secret professionnel, pour quelles applications conçois-tu tes FPGA ?
- Est-ce que ça ne sert que pour des applications purement logiques, ou peut-on produire des applications analogiques ? (hybrides, RF)
- Cette question semble stupide, mais… y a-t-il des FPGA spécialisés ? Avec des morceaux pré-câblés ? des FPGA à insérer dans un coin d’un ASIC ?
- Et l’intelligence artificielle ? Est-il bien sérieux de calculer un réseau de neurones avec des nombres sur 4 bits voire seulement 2 ?
- Quatrième partie : programmer un FPGA
- Comment programme-t-on un FPGA moderne ? En NodeJS ? (rigolez pas, Migen c’est du Python)
- Quelle est la différence entre Verilog et VHDL ? Que penses-tu du Chisel de la fondation RISC-V ?
- Ça fait des années (des décennies ?) qu’on nous promet la synthèse de très haut niveau avec SystemC. Alors, vaporware ?
- J'ai vu que des opérateurs de cloud comme AWS ou Azure proposent du FPGA-as-a-service. Mais pourquoi ? Et ça marche comment la facturation ?
- Fred, en tant qu'expert sur le sujet, un truc émergeant à suivre de près ?
- Quand un FPGA plante, comment qu'on le débogue ? On a un crash report, une stacktrace… ?
- Pourquoi dit-on qu'il n'y a pas de fréquence d'horloge sur les FPGA ? Vont-ils à une vitesse infinie ? Mais que fait la Gendarmerie ?
- En bons informaticiens, on aime bien les arbres qui poussent vers le bas : parle-nous des arbres d’horloge !
compilateurpour un FPGA ? C’est cher ?
- Pourquoi les FPGA ont tant eu la côte dans le retrogaming ?
- Est-ce qu’un FPGA est une copie conforme des chips d’antan ?
- À priori, les puces originales sont très bien documentées, donc quel est le principal problème en émulation ?
- Quelles sont les connaissances qu'il faut avoir pour s'y mettre sérieusement ? La logique de programmation pure suffit ou faut-il aussi bien être calé en électronique ?
- Où en est-on des compilateurs direct C-to-FPGA ? La programmation de FPGA reste-t-elle fondamentalement différente de la programmation de microprocesseurs séquentiels ? Mais du coup n’est-ce pas plus facile qu’un émulateur purement logiciel ?
- Je dois tout faire moi-même ou y a-t-il des bibliothèques de re-créations sur FPGA en open-source ? Genre si j'ai envie d'émuler un processeur RISC un peu bizarre comme celui d'une Silicon Graphics ?
- Parle-nous de ton MCC ! C’était l’un des premiers sur le marché ? Nous venons d’apprendre le rachat de Commodore et la commercialisation d’un nouveau C64. (basé sur l’Ultimate 64 de Gideon’s Logic)
- Et dans ton travail, as-tu des clients qui veulent émuler une ancienne puce plutôt que créer un nouveau design ?
- Comme cette émission de CPU est en hommage à Gregory Estrade, alias Torlus, peux-tu évoquer ce que vous avez créé ensemble sur FPGA ?
Interview : Benoit et Da Scritch
Enregistré au Fablab Artilect.
Illustration : Macro-photographie de la puce Alice d'un Amiga chipset AGA par Fred Requin, D.R.