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