Hallo, ich habe das SP605-Board. Auf Basis des Reference Design von Xilinx kann ich ein einfaches Testbild erzeugen in VHDL, nämlich ein Bild mit zwei Balken, Auflösung 1280x1024@70 Hz, pixel clock = 100MHz. Nun möchte ich das gleiche Bild erzeugen mit Microblaze. Der DVI Block wird als Slave mit dem Microblaze über FSL-Bus verbunden (FSL_Clk = 100MHz). Mit folgendem Befehl schicke ich Daten an den DVI-Block: putfslx(value, 0, FSL_NONBLOCKING); Und hier tritt das Problem auf. Es dauert 6 Taktzyklen bis ein Wert in den FSL Fifo geschrieben wird (gemessen durch FSL_S_Exists = '1' in Chipscope anaylzer). Der DVI Block braucht aber Daten nach jedem Clock. Gibt es eine Lösung, womit kontinuierliche Daten @ 100 MHz oder höher (z.B. für Full HD @ 60Hz min. pixel clock = 125 MHz) vom Microblaze an den DVI geschickt werden? Wenn ein FIFO dazwischen geschaltet wird, wird es irgendwann underflow sein, weil ankommende Daten langsamer sind als ausgehende. Für Ratschläge bin ich sehr dankbar. Grüße
Hallo Hanel, bin kein VHDL-Experte, aber ich denke, dein Ansatz ist nicht ganz der richtige. Du versuchst, mit dem Microblaze die Bild-Daten zu erzeugen und per DVI auszugeben. Das bringt sicherlich Timing-Schwierigkeiten mit sich, da der Prozessor die Daten erzeugen/ bearbeiten und an DVI weitergeben muss - da wird er sicherlich mal aus dem Tritt kommen ... (abgesehen von den Latenzen) Vermutlich ist es besser, dem µBlaze einen Video-RAM (kein FIFO) zu spendieren. Das sollte mit dem SP605 gehen. D.h. der Microblaze schreibt nur die neuen Daten in das VRam und der DVI-Block holt sich diese selbständig aus dem V-Ram. Ausserdem hat der Prozessor jetzt mehr "Luft" für andere Aufgaben. Gruss Uwe
Hallo Uwe, Dankeschön für deinen Vorschlag. Auf dem SP605 ist ein 128MB DDR3 Speicher. Und ich bin auch "noch" nicht fit in VHDL, deshalb möchte ich mit Hilfe des Microblaze den DDR3 steuern (sowohl schreiben als auch lesen). Aber wenn ich richtig verstanden habe, der Microblaze kann mir die Arbeit des Datenschreibens ins RAM erleichtern, nur das Lesen aus dem RAM muss ich mit HDL erledigen, damit das Timing funktioniert, stimmts? Danke und viele Grüße Hanel
hanel schrieb: > Aber wenn ich richtig verstanden habe, der Microblaze kann mir > die Arbeit des Datenschreibens ins RAM erleichtern, nur das Lesen aus > dem RAM muss ich mit HDL erledigen, damit das Timing funktioniert, > stimmts? > > Danke und viele Grüße > Hanel Hallo Hanel, Schau Dir mal den Multiport Memorycontroller MPMC an. An diesen kannst Du einen Zugang vom Microblaze zum RAM schalten und einen weiteren als dedizierten Leseport anschliessen. Wie schon richtig bemerkt, ist eine relativ schwachbruestige CPU im Mittel nicht in der Lage ein kontinuierliches Hires Bild auszugeben.
Eure Tipps bringen mich wirklich weiter. Nochmal herzlichen Dank an Uwe und Vanilla :-)
hanel schrieb: > Gibt es eine Lösung, womit kontinuierliche Daten @ 100 MHz oder höher > (z.B. für Full HD @ 60Hz min. pixel clock = 125 MHz) vom Microblaze an > den DVI geschickt werden? Schau mal in den EDK IP Catalog, da gibt es "IO Modules -> XPS TFT". Das ist genau dafür gemacht worden. Duke
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.