VG5000 dans un FPGA

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

network
Messages : 23
Inscription : 04 mai 2015 07:30

VG5000 dans un FPGA

Message par network »

Bonjour à tous,

Dans la suite logique après l'implémentation des ALICE voici le VG5000 implémenté dans un FPGA.


Le FPGA utilisé est un XC3S500E de chez XILINX de la famille SPARTAN 3E, la carte de développement est le starter kit SPARTAN 3E de chez DIGILENT, et le logiciel de synthétisation est ISE Design Suite 14.7.

Les périphériques mise en œuvre de la carte starter kit sont :
  • Le driver RS232 pour l’émission/réception logiciel, ou le DEBUG,
  • Le port PS2 pour l’interface clavier,
  • Le port VGA pour l’affichage,
  • Une sortie pour la génération du son,
Des outils de debug et de mise au point sont disponibles, et les applications sont chargées via une liaison série de type RS232 vers le VG5000 à 115Kbaud.


Voici quelques captures d'écran mais pas de grande qualités

Ecran d'acceuil
Image

L'abeille
Image

Le fou volant
Image

Le monstre
Image

us-rallye
Image

Le fichier MCS pour le FPGA avec RAM externe
VG5000.rar
(182.43 Kio) Téléchargé 190 fois
Le fichier MCS pour le FPGA avec RAM interne
VG5000_BlocRam.rar
(186.44 Kio) Téléchargé 185 fois
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: VG5000 dans un FPGA

Message par __sam__ »

Bravo!

Crois-tu qu'il soit possible de faire tourner cette émulation sur MIST (http://www.lotharek.pl/product.php?pid=96), et ainsi allonger encore plus les systèmes supportés par cette plateforme?
MIST is now supporting many machines:
ST/STE (alos on SCART 15KHz)
Amiga 500/600/1200 ( AGA CORE BETA core)
C64 (partially - still developed)
Atari 8bit ( 96%)
Collecovision
ZX81
Atari 2600
ZX Spectrum with AY, aslo with DIVMMC and ESXDOS
SEGA GENESIS
Apple
MSX
AMSTRAD CPC (BETA)
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13290
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: VG5000 dans un FPGA

Message par Carl »

Bravo ! 8)
Que faut il comme équipement pour tester l’émulation ?

Carl
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: VG5000 dans un FPGA

Message par __sam__ »

Une carte de dev fpga je présume. C'est pour ça que je demande si un PFGA déjà packagé dans une boîte pour faire tourner plein de machines pourrait héberger ou non le VG5k.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
farvardin
Messages : 436
Inscription : 27 déc. 2014 16:07
Contact :

Re: VG5000 dans un FPGA

Message par farvardin »

C'est chouette ça ! Est-ce que les sources sont disponibles, ce qui permettrait de le porter sur d'autres cartes, type Altera... ?
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: VG5000 dans un FPGA

Message par 6502man »

Super :D
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
network
Messages : 23
Inscription : 04 mai 2015 07:30

Re: VG5000 dans un FPGA

Message par network »

Bonjour,

Le VG5000 tourne sur un FPGA de la famille SPARTAN3E, qui est assez ancienne, et il est très facile de le faire tourner sur un autre FPGA, ou bien une carte comme le MIST. Cependant des modifications seront nécessaires , mais je pense qu'elles seront légères.
Avec une carte de nouvelle génération, il est possible d'y adjoindre une interface avec carte SD, et bien plus ..

Je peux éventuellement fournir les sources pour ceux voulant se lancer dans le portage sur une autre carte, et au passage de leur donner un coup de main.
Avatar de l’utilisateur
farvardin
Messages : 436
Inscription : 27 déc. 2014 16:07
Contact :

Re: VG5000 dans un FPGA

Message par farvardin »

bonsoir,

merci pour ta réponse.

