Forum: FPGA, VHDL & Co. EDK 9.1 Testversion + VGA


von Manuel (Gast)


Lesenswert?

Hallo!

Kennt sich vielleicht jemand von euch mit dem Xilinx EDK aus? Habe mir 
hier etwas SDRAM an mein Spartan Starter Kit gebastelt und wollte jetzt 
mal ein wenig Linux laufen lassen. Dazu hätte ich gerne ein kleines TFT 
Display an den VGA Port angehängt. Leider habe ich im EDK keinen CORE 
gefunden der etwas mit VGA / TFT zu tun hätte.

Im internet hab ich gesehen da wurden verschiedene Cores benutzt z.B. 
plb_tft_cntlr_ref. Den gibt es bei mir aber leider nicht. Kann das sein 
das das daran liegt das ich nur eine Testversion habe? Oder sind in der 
9.1 version keine VGA/TFT cores mehr dabei?

Gruß,
  Manuel

von Matthias M. (frost)


Lesenswert?

Dafür brauchste eigentlich keinen Core... VGA-Signale lassen sich ganz 
einfach erzeugen.
Aber wenn Du einen suchst, schau mal bei www.opencores.org
Die haben einen. Habe ihn allerdings net probiert.

von Matthias M. (frost)


Lesenswert?

Ach so... Net richtig gelesen... Wie das mit der Linux-Anbindung ist, 
kann ich Dir nicht sagen...

von Manuel (Gast)


Lesenswert?

So, habe jetzt herausgefunden das beim EDK kein VGA IP dabei ist.

Die VGA Specs. sehen ja nicht so problematisch aus und es gibt jede 
menge dazu im netz. Das Problem ist jetzt wie das ganze implementiert 
werden muss damit es auch mit dem EDK läuft.

Ich hab mir das jetzt so überlegt:

SRAM als Framebuffer - und zwar gleich 2x. Auf der 1. seite wird gelesen 
und auf der zweiten geschrieben. Das ganze wird dann beim VSYNC 
geändert. 1. seite schreiben 2. seite lesen.

So jetzt "nur" noch die anbindung an den OPB und die integration ins 
EDK. Hat sowas schon mal jemand gemacht und kann mir vielleicht etwas 
unter die Arme greifen?

Gruß,
 Manuel

von Breti (Gast)


Lesenswert?

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

von Manuel (Gast)


Lesenswert?

Ja, ich hab eigentlich vor den SRAM als VGA Puffer zu verwenden. Der 
SDRAM ist dann als Programmspeicher gedacht. (Soll ja uCLinux laufen, da 
hab ich mir mal 16MB an A2 gebastelt). Ich hab also vor es genau so wie 
du zu machen.

Das mit dem FSL bus ist schon mal eine gute Idee, muss ich mir gleich 
mal anschauen. Und mehr als 6 Bit/Pixel brauch ich eigentlich auch 
nicht; 64 Farben sollten reichen.

Gruß,
  Manuel

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
Noch kein Account? Hier anmelden.