Étape 2: VGA sortie
Un VGA 640 x 480 affichage fonctionne comme ceci : un pixel est activé en haut à gauche (y = 0, x = 0). Le moniteur active un pixel à la fois, aller à droite le long du haut de l’écran jusqu'à ce qu’il atteigne (y = 0, x = 640). Quand il atteint le bord de l’écran (x = 640), le moniteur commence activation pixels à (y = 1, x = 0) et fait la même chose. Il conserve ce faisant jusqu'à ce qu’il atteigne (y = 480, x = 640), où il va recommencer le processus. Fondamentalement, il active les pixels un par un (en série) dans l’ordre de gauche à droite, allez vers le bas. Plus d’infos ici [3].
Aussi, si vous souhaitez afficher une couleur autre que noire, vous devez spécifier les valeurs 8 bits de rouge, vert et bleu pour le moniteur afficher.
.
Pour être en mesure de jouer le jeu, nous devons utiliser un moniteur compatible VGA pour nous permettre d’afficher le jeu. Il y a plusieurs choses nécessaires pour que le module générateur VGA fonctionne :
1. nous avons mis notre hauteur maximale et la longueur pour correspondre à la résolution de l’écran que nous voulions pour le programme (640 x 480).
2. nous avons utilisé le bord positif de l’horloge VGA lors de l’utilisation si les déclarations et les affectations non bloquante pour créer un x coordonnent comte ainsi que d’un chef de coordonnée y. Ces xCount et yCount permet de dessiner des choses sur l’écran, mais aussi de suivre le serpent et la pomme. Ils piste où sur l’écran qui vous êtes.
3. nous a déclaré que si notre x y coordonnées et ne correspond pas à notre longueur maximale ou la hauteur maximale, puis nous augmenterions leurs coordonnées par un
4. en utilisant le bord positif de notre VGA horloge encore une fois, nous utilisons une affectation non bloquante pour définir notre zone d’affichage comme les coordonnées de x multipliées par nos coordonnées. Ces valeurs sont remplies si l’une de ces coordonnées étaient inférieures à notre résolution de l’écran (640 x 480).
5. en conclusion le module générateur VGA, nous utilisons trois déclarations ayant-droit, deux dont « VGA_vSync et VGA_hSync », ont été assignés comme l’inverse de la synchronisation verticale et horizontale sync. Notre finale attribuez instruction incluse à l’aide de la zone d’affichage nous définissons dans notre précédente affectation et à l’aide de « blank_n » pour définir notre zone d’affichage.
6. également noter le VGA ne peut exécuter sur un signal d’horloge 50MHz comme le Conseil fournit, au contraire, il fonctionne avec une horloge de 25MHz. Un module séparé (voir photographié) nous permet de réduire l’horloge 50MHz à 25MHz.
.
Une page utile pour en savoir plus sur les spécifications VGA est la page de Wikipedia pour VGA [4], et une ressource utile pour certains détails de Verilog relatives à VGA est cette page [5].