Le code est en quoi ? Verilog, VHDL, autre chose ? Je ne m'y connais pas trop en fpga (et pas beaucoup plus en programmation plus traditionnelle type C) mais le sujet m'intéresse, et j'ai une carte MiST ainsi que le logiciel Quartus pour la compilation. Je viens d'essayer de compiler par exemple le code gameboy (ici https://github.com/mist-devel/mist-boar ... es/gameboy) en faisant une petite modification et ça fonctionne, aussi ton code m'intéresse. Je t'envoie mon email par message privé.
network
Messages : 23
Inscription : 04 mai 2015 07:30

Re: VG5000 dans un FPGA

Message par network »

Bonjour,

Le projet est en VHDL, et utilise un FPGA de chez XILINX, et non ALTERA comme pour la carte MIST.

Pour un portage vers cette carte et d'après mes premiers constats, il faudrait :

- Modifier/adapter, les routines spécifiques XILINX --> ALTERA, tel que la gestion des RAM internes, ou les PLL,
- La carte étant dépourvue de port PS2 pour la gestion du clavier, une adaptation via le port USB est à faire,
- La gestion de la RAM statique doit passer par une gestion via SDRAM,
- Puis, modification pour la gestion du son,

Je te contact via email,
Avatar de l’utilisateur
yo_fr
Messages : 1337
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: VG5000 dans un FPGA

Message par yo_fr »

je ne m'y connais pas en FPGA, mais j'ai deux petites questions :

existe-t-il des bibliothèques de composant "émulé" tel que les 74xx (y a pas de raison pour les portes mais quid des plus complexe comme les buffers, bascules, compteurs...) les processeurs (Z80, 6502, 68000...), controleur floppy (765 / 179x), les circuits RAM, ROM etc... toutes ces petites briques qui permettent de batir une machine ? Je suppose que pour émuler des machines comme les ST et Amiga le pire c'est de coder les chips spécifique à ces machines (Blitter, Paula..)

L'émulation obtenue à l'aide d'un FPGA est-elle basiquement meilleure que celle obtenu par du soft (C ou... VB ! ) ?
Intuitivement je pense que cela sera plus proche au timing non ?

En tous les cas bravo pour ce portage !
Avatar de l’utilisateur
farvardin
Messages : 436
Inscription : 27 déc. 2014 16:07
Contact :

Re: VG5000 dans un FPGA

Message par farvardin »

Quartus peut compiler le VHDL donc ça devrait aller. Pour le clavier ps2, ça ne devrait pas poser de problème, il y a une routine qui peut automatiquement convertir le clavier PS2 en USB, comme indiqué ici :
https://github.com/mist-devel/mist-boar ... rtingCores

Reste à voir pour la RAM.

Effectivement, il y a des briques tel que processeurs, chips sonores etc qui peuvent se réutiliser d'un projet à l'autre.

Au niveau de la différence entre emulation et FPGA, j'avais trouvé cette vidéo bien faite (à partir de 2'00"), même si uniquement en anglais : https://m.youtube.com/watch?v=CVq_jzj_u8U
Le timing est souvent meilleur en FPGA. L'émulation permet plus de choses parfois.
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: VG5000 dans un FPGA

Message par __sam__ »

yo_fr a écrit :L'émulation obtenue à l'aide d'un FPGA est-elle basiquement meilleure que celle obtenu par du soft (C ou... VB ! ) ?
Je pense que oui: dans le FPGA tout est en parallèle, comme sur la vraie machine.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
network
Messages : 23
Inscription : 04 mai 2015 07:30

Re: VG5000 dans un FPGA

Message par network »

Effectivement sur un FPGA l émulation est plus fidèle surtout niveau timing car on est très proche du matériel.
il existe des bibliothèques mais les chips vraiment spécifiques sont à développer.
la mise au point entre FPGA ou émulation logicielle est bien plus coton,car comme souligné toute les taches peuvent tourner en parallèles.
mais le plus complexe sont les temps de propagation entre modules qui peuvent ruiner un projet.
Avatar de l’utilisateur
Fabf
Messages : 54
Inscription : 11 déc. 2014 20:50
Localisation : Vienne(38)

Re: VG5000 dans un FPGA

Message par Fabf »

Je serais intéressé par les sources mais plutôt la version Alice s'il te plait.
Au sujet des temps de propagation j'ai quelques soucis sur mon MSX en FPGA.
Tu saurais me mettre sur la voie ?
Par contre je suis sur Altera.
network
Messages : 23
Inscription : 04 mai 2015 07:30

Re: VG5000 dans un FPGA

Message par network »

Je vais fournir les sources pour les ALICE et le VG5000, mais avant il faut que je mette à jour les commentaires, c'est une histoire d'une bonne semaine.

Les temps de propagations sont la chose la plus complexe dans la logique câblée, surtout au niveau des FPGA. Car suivant "comment" ton logiciel synthétise le projet, ce dernier peut t’insérer des buffers ou autres portes, causant ainsi des délais supplémentaires. Mais outre le logiciel, il y a aussi le "comment" tu codes en VHDL ou vérilog, et utilises les ressources de ton FPGA.
Suivant l'ampleur du projet, pour déceler des problèmes de timing il te faut utiliser la simulation après routage, et non après synthèse.
Le problème, c'est que cette simulation prend énormément de temps, et pour de gros projet cela devient impossible. Tu peux aussi regarder les fichiers de synthèses en sortie, il y a les chemins temporels les plus critiques, et une évaluation MAX de ta fréquence de fonctionnement.

Quels sont tes soucis pour le MSX ? quel est le modèle de ton FPGA, et sur qu'elle carte est il implanté ?
Répondre