Stap 2: Video Display Controller
Videoweergave is heel precies getimed synchronisatie signalen samen met de RGB-gegevens vereist. Zoals onze specificaties vereisen dat onze GPU moet zitten kundig voor voornamelijk op het LCD-scherm weergeven, en indien mogelijk op een VGA-poort, we zullen moeten twee verschillende signaal generatoren voor deze gootstenen en multiplex hen naar de framebuffer en vervolgens demultiplex de framebuffer van RGB-uitgang.
De frame buffer module heeft om te worden gesynchroniseerd met deze video signalen en de RGB-gegevens geproduceerd door de verschillende vlakken van de RAM.
De bovenstaande architectuur voldoet aan deze specificaties. De VideoClockGenerator voorziet in de vereiste 6,4 MHz klok voor de LCD Display Controller en de 25MHz klok de VGA-Controller. Deze beide controllers bieden vereist rij- en kolomnummers om te synchroniseren van de framebuffer en zij zal over het algemeen voorzien van een display een vernieuwingsfrequentie van 60Hz op 320 x 240 resolutie (QVGA).
Doability van de lijn halen
Voor HW eenvoud die hebben we besloten om het gebruik van een interne buffer per vlak weergeven in de framebuffer, waarvoor ons laden pixels in horizontale blanking tijden. Door analyse van de eisen van de timing en de bandbreedte van het geheugen, vinden we de theoritical limiet van het aantal horizontale lijnen (van verschillende vlakken) we kunnen halen.
Voor het LCD-scherm vinden we dat dit gelijk is aan 4 vliegtuigen, door te starten met het ophalen van de volgende regel wanneer de VDP 297th pixel van de huidige regel uitgangen.
Voor de VGA we dat vinden zijn slechts 3 vliegtuigen uitvoerbaar als de VDP een herlaadbeurt op de 285th pixel van elke oneven lijn uitgeeft (QVGA is geïmplementeerd met behulp van de resolutie van 640 x 480 tijdsinstellingen met elke rij en kolom wordt verdubbeld).
In een toekomstige versie, zullen we overgaan tot de dubbele buffering verlichting van deze specifieke beperkingen op het ophalen van de lijn.
Demo
In deze demo is een basiswerking van de VDC komt te staan. Een vaste RGB-afbeelding wordt gegenereerd in de Frame Buffer, de VDP synchroniseert de Frame Buffer RGB met het videosignalen afhankelijk van of LCD of VGA wordt gebruikt.
Merk op dat het LCD-scherm 24-bits RGB-interface heeft, maar vanwege onze gekozen kleurindeling, we worden weergegeven bij 16-bits kleuren. De VGA-connector DAC op Nexy 3 toestaan alleen 8-bits kleuren, zodat sommige opmerkelijke kwaliteit zal worden verloren op VGA.