Hallo, ich benötige für ein Projekt einen VGA Controller mit einer Auflösung von 800x600 im sichtbaren Bereich. Dazu habe ich die VHDL Datei im Anhang gefunden. Mit Xilinx ISE Schematic Editor und ISim komme ich mittlerweile soweit klar, habe mit VHDL aber keine Erfahrung. CPLD soll ein XC95144XL werden. Mein Problem liegt nun in der effizienten Anbindung eines SRAMs. Theoretisch werden 480k Adressen benötigt also käme ein SRAM mit 512k Adressen in Frage. Die Auflösung soll 16Bit betragen. Der VGA Controller hat nun 2 Zähler: Hcount 11Bit - 1. sichtbare Pixel Adresse = 0d0000 - bis 0d1056 (ende Backporch) Vcount 11Bit - 1. Zeile Adresse = 0d0000 - bis 0d0605 (ende Vsync) Ich könnte nun beide Busse nebeneinander zum SRAM führen, hätte aber dann eine Breite von 21Bit. Ein SRAM mit 32Mbit ist aber um einiges teurer als ein 8Mbit. Wie kann ich das Problem lösen? Adressbus = (Hcount<800)*((Vcount<600)+1)? Viele Grüße Manuel
Manuel S. schrieb: > CPLD soll ein XC95144XL werden. Das könnte knapp werden. Hast Du schonmal versucht das Ganze zu synthetisieren? Manuel S. schrieb: > Der VGA Controller hat nun 2 Zähler: Dann mach noch einen dritten Zähler. Den mußt Du mit Hsync zurücksetzten und der wird nur incrementiert, wenn Du im sichtbaren Bereich bist. Duke P.S.: Mach Dir eine Testbench dazu, da kannst Du das Signalspiel schön sehen.
Manuel S. schrieb: > Hallo, > > ich benötige für ein Projekt einen VGA Controller mit einer Auflösung > von 800x600 im sichtbaren Bereich. Dazu habe ich die VHDL Datei im > Anhang gefunden. > Willst du Text darstellen oder Grafik? Wenn du nur Text darstellen willst, kommst du sogar mit weniger Speicher aus. Ein VGA Timing Datei mit Testbench habe ich auch ins Netz gehangen. Das ist immer wieder der gleiche Spaß. Die Pixelfrequenz muss stimmen.Zwei Zähler für die Zeilen- und Spaltenposition. http://www.dossmatik.de/ghdl/tb_vga.vhd http://www.dossmatik.de/ghdl/vga640_480.vhd Hier kannst du in dem Bild auf der Titelseite sehen was dann rauskommt. http://www.dossmatik.de/ghdl/ghdl_unisim.pdf
Ich möchte Grafik und Texte darstellen. Ein STM32 soll die Daten ins Ram schreiben. Eventuell würden auch 640x480 reichen. Um in die ganze Sache herein zu kommen habe ich mir das Projekt von U.Radig angesehen, allerdings hat das nur 256 Spalten und 512 Zeilen, wovon je 2 gleich sind und auch nicht alles im sichtbaren Bereich liegt. Ein XC95144XL sollte reichen. Einzigstes Problem liegt in der Ram Adressierung. Habe mal einen 3. Zähler angehangen, was soweit zu funktionieren scheint, nur springt der in der Simulation unerklärlicherweise immer an der gleichen Stelle auf 0 ohne Clear Signal.
Fehler gefunden. Das AND für CLR muss 5 Kanäle haben für die Signale vcount2,4,5,6,9 Dumm, dass man den kurzen Impuls im Simulator nicht sieht. Hat jemand vielleicht noch eine bessere Idee zur Adressierung?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.