+1julio a écrit :J'insiste sur le fait que cette personne n'est pas de confiance.
Projet carte arcade
-
New Byte
- stick de plastique
- Messages : 44
- Inscription : 23 août 2006, 22:54
- Localisation : Quimper (29)
-
MsK`
- stick de zinc
- Messages : 458
- Inscription : 10 janv. 2006, 20:52
-
cal2
- stick de zinc
- Messages : 369
- Inscription : 23 févr. 2006, 15:56
J'ai recu ma carte spartan 3e. Après quelques galères pour comprendre le fonctionnement des outils de développement, j'ai pu commencer mes tests.
Dans un premier temps, j'ai implémenté un composant de génération de synchro VGA en 640x480 @ 60 Hz basé sur un signal d'horloge de 25 Mhz.
J'ai ensuite séparé la partie génération du 25 Mhz à partir du 50 Mhz dans un composant dédié.
Finalement, j'ai implémenté une ROM de 2 Ko pour les tiles de 8x8 en 1 bit par pixel, et j'ai implémenté un générateur de caractères avec gestion de scrolling vertical et horizontal.
Les résultats sont très encourageants. La vitesse est très bonne puisque j'ai pu simuler sans aucun souci deux plans de scrolling à pleine vitesse.
Pour l'instant la sortie VGA est bridée à 1 bit par composante, c'est à dire 8 couleurs au maximum. Dès que j'aurai recu le matériel qu'il me faut, je passerai à 4 bit / composante soit 4096 couleurs affichables simultanément.
Dans un premier temps, au niveau CPU je vais utiliser un core Z80 directement sur le FPGA. Il devrait pouvoir tourner avec une fréquence d'horloge de 50 Mhz (reste à faire les tests pour le vérifier) ce qui permettrait d'avoir deja une bonne puissance de calcul dans un premier temps.
Il est possible d'intégrer plusieurs cores Z80 sans probleme au niveau du FPGA.
J'ai récupéré sdcc un compilateur C cross platform qui permet de générer du code Z80 rapidement. C'est avec ca que je vais commencer à développer, plutot qu'en assembleur directement, dans un souci de simplicité de faciliter pour débogguer.
Sinon, je suis en train de voir pour développer un adaptateur JAMMA qui se brancherait directement sur le port I/O de la carte spartan, permettant une connexion directe sur une borne.
Dans un premier temps, j'ai implémenté un composant de génération de synchro VGA en 640x480 @ 60 Hz basé sur un signal d'horloge de 25 Mhz.
J'ai ensuite séparé la partie génération du 25 Mhz à partir du 50 Mhz dans un composant dédié.
Finalement, j'ai implémenté une ROM de 2 Ko pour les tiles de 8x8 en 1 bit par pixel, et j'ai implémenté un générateur de caractères avec gestion de scrolling vertical et horizontal.
Les résultats sont très encourageants. La vitesse est très bonne puisque j'ai pu simuler sans aucun souci deux plans de scrolling à pleine vitesse.
Pour l'instant la sortie VGA est bridée à 1 bit par composante, c'est à dire 8 couleurs au maximum. Dès que j'aurai recu le matériel qu'il me faut, je passerai à 4 bit / composante soit 4096 couleurs affichables simultanément.
Dans un premier temps, au niveau CPU je vais utiliser un core Z80 directement sur le FPGA. Il devrait pouvoir tourner avec une fréquence d'horloge de 50 Mhz (reste à faire les tests pour le vérifier) ce qui permettrait d'avoir deja une bonne puissance de calcul dans un premier temps.
Il est possible d'intégrer plusieurs cores Z80 sans probleme au niveau du FPGA.
J'ai récupéré sdcc un compilateur C cross platform qui permet de générer du code Z80 rapidement. C'est avec ca que je vais commencer à développer, plutot qu'en assembleur directement, dans un souci de simplicité de faciliter pour débogguer.
Sinon, je suis en train de voir pour développer un adaptateur JAMMA qui se brancherait directement sur le port I/O de la carte spartan, permettant une connexion directe sur une borne.
-
cal2
- stick de zinc
- Messages : 369
- Inscription : 23 févr. 2006, 15:56
Après pas mal de galères, j'ai un début de systeme qui tient la route:
- Z80 @ 25 Mhz
- Un plan de tiles de 8x8 de 40x30 (320x240) avec des tiles en 1 bit par pixel, deux banques de tiles, flipping horizontal et vertical et 3 bit de palette par tile
- une vram et une aram (attribute ram) en dual port ram
- un registre de controle de vblank
- Sortie VGA directe
voici quelques photos (comme vous pouvez le constater il reste des bugs lol):



voilou
- Z80 @ 25 Mhz
- Un plan de tiles de 8x8 de 40x30 (320x240) avec des tiles en 1 bit par pixel, deux banques de tiles, flipping horizontal et vertical et 3 bit de palette par tile
- une vram et une aram (attribute ram) en dual port ram
- un registre de controle de vblank
- Sortie VGA directe
voici quelques photos (comme vous pouvez le constater il reste des bugs lol):



voilou