Stap 2: VGA-uitgang
Een 640 x 480 VGA display werkt als volgt: een pixel in de linkerbovenhoek wordt geactiveerd (y = 0, x = 0). De monitor wordt geactiveerd van één pixel tegelijk, rechts langs de bovenkant van het scherm te gaan totdat het bereikt (y = 0, x = 640). Wanneer het de rand van het scherm bereikt (x = 640), de monitor begint pixels bij activeren (y = 1, x = 0) en het zelfde ding doet. Het blijft dit doen totdat het bereikt (y = 480, x = 640), waar het zal het proces helemaal opnieuw beginnen. Kortom, het activeert de pixels één voor één (serieel) op een ordelijke manier van links naar rechts en naar beneden gaan. Meer info hier [3].
Ook, als u weergeven een kleur dan zwart wilt, moet u opgeven van 8 bits waarden voor rood, groen en blauw voor de monitor weer te geven.
.
Om te kunnen spelen van het spel, moeten we een VGA-compatibel beeldscherm kunt laten toe om het spel weer te geven. Er zijn verschillende dingen die nodig zijn om de VGA-generator module werken:
1. wij instellen onze maximale hoogte en lengte aan de schermresolutie die we voor het programma (640 x 480 wilden).
2. we de positieve rand van de VGA-klok gebruikt tijdens het gebruik als verklaringen en niet-blokkerende toewijzingen maken een x graaf evenals een y coördinaat telling coördineren. Deze xCount en de yCount kunnen worden gebruikt om dingen op het scherm tekent, evenals het bijhouden van de slang en apple. Ze bijhouden waar op het scherm dat u bent.
3. Wij hebben gezegd dat als onze x-coördinaat en de y-coördinaat niet overeenkomen met onze maximale lengte of de maximumhoogte, dan wij zouden hun coördinaten verhogen door een
4. met behulp van de positieve rand van onze VGA klok opnieuw, gebruiken we de toewijzing van een niet-blokkerende onze weergavegebied definiëren als de x-coördinaten vermenigvuldigd met onze y-coördinaten. Deze waarden zijn waar als één van beide één van deze coördinaten is minder dan onze schermresolutie (640 x 480).
5. het sluiten van de VGA-generator module, gebruiken we drie toewijzen verklaringen, twee van die 'VGA_vSync en VGA_hSync, werden toegewezen als de inverse van de verticale sync, en horizontale sync. Onze finale toewijzen verklaring opgenomen met behulp van het weergavegebied we in onze vorige toewijzing definiëren en het gebruik van "blank_n" om onze display gebied te definiëren.
6. ook rekening mee dat de VGA niet uitvoeren op een 50MHz kloksignaal zoals de Raad van bestuur levert, liever gezegd, het werkt met een 25MHz klok. We gebruiken een aparte module (afgebeeld) om de klok van 50MHz tot 25MHz.
.
Een nuttige pagina voor meer informatie over de VGA-specificaties is de Wikipedia-pagina voor VGA [4], en een nuttige bron voor sommige Verilog bijzonderheden met betrekking tot VGA is Deze pagina [5].