Forum: FPGA, VHDL & Co. (MPMC) NPI Xilinx example design Fehler


von SebastianR (Gast)


Lesenswert?

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

von Valko Z. (hydravliska)


Lesenswert?

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

von SebastianR (Gast)


Lesenswert?

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

von Valko Z. (hydravliska)


Lesenswert?

Hi,

also MPMC_Clk0 und das NPI Interface clock müssen gleich sein.


Gruss,
Valentin

von SebastianR (Gast)


Lesenswert?

Das ist der Fall. Und da auch, wie schon geschrieben, die Initalisierung 
von allem erfolgreich ist, scheint das auch nicht das Problem zu sein.

von Valko Z. (hydravliska)


Lesenswert?

Dann kannst du einfach ausprobieren, XX Werte im Speicher zu schreiben 
und den Bereich mittels Microblaze auszulesen.

von SebastianR (Gast)


Lesenswert?

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