Also ich habe sowas mit dem Spartan3 Starterkit gemacht. Ich kann Dir
sagen, dass der Zugriff auf das Ram der schwierige Teil ist, weil du ja
für den Zugriff immer wechseln musst zwischen Prozessor Core und VGA
Core.
Beim Spartan3 Starterkit war das noch relativ einfach, weil dieses ein
normales SRam hat. Ich habe das dann den Zugriff zeitgemultiplext, so
dass abwechselnd 32 bit (=4 Pixel mit 8Bit Auflösung) gelesen werden und
dann 3 Mal für den Prozessor die Möglichkeit besteht, in das Ram zu
schreiben. Der VGA Core hängt bei mir an einem FSL Bus, so dass der
Prozessor im Prinzip ein eine FiFo schreibt woraus sich der VGA Core
dann bequem die Daten holen kann, wenn er Zeit zum Schreiben hat. Das
klappt gut.
Ich hatte mich gegen den OPB Bus entschieden, weil mir dieser zu langsam
ist. Wenn ich mich recht erinnere braucht er für einen normalen Zugriff
schnell mal 5 oder sogar 10 Takt Zyklen (und mehr).
Andererseits wüsste ich jetzt nicht, wie ich das mit SDRam als Grafik
Speicher auf einfache Art und Weise ohne OPB lösen würde, weil der
Zugriff auf ein SDRam deutlich aufwendiger als auf ein SRam ist. Daher
wäre wohl da der normale OPB SDRam Controller die einfachste Lösung.
Dann müsstest du aber deine OPB Grafikkarte als OPB Busmaster auslegen,
so dass diese auch ohne den Prozessor direkt auf das SDRam zugreifen
kann. Ob das dann zeitlich auch so klappt, kann ich dir aber nicht sagen
- es könnte ein Problem geben, weil die Daten vom Ram nicht schnell
genug kommen.
Im Endeffekt wäre wohl der beste Weg der, dass man sich einen eigenen
SDRam Controller für den VGA Core bastelt, der es dann auch erlaubt
abwechselnd darauf zuzugreifen. Das ist aber keine einfache Sache.
Vielleicht gibt es auch einen passenden Core Generator, der dir einen
SDRam Core generieren kann, den du dann nutzen könntest.
Gruß,
Thomas