Forum: FPGA, VHDL & Co. PLB Slave Range falsch


von Sascha (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein ML507 Board und benutze ISE 11.3. Bei der Implementierung 
eines 32-Bit PLB Slaves habe ich das Problem, dass der IpCore an die 
falschen Bytes des PLB Datenbusses angeschlossen ist (sowohl read als 
auch write). Der angehängte ChipScope Screenshot zeigt das Problem. Der 
PowerPC soll ein 0xCCCCCCCC an den IpCore schicken. Der IpCore ließt 
allerdings 0x000001FC von dem PLB Datenbus. Er ließt so zusagen am 
"falschem Ende" des Datenbusses.

Ich habe schon probiert über die MPD-Datei des IpCores die Vektoren des 
PLB Datenbusses so zu verstellen, dass der IpCore richtig angeschlossen 
wird.
Ich habe also
"PORT PLB_wrDBus = PLB_wrDBus, DIR = I, VEC = [0:(C_SPLB_DWIDTH-1)], BUS 
= SPLB"
in
"PORT PLB_wrDBus = PLB_wrDBus, DIR = I, VEC = [96:127], BUS = SPLB"
verändert. Auch ein "VEC = [127:96]" führt zu einem flaschem Ergebnis. 
Das EDK zeigt mir auch stets "[0:(C_SPLB_DWIDTH-1)]" in der Rangespalte 
der Datenbusse an. Beim synthetisieren bekomme ich allerdings einen 
Fehler, wenn ich unsinnge Werte einstelle (es scheint also nicht 
ignoriert zu werden).

Es ist auch seltsam, dass der Chipscope IBA-Core einen 128-Bit breiten 
Datenbus anzeigt, obwohl in der MPD des "plb_v46_0" Cores 64 Bit als 
Datenbusbreite eingetragen sind. Vielleicht liegt es daran, dass in der 
MPD des PowerPC's 128 Bit als PLB Datenbusbreite eingetragen ist. So wie 
ich es verstande habe ist das die Verbindung vom PPC zur Crossbar. Von 
der Crossbar zu den IpCores sollte ja dann der "plb_v46_0" Core 
zuständig sein und damit auch einen 64-Bit breiten Datenbus verwenden. 
Da Der Chipscope IBA ja an diesem Core angeschlossen ist, sollte es mir 
ja auch 64 Bit anzeigen.

Der IpCore kommt nur an die "richtigen" Bytes ran, wenn ich ihn auf 
128-Bit Datenbusbreite einstelle. Das ist allerdings eine nicht so tolle 
Lösung, weil sie unnötig FPGA Ressourcen kostet.

Ich habe mal noch den IpCore an den Forumthread angehangen. Vielleicht 
ist auch dort der Fehler drin.

Ich wäre sehr dankbar wenn mir einer bei dem Problem helfen könnte.


Gruß
Sascha

von Sascha (Gast)


Lesenswert?

So, ich habe das Problem jetzt selber gelöst bekommen. Ich habe eine 
"plbv46_plb46_bridge" eingefügt. Jetzt habe ich im Chipscope und am 
IpCore einen 32 Bit Datenbus.
Leider ist gleich das nächste Problem aufgetreten. Mal schauen ob dann 
gleich nen neuer Forumthread kommt :)

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.