Outils pour utilisateurs

Outils du site


wiki:projets:consolevga

Console de jeux VGA

Participant au projet:

Statut du projet:

En pause au moins jusqu'à l'été 2016

Objectif:

Le but de ce projet est de créer une petite console de salon basée sur un FPGA. Les jeux seront codés sur des cartouches (contenant une rom) qui programmeront le FPGA à chaque utilisation dans un premier temps. La liaison avec un écran se fera via un port VGA. Dans un second temps, une possibilité de mettre du son sera étudiée.

Etapes:

  1. Explication du protocole VGA (Terminé)
  2. Réalisation du driver VGA (en cours)
  3. Optimisation du driver

Protocole VGA:

Il s'agit d'un standard d'affichage dont la limite de résolution est de 640*480 pixels. Il est piloté par 5 signaux:

  • Une synchronisation horizontale (colonne) numérique
  • Une synchronization verticale (ligne) numérique
  • Trois signaux analogiques R, G, B correspondants aux couleurs rouge, verte et bleue.

vga_display.jpg

Le principe est relativement simple. Il y a 4 temps à distinguer.

  1. Le noir avant impulsion
  2. La durée d'impulsion
  3. Le noir après impulsion
  4. La durée d'affichage

Ceci constitue un cycle et correspond au parcours d'une ligne. La position actuelle est donnéee par la synchronisation horizontale.

A chaque fin de cycle, on passe à la ligne suivante qui sera donnée par la synchronisation verticale.

On a donc ainsi le balayement de la fenêtre d'affichage. Les deux synchronisations indiquent l'emplacement du pixel actuel. Ce dernier sera ensuite d'une couleur correspondante aux valeurs des signaux R, G et B.

vga_display_2.jpgLes temps donnés ci dessus correspondent à un affichage en 640*480 avec un taux de rafraîchissement de 60Hz et une fréquence de cycle de 25MHz.

Pour faire le driver, il va donc falloir générer en premier lieu les deux signaux de synchronisation selon ce cachier des charges.

wiki/projets/consolevga.txt · Dernière modification: 2020/10/05 16:39 (modification externe)