Ich habe ein Altera DE2-Board und versuche, Sprites zu zeichnen. Ich habe Probleme beim Implementieren eines Bildschirmpuffers.
Ich habe eine Anzeigeeinheit, die mit einer Rate von 25 MHz Pixel für die VGA-Anzeige ausgibt.
Ich hatte gehofft, einen Puffer in SDRAM zu implementieren. Die ursprüngliche Idee war, Pixel das nächste Pixel mit einer Rate von 25 MHz aus dem SDRAM zu laden. Dies funktioniert, aber ich kann weder Pixel mit dieser Geschwindigkeit in das SDRAM schreiben noch den Bildschirm für jeden neuen Frame schnell genug löschen. Ich brauche 2 Takte, um Daten zu schreiben, und mein Board arbeitet mit 50 MHz, sodass ich gerade genug Zeit habe, um einen vollständigen Lesevorgang durchzuführen.
Ich würde annehmen, dass ich etwas schrecklich, schrecklich falsch mache. Wie wird eine solche Zeichenfläche normalerweise in VHDL implementiert?
Ich könnte am ehesten ein 2-3-3 (RGB) -Farbschema verwenden, um jedes Pixel abzurufen und während der VGA-Zeit "Veranda" (Austastung) auf den Leinwand-RAM zu schreiben. Dies bedeutet, dass ich bei jeder der 25-MHz-Uhren nur 15% des Bildschirms aktualisieren kann und meine Schaltung irgendwie wissen muss, welche 15% sie aktualisiert?
Ich kann nicht herausfinden, wie man doppelte Pufferung verwendet, weil ich nicht herausfinden kann, wie man beim Lesen Daten in den Speicher schreibt. Gibt es eine Möglichkeit, Bit-Banging des Protokolls zu vermeiden? Wie macht dieser Typ das?