OpenFPGA se présente comme le premier matériel et écosystème FPGA dédié au développement de matériel de jeu vidéo par des tiers. Il vise à préserver l'histoire des jeux vidéo pour le jeu, l'étude académique et l'érudition, avec un accent sur la décentralisation. Le matériel repose sur des FPGA Intel/Altera Cyclone V et Cyclone 10, offrant des fonctionnalités de développement et de mémoire spécifiques.
Alors que certains critiques remettent en question l'affirmation selon laquelle openFPGA représente l'avenir de la conservation des jeux vidéo, en citant des projets concurrents, d'autres estiment que l'émulation FPGA constitue une solution viable pour préserver l'histoire des jeux vidéo. Ils soulignent néanmoins la complexité de l'émulation matérielle et abordent des considérations techniques telles que la synchronisation temporelle.
Définition et conception d'un FPGA
Les FPGA, pour Field-Programmable Gate Array, sont une génération de composants logiques programmables. Ceux-ci sont des circuits électroniques intégrés logiques, qui peuvent être (re)programmés après leur fabrication. Concrètement, ils prennent la forme d’une puce située sur une carte électronique, contenant de nombreuses ressources réintégrées à cette puce. Le rôle d’un développeur FPGA sera alors de configurer cette puce pour réaliser les fonctions souhaitées.
Un FPGA est construit avec des périphériques d’entrées et de sorties et des éléments programmables tels que des cellules logiques, des blocs de type mémoire et des blocs plus complexes de multiplication. Tous ces blocs sont agençables et reliés par des routes. L’objectif est alors de configurer ces blocs et ces routes afin que la puce réalise une fonction globale. Fonction qui accueille une information arrivant en entrée, la transforme à l’intérieur et la fait sortir pour qu’elle permette une action.
L’un des avantages du FPGA est la rapidité des calculs et des traitements, on les retrouve ainsi dans les clouds, où les FPGA permettent l’accélération de certains traitements. Typiquement, les FPGA vont être utiles aux clouds pour le chiffrement. Aujourd’hui lorsque l’on crée un VPN, entre un point A et un point B, on va vouloir chiffrer des données. Auparavant, seul un CPU en était capable, en récupérant dans le serveur des données et en procédant à des calculs – souvent longs – pour les chiffrer.
À la différence du microprocesseur, le FPGA est une configuration matérielle de nombreux éléments unitaires qui fonctionneront de concert. À chaque cycle d’horloge, chaque petit élément effectuera alors une tâche, là où le CPU ne sera capable d’en effectuer qu’une seule. Un chiffrement via FGPA ne pourrait ainsi prendre qu’un cycle d’horloge contre une multitude via un microprocesseur.
Le rôle du développeur FPGA
Un projet FPGA se déroule en plusieurs phases assez traditionnelles. La première sera la phase de spécification. Particulièrement longue et challengeante, elle va permettre de choisir ce que l’on veut intégrer au FPGA, en termes de fonctionnalités de base et de taille notamment. La deuxième phase correspondra au codage, en langage VHDL pour l’Europe, Verilog pour les USA. Elle aboutira à la construction de l’architecture qui va être interprétée et synthétisée, puis routée sur le FPGA.
La troisième phase consistera en la vérification en simulation. Le développeur observera ainsi l’exécution du traitement avant de l’intégrer à une puce FPGA. Cette phase permet ainsi d’aller voir à l’intérieur de tous les liens et signaux pour étudier leur comportement et ainsi d’avoir la vision globale du fonctionnement du FPGA. Et dès que la maturité est jugée suffisante sur ces simulations, le développeur effectuera des tests sur carte des différentes fonctions afin de vérifier qu’elles sont bien présentes et que les spécifications initiales sont respectées.
Toutes ces phases sont réalisées en lien avec les équipes hardware, qui définissent le besoin de comportement de leur carte électronique, et également des équipes logicielles dans le cadre des communications entre CPU et FPGA. Comme un développeur IT, le développeur FPGA peut s’appuyer sur des bibliothèques (appelées composants en langage électronique), en langage VHDL, qui regroupent des outils de base permettant de faire des conversions de type de signaux ou du calcul de base. Pour des fonctions réimplémentées, plus complexes, le développeur se tournera vers les IP (pour Intellectual Property soit propriété intellectuelle).
Ce sont des composants logiciels, avec leurs entrées et leurs sorties, qui peuvent être soit ouverts, écrit en VHDL, soit fermés, ou on aura une description en VHDL des entrées et sorties et au milieu une boîte noire qui sera appelée par l’outil de placement routage pour positionner les cellules précompilées et les mettre à la place souhaitée. Ces IP pourront être disponibles en open source ou payantes.
OpenFPGA est le premier générateur FPGA IP open source avec des preuves en silicium prenant en charge des architectures FPGA hautement personnalisables. OpenFPGA fournit un support EDA complet pour les FPGA personnalisés, y compris la génération Verilog-to-bitstream et la vérification par auto-test. Il ouvre la voie à la démocratisation de la technologie FPGA et des techniques EDA avec des approches de prototypage agiles et des outils EDA en constante évolution pour les concepteurs de puces et les chercheurs. Plusieurs éléments suscitent des questions et des comparaisons avec d'autres projets similaires, en particulier le projet MiSTer qui offre une gamme plus large de systèmes sous licence GPL.
Le MiSTer est un projet open-source qui émule les consoles, les ordinateurs et les cartes d'arcade via FPGA. C'est différent de l'émulation logicielle, car il est possible d'obtenir des performances identiques à celles de l'original. Bien que l'émulation logicielle puisse également être très précise, vous avez beaucoup plus de chances d'obtenir un décalage nul avec l'émulation FPGA, ce qui en fait une option formidable pour les personnes qui utilisent des écrans HDMI ou CRT.
Le projet MiSTer repose sur une carte de circuit imprimé à usage général de Terasic, connue sous le nom de DE10-Nano, qui intègre un réseau de portes programmables (FPGA). Les contributeurs au projet ont élaboré divers "cœurs" spécifiquement conçus pour fonctionner sur la DE10-Nano, utilisant un langage de description matérielle. Chaque noyau est destiné à configurer le FPGA en un ordinateur particulier, une console de jeu portable ou une carte de système d'arcade. À la différence d'un émulateur logiciel, les noyaux de MiSTer reproduisent les systèmes par émulation matérielle, recréant essentiellement le matériel d'origine de manière détaillée.
Comparaison entre openFPGA et le projet MiSTer
Bien que la plateforme MiSTer puisse être utilisée avec la carte DE10-Nano de base, ses fonctionnalités peuvent être significativement étendues grâce à l'utilisation d'extensions matérielles supplémentaires.
Certains utilisateurs soulignent que le projet MiSTer offre une gamme plus large de systèmes et est sous licence GPL, ce qui peut être perçu comme un avantage en termes d'ouverture et de diversité. Certains vont même jusqu'à affirmer que MiSTer mériterait davantage le titre d'avenir de la préservation des jeux vidéo. Certains critiques expriment des doutes sur le caractère réellement "ouvert" d'openFPGA. Ces préoccupations soulèvent des questions sur la transparence du projet et la mesure dans laquelle il favorise la véritable collaboration et la contribution communautaire.
Des utilisateurs abordent également le coût des composants utilisés dans openFPGA, mentionnant des augmentations de prix pour les cartes DE-10 Nano. Ces considérations financières peuvent affecter l'accessibilité et la popularité du projet, surtout par rapport à des alternatives potentiellement moins coûteuses.
En comparant l'annonce à la réalité telle que perçue par les avis, il semble y avoir des préoccupations et des interrogations légitimes. Les utilisateurs et développeurs paraissent accorder de l'importance à l'ouverture du projet, à la diversité des systèmes pris en charge, et à la véritable préservation du matériel original. Le succès d'openFPGA pourrait dépendre de la manière dont ces préoccupations sont abordées et de la capacité de l'équipe à répondre aux attentes de la communauté.
Source : Analogue
Et vous ?
Quel est votre avis sur le sujet ?
À votre avis, les préoccupations et interrogations soulevées par les utilisateurs et développeurs sont-elles légitimes ?
En quoi OpenFPGA diffère-t-il de MiSTer en termes d'approche, de fonctionnalités et d'objectifs ?
En quoi les augmentations de prix des cartes DE-10 Nano affectent-elles la perception de l'accessibilité d'OpenFPGA par la communauté ? Quelles alternatives moins coûteuses sont envisageables pour atténuer ces inquiétudes financières ?
Voir aussi :
Ryujinx, un projet qui se présente comme un simple émulateur expérimental de la Nintendo Switch écrit en C#, permet aux utilisateurs de jouer à plus de 3000 jeux sur Windows, macOS et Linux
Débuter avec les FPGA dans l'environnement Intel Quartus Prime, un tutoriel de f-leb
Les FPGA Intel arrivent dans les serveurs Dell et Fujitsu, ces processeurs hyper configurables pourront traiter plus de données en consommant moins