====== Console de jeux VGA ====== === Participant au projet: === * [[:wiki:utilisateurs:guillaume_lebrec|Guillaume Lebrec]] === 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: ==== - Explication du protocole VGA (Terminé) - Réalisation du driver VGA (en cours) - 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. {{ :wiki:projets:vga_display.jpg }} Le principe est relativement simple. Il y a 4 temps à distinguer. - Le noir avant impulsion - La durée d'impulsion - Le noir après impulsion - 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. {{ :wiki:projets:vga_display_2.jpg }}Les 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.