www.mikrocontroller.net

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


Autor: Sascha (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.