Emulateurs matériels

De Silicium.

Contrairement aux Emulateurs logiciels, les émulateurs matériels utilisent une plate-forme matérielle pour émuler les fonctionnalités d'une vieille machine :

  • le processeur
  • la mémoire (RAM et ROM)
  • les périphériques (vidéo, son, mémoire de masse, clavier, joystick, souris éventuelle...)

La plate-forme matérielle est ainsi capable d'interpréter un fichier image qui est la copie sous forme de fichier électronique du logiciel qui fonctionnait sur la vieille machine (cassette, bande, carte perforée, disquette, etc.), pour en exécuter les instructions de la manière la plus fidèle possible par rapport à la machine de l'époque.

Dans certains cas, la plate-forme matérielle est une réplique quasi parfaite de la machine originale, et il est difficile de faire la différence !

La plupart du temps cependant, les différences matérielles sont conséquentes : souvent, certains circuits électroniques ou éléments mécaniques composant la machine originale sont tout bonnement introuvables car plus fabriqués.

Sommaire

Les plate-formes matérielles reprogrammables

Une des approches les plus intéressantes consiste à utiliser comme plate-forme matérielle une carte à base de circuits logiques reprogrammables, tels que les FPGAs.

Grâce à une langage de description de haut niveau comme le Verilog ou le VHDL (semblables aux langages de programmation classiques), des circuits logiques élémentaires sont pré-configurés pour émuler la vieille machine. Le logiciel à faire fonctionner est alors injecté dans cet émulateur matériel, qui va ainsi réagir de manière très semblable à la machine originale.

De part leurs densités (quelques dizaines de milliers de portes logiques) et leur vitesse de fonctionnement (de l'ordre de 150 MHz), les FPGAs actuels se prêtent bien à l'émulation de machines 8, 16, voire (les premières) 32 bits.

Certaines cartes d'évaluation proposées par les fabricants de FPGAs, avec une connectique abondante (écran VGA, clavier et souris PS/2, codec audio, port série, lecteur de carte mémoire SD, etc.) et de la mémoire en abondance (SDRAM et Flash) sont des plate-formes idéales pour le RetroFPGA.

Avantages

Lorsque la machine à émuler est rare, le fait de pouvoir recréer une plate-forme matérielle au fonctionnement équivalent est très intéressant.

En ce qui concerne les plate-formes matérielles reprogrammables, la souplesse liée à la reconfiguration permettent d'envisager l'émulation de multiples vieilles machines à la volée.

Inconvénients

Par contre, et contrairement à l'émulation logicielle, l'investissement en argent est plus important (de l'ordre d'une centaine d'Euros), mais plus encore l'investissement en temps...

En effet, la compréhension et la programmation de ces matériels demande une bonne compréhension de l'électronique numérique, et ne s'adresse donc qu'à des personnes connaissant déjà le sujet ou très fortement motivés pour en apprendre davantage !

Liens

Voici une liste non exhaustive d'émulateurs matériels :

Une liste des cartes FPGA pouvant servir de plate-forme d'émulation matérielle :

Projets d'émulation matérielle sur FPGA :

  • fpgagen - émulation de console SEGA Megadrive/Genesis sur carte Altera DE1 par notre collègue Torlus !
  • Apple2fpga - émulation d'Apple II sur carte Altera DE2
  • minimig DE1 - émulation d'Amiga sur carte Altera DE1
  • Zet - émulation IA-32 (PC x86) sur carte Altera DE1 et Xilinx ML403
  • MSX - émulation Msx sur carte altera DE1
  • Sinclair Spectrum - émulation zx spectrum sur carte altera DE1
  • Amstrad CPC - émulation Amstrad CPC 6128 turbo + SymbOS sur carte altera T-rex C1
Outils personnels