Peu à peu, les anciens systèmes se dégradent complètement et ne peuvent pas être utilisés et leur préservation de la manière la plus fiable possible est importante pour l’histoire de l’informatique. Si nous ne pouvons pas conserver les puces d’origine, nous pouvons au moins conserver leur organisation et faire en sorte que les FPGA se comportent comme tel.
Qu’est-ce que MiSTer FPGA?
MiSTer FPGA est un projet libre et ouvert qui cherche la reproduction la plus fiable possible d’anciens systèmes grâce à l’utilisation d’un FPGA, qui est configuré pour émuler les anciens systèmes, qu’il s’agisse d’ordinateurs ou de consoles de jeux vidéo. Pour cela, la communauté MiSTer a créé des fichiers qui permettent de configurer le MiSTer FPGA pour fonctionner comme différents systèmes 8 bits et 16 bits.
Grâce à l’utilisation d’un FPGA configuré comme matériel d’origine, il se comporte comme le matériel d’origine et non par émulation. En d’autres termes, le MiSTer FPGA se comporte comme du matériel d’origine et est le remplacement idéal pour ceux qui veulent l’expérience la plus fidèle possible avec ces systèmes.
Les différences avec d’autres projets? Comme il s’agit d’un projet ouvert et gratuit, il n’est pas associé à une marque commerciale, cela donne aux participants la liberté d’être le plus fidèle possible au matériel d’origine. Bon nombre des solutions commerciales qui «imitent» les anciennes consoles via FPGA se limitent à ne pas enfreindre ni brevets ni propriété intellectuelle et doivent donc rechercher d’autres solutions pour éviter les litiges.
Comment les noyaux des différents systèmes sont-ils développés?
Les FPGA sont programmés à l’aide de langages de description de matériel tels que Verilog et VHDL dans leurs différentes versions. Ces langages ne décrivent pas les programmes à exécuter, mais l’organisation interne des différents transistors. Pour ce faire, il faut d’abord prendre des photos avec des microscopes spéciaux et utiliser les informations visuelles comme une carte qui est ensuite encodée. Cela est dû au fait que le nombre de transistors a doublé de temps en temps en raison de la loi de Moore, ce qui complique l’analyse et la mise en œuvre.
Lorsque les systèmes sont très complexes, une version pour FPGA est créée aussi proche que possible du matériel d’origine, mais il y a souvent des éléments qui n’ont pas été documentés par le fabricant et ceux-ci doivent être implémentés par rétro-ingénierie. Cela signifie que même si le MiSTer FPGA a été configuré pour se comporter comme un noyau spécifique, il ne fonctionne pas de manière fiable.
Un autre problème est lié au fait que les temps vidéo des anciens systèmes étaient conçus pour fonctionner avec des moniteurs et des téléviseurs qui n’existent plus, et bien qu’il soit possible d’ajouter des modules supplémentaires qui vous permettent d’utiliser un moniteur CRT, en fait tous les MiSTer FPGA les cœurs sont conçus pour émettre leur signal vidéo via HDMI, ils ne sont donc pas complètement fidèles au matériel d’origine. Heureusement, c’est un projet ouvert et les noyaux qui décrivent le matériel sont mis à jour au fil du temps.
Pourquoi un FPGA?
L’avantage des FPGA est que nous pouvons les configurer comme s’il s’agissait de différents matériels interconnectés les uns avec les autres et fonctionnant en parallèle. Cela a une efficacité plus élevée qu’un émulateur dans lequel toutes les pièces de celui-ci sont émulées par un seul cœur ou par plusieurs mais de manière moins efficace. Un FPGA permet à un matériel plus ancien d’être intégré de manière plus fiable, non seulement en faisant fonctionner le matériel tel quel, mais aussi avec les mêmes temps de communication et interfaces.
Quel matériel compose le MiSTer FPGA?
Le FPGA principal du MiSTer FPGA est le De10-Nano de Terasic, c’est un Intel Cyclone V SoC 5CSEBA6U23I7, qui comprend deux cœurs ARM Cortex-A9 comme processeur principal, une mémoire RAM DDR3 de 1 Go, une interface Micro SD, une sortie vidéo HDMI et un connecteur mini-USB de type B. Cette partie du matériel est utilisée pour charger les cœurs à travers un menu, une fois qu’ils ont été chargés, le FPGA est lancé, qui commence à fonctionner comme le noyau que nous avons chargé.
Le nombre de portes logiques du FPGA est de 110 000, cela signifie qu’il ne peut pas simuler des systèmes complexes en raison du manque de portes logiques programmables à l’intérieur. Donc, si vous espérez émuler un système 32 bits ou 64 bits, il est préférable d’oublier de le faire, car il n’y a pas assez d’éléments pour cela.
Vous ne vous attendez pas non plus à une émulation fiable à 100%, car comme nous l’avons déjà mentionné, il existe de nombreux éléments matériels de ces systèmes qui, si nous savons ce qu’ils font, n’ont jamais été documentés et nous n’avons pas les informations sur la façon dont ils sont implémentés dans le matériel. .
Modules SDRAM pour le MiSTer FPGA
L’autre élément requis est les modules SDRAM, ce qui est surprenant car le système dispose de 1 Go de mémoire DDR3 intégrée. L’explication? Cela a à voir avec la vitesse d’horloge et la latence, car comme la RAM offre une plus grande bande passante, la latence a également augmenté. Aujourd’hui, c’est négligeable, mais les anciens systèmes ont été conçus pour que les processeurs fonctionnent à des moments précis, qui étaient liés à la latence entre la RAM et les différents éléments.
La chose habituelle serait d’utiliser la mémoire interne du FPGA, mais cela signifie la réduire pour la simulation du matériel, il est donc nécessaire d’utiliser de la RAM externe et la réponse a été l’utilisation de la SDRAM, ce qui est un compromis entre les meilleurs La solution que serait la SRAM et la pire est que l’utilisation de la mémoire DDR lors de la simulation des différents systèmes.
L’autre raison est que la RAM DDR est utilisée par les cœurs ARM, ce qui signifie qu’il y a contention dans son accès, ajoutant encore plus de latence et rendant la simulation par le FPGA incorrecte. En général, les temps de réponse de la mémoire sont importants pour que le système fonctionne de manière synchronisée et coordonnée.
Extensions d’E / S pour le FPGA MiSTer
Le MiSTer FPGA dispose d’une série de cartes d’extension qui ajoutent des fonctionnalités supplémentaires nécessaires pour ajouter certaines fonctionnalités et la connectivité avec certains périphériques. L’installation de ces plaques n’est pas simple, car dans certains cas elles ne reposent pas sur leur connexion à un port d’extension et doivent se faire par soudure de certaines connexions. Dans la plupart des cas, nous vous recommandons donc d’acheter un FPGA MiSTer avec le kit complet entièrement assemblé.
Carte analogique
La première carte d’E / S pour le MiSTer est la soi-disant carte analogique qui ajoute les éléments suivants:
- Un connecteur VGA, pour pouvoir connecter un moniteur CRT.
- Une mini-prise audio avec TOSLINK.
- Une interface SD secondaire, requise pour certains cœurs.
- Un ventilateur pour refroidir le De10-Nano, c’est-à-dire le FPGA.
- Un port d’aspect USB 3.0, appelé port utilisateur et c’est un port série, qui est principalement utilisé pour connecter les contrôleurs d’origine via ladite interface.
Les adaptateurs SNAC permettent de connecter un bouton de commande à l’un de ces connecteurs, mais si nous voulons pouvoir connecter plus de boutons, nous sommes sévèrement limités, car la carte analogique n’a qu’un seul port utilisateur.
Conseil RTC
La deuxième carte d’extension est la carte RTC, qui ajoute une horloge en temps réel pour les cœurs qui en ont besoin pour fonctionner correctement. Les processeurs comptent généralement le temps à partir de la durée de leurs cycles d’horloge, donc pour avoir des informations sur le cours du temps dans le monde réel, ils ont besoin de ce type de plaque, qui peut également être mis à jour via Internet.
Carte ADC
La troisième plaque est l’entrée audio / bande, cette plaque permet de connecter une unité cassette pour une plus grande fidélité de l’expérience des ordinateurs 8 bits. C’est un ajout pour les personnes qui conservent encore les bandes de leurs ordinateurs 8 bits et qui travailleront après si longtemps, donc ce n’est pas une pièce fondamentale à travailler.
Carte USB et BlisSTer
La quatrième carte est le concentrateur USB, qui ajoute 7 ports USB au MiSTer FPGA pour pouvoir connecter divers périphériques. Qu’il s’agisse de souris, de claviers, de manettes de jeu et nous pouvons même ajouter des modules Bluetooth et WiFi.
Le Hub USB ne doit pas être confondu avec la carte BlisSTer, qui intègre une série de ports utilisateurs pour pouvoir connecter plusieurs adaptateurs SNAC et pouvoir connecter plusieurs commandes et périphériques en même temps. Ce qui est idéal si vous avez toujours les périphériques d’origine et que vous souhaitez continuer à les utiliser.