Étape 2: Affichage vidéo contrôleur
Affichage vidéo nécessite très précisément les signaux de synchronisation chronométré avec les données RVB. Comme nos spécifications exigent que nos GPU devrait être capable d’afficher sur l’écran LCD et si possible sur un port VGA, nous aurez besoin deux générateurs de signaux différents pour ces puits et multiplex eux vers le frame buffer et démultiplexer puis sortie RGB de la mémoire tampon de la trame.
Le module de mémoire tampon de trame doit être synchronisé avec ces signaux vidéo et de fournir les données RVB produites par les plans d’affichage différents de la RAM.
L’architecture ci-dessus répond à ces spécifications. Le VideoClockGenerator fournit l’horloge de 6,4 MHz requis pour le contrôleur d’affichage LCD et l’horloge de 25MHz pour le contrôleur VGA. Ces deux contrôleurs fourniront ligne requis et les numéros de colonne pour synchroniser le frame buffer et ils fourniront ensemble un écran avec un taux de rafraîchissement de 60Hz à résolution de 320 x 240 (QVGA).
Faisabilité de l’extraction de la ligne
Pour plus de simplicité HW que nous avons décidé d’utiliser un seul tampon par avion d’affichage dans le frame buffer, qui exige de nous charger pixel pendant les périodes de suppression de trame horizontales. En analysant les exigences de distribution et de la bande passante de la mémoire, nous pouvons trouver la limite théorique du nombre de lignes horizontales (à partir de plans d’affichage différents), nous pouvons aller chercher.
Pour l’écran LCD, nous trouvons que cela équivaut à 4 avions, en commençant à aller chercher la ligne suivante lorsque le VDC sorties 297e pixel de la ligne actuelle.
Pour le VGA, nous constatons que seulement 3 avions sont faisables si le VDC émet un rechargement à la 285e pixel de chaque ligne impaire (QVGA est implémentée en utilisant des minutages de résolution 640 x 480 avec chaque ligne et colum étant doublé).
Dans une version ultérieure, on passera au mécanisme de double tampon pour faciliter ces contraintes spécifiques sur l’extraction de la ligne.
Démo
Dans cette démo, une opération de base de la VCC est montrée. Une image RVB fixe est générée dans le tampon de trame, le VDC synchronise le Frame Buffer RGB avec elle des signaux vidéo selon que les LCD ou VGA est utilisé.
Notez que l’écran LCD a interface RGB 24 bits, mais en raison de notre format de couleur choisie, nous affichons en couleurs 16 bits. DAC du connecteur VGA sur Nexy 3 autorisent uniquement les couleurs 8 bits, certains notable qualité est perdue sur VGA.