Hallo, ich versuche das Beispiel Design aus dieser Support Antwort zum Laufen zu bringen: http://www.xilinx.com/support/answers/24912.htm Es handelt sich dabei um ein Test Modul für das direkte schreiben und lesen über den MPMC aus einer VHDL user logic über das NPI PIM (ohne PLB, Procesor, etc.). Mein Board: XUPV5-LX110T Umgebung: ISE 12.3 System Edition, EDK Ich habe ein EDK XPS Projekt erzeugt mit MicroBlaze (und weiterer Peripherie) sowie MPMC Controller für den DDR2 RAM. Außerdem habe ich das Beispiel Design in den pcores Ordner kopiert, ebenfalls instanziiert und mit einem NPI Port-Netz des MPMC verbunden. Alle Cores sind richtig mit Takten und reset verbunden. Die init-done Signale vom MPMC und auch von dessen NPI Port gehen auf '1'. Das Beispiel Design vergleicht gelesene und geschriebene Daten und gibt ein error Signal aus, welches ich auf ein LED lege. Ich habe am Code nichts geändert, trotzdem habe ich permanent compare errors. Laut Xilinx Foren funktioniert dieses Beispiel jedoch. Hat das jemand schon einmal getestet und noch einen Tipp? Danke im Voraus! Grüße, Sebastian
Hi, ich verwende den Beisiel in meinem Projekt, allerding habe ich es schon am Anfang geändert, die Compare Modus habe ich sofort gelöscht. Ich habe mir ein bestimmten Anzahl Daten in Speicher geschrieben und dann mit MicroBlaze die Stellen ausgelesen. So konnte ich mindestens feststellen, dass das MPMC was tut. WICHTIG: das NPI CLK ist = MPMC CLK, was default 2xSysCLK ist glaube ich. Mindestens bei mir war es so eingestellt. Das NPI Interface ist immer 1:1 mit dem MPMC Clk Gruss, Valentin
Hi, danke für die Antwort. Was ist für dich SysCLK? Der Takt, der in den MicroBlaze geht oder der, der von außen als Quelle für den clock generator dient? Der Takt, der aus dem clock generator kommt (125Mhz) wird bei mir momentan auf alle Komponenten verteilt, also sowohl MicroBlaze als auch MPMC und NPI user logic. Sebastian
Hi, also MPMC_Clk0 und das NPI Interface clock müssen gleich sein. Gruss, Valentin
Das ist der Fall. Und da auch, wie schon geschrieben, die Initalisierung von allem erfolgreich ist, scheint das auch nicht das Problem zu sein.
Dann kannst du einfach ausprobieren, XX Werte im Speicher zu schreiben und den Bereich mittels Microblaze auszulesen.
Hi, der thread ist zwar schon ein paar Wochen alt, aber ich habe zu diesem Thema noch ein paar Probleme. Wie Valko im letzten Post schreibt, funktioniert es bei mir, d.h. ich habe mittels des weiter oben erwähnten NPI Beispiels Daten geschrieben und kann sie mit dem mb auslesen. Allerdings funktioniert das lesen mit dem FPGA leider noch nicht. Ich habe das Beispiel so geändert, dass ein 32-word burst read gemacht wird, d.h. npi_size habe ich auf "0100" gesetzt. Ansonsten bleibt alles gleich. Die gelesenen Daten speichere in einfach in ein array von std_logic_vector, das ich direkt danach wieder in den SDRAM schreibe. Wenn ich diese Daten dann mit dem mb auslese, erhalte ich ausschließlich 0 (Null). Kennt jmd. dieses Phänomen beim lesen? Was genau mache ich falsch? grüße, sebastian
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.