1 VGA Ansteuerung 2 Zählerschaltung 3 VGA Testbild

Transcription

1 VGA Ansteuerung 2 Zählerschaltung 3 VGA Testbild
VHDL-RA
Aufgabenblatt 4
1
Marc Reichenbach
Konrad Häublein
VGA Ansteuerung
In dieser Übung sollen Sie eine vorgegebene VGA-Komponente mit Hilfe eines selbst erstellten
Synchronen Zählers ansteuern. Diese Komponente benötigten Sie später im Projekt um die gerenderten Bilder der Render Unit auf einem VGA-Monitor darzustellen. Im folgenden Abschnitt
werden die Funktionen der einzelnen VHD-Dateien kurz beschrieben.
• vga controller 640 60.vhd :
In dieser Datei werden die Pegel für die Pins vom Monitorausgang (Hsync und Vsnync)
generiert und gesteuert. Hierbei wird ein Bild mit der Auflösung von 640x480 zu 60 Hz
erzeugt. Weiterhin werden die Zählerstände (hcount und vcount) ausgeben, welche die
Position des aktuell ausgegebenen Pixels angeben.
• videoram.vhd :
Eindimensionaler RAM-Speicher, in welchem die Farbwerte des Bildes gespeichert werden.
Die Größe des Speichers richtet sich nach der definierten Auflösung.
• vga.vhd :
Dient der Steuerung der eben genannten Komponenten. Dabei wird abhängig von hcount
und vcount der zugehörige Farbwert von videoram.vhd an den Monitorausgang übergeben.
• utilpkg.vhd & vgapkg.vhd :
Packagedateien in denen Konstanten und Funktionen wie z.B. die skalierte Auflösung und
vordefiniert sind.
• vgatest top.vhd :
Diese Datei soll später von Ihnen ergänzt werden. Außerdem ist hier schon ein DCM-Modul
instanziiert, welches 25 MHz für den VGA-Controller generiert.
2
Zählerschaltung
• Implementieren Sie in VHDL einen Zähler mit generischer Breite mit asynchronem Reset, der mit jeder positiven Clockflanke hochzählt und den jeweils aktuellen Zählerstand
ausgibt.
• Schreiben Sie eine Testbench und simulieren Sie den Zähler.
• Erweitern Sie Ihren Zähler um einen Eingangsvektor. Diesen soll der Zähler zu Beginn
abfragen, bis zu diesem Hochzählen und anschließend zurücksetzen. Ergänzen Sie entsprechend die Testbench.
3
VGA Testbild
Nun soll am FPGA ein VGA-Testbild ausgegeben werden. Dabei sollen zwei Zähler ihren Wert
jeweils an die Speicheradresse und an den Dateneingang der VGA-Komponente übergeben. Dadurch wird jeder Speicheradresse ein inkrementierter Farbwert übergeben.
• Ergänzen sie das Toplevel Modul indem Sie Ihre Zählerkomponente zweimal instanziieren.
Als generic Wert wählen Sie 8-bit für den Farbzähler und 13-bit für den Adresszähler. Außerdem soll jeweils über ein Signal der Maximalzählerstand des Farbzählers auf 255 gesetzt
Seite 1
VHDL-RA
Aufgabenblatt 4
Marc Reichenbach
Konrad Häublein
werden und der des Adresszählers auf 4800 (RESX*RESY). Weiterhin instanziieren Sie die
VGA-Komponente un setzen die korrekten Verbindungen. Die Entity des Toplevelmoduls
sollte bestehen aus: Clock, Resetbutton, Hsync, Vsync sowie den Farbvektoren (3 Bit Rot,
3 Bit Grün, 2 Bit Blau, siehe ucf-Datei). Führen Sie die Signalzuweisung entsprechend
durch, schreiben Sie eine Testbench und testen Sie Ihre Schaltung auf dem Board.
• Zusatz: Entfernen Sie den den Farbzähler und verbinden Sie statt dessen die Switches vom
Nexys2-Board mit dem datain der VGA-Komponente. Nun sollte der Screen mit einer
beliebigen Hintergrundfarbe belegt werden können.
Seite 2