www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Wie kann der PPC mit dem FPGA kommunizieren?


Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein ml507 board und benutze den mit integrierten PowerPC. Im 
Moment bin ich soweit gekommen, dass ich über Ethernet ein Bild vom PC 
zum Board schicken kann. Der PPC legt dass dann im DDR2 Speicher ab und 
schickts es wieder zurück. Nun sollte natürlich noch was mit dem Bild 
berechnet werden. Allerdings nicht auf dem PPC sondern mit dem FPGA. Nun 
zu meiner Frage: Wie kriege ich das Bild in den FPGA rein? Muss ich mir 
extra ein DDR2 Modul schreiben (und ist es überhaupt möglich, mit dem 
FPGA auf den Speicherbereich des PPC, also dem Heap, zuzugreifen?) oder 
gibts es die Möglichkeit, die Daten direkt vom PPC über ein paar Ports 
auf ein VHDL Modul zu leiten (wäre mir am liebsten)? Oder gibt es 
vielleicht noch andere Möglichekiten?

Gruß
Sascha

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am schnellsten geht die Datenübertragung über den MPMC DMA Controller. 
Da kannst du dir dann für deine Schnittstelle zur FPGA Logik was 
aussuchen. NPI oder LocalLink Interface. Beide erlauben DMA Transfer. 
Wir haben das hier mal für LocalLink gemacht, ist überschaubar und 
FIFO-basiert. Noch einfacher gehts per FSL, aber da geht kein DMA, das 
muss der PPC alles im Polling machen...

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke schonmal

aber leider läuft der MPMC über den PLB. das ist mir zu langsam. der PPC 
hat ja ne direkte anbindung an den DDR speicher. das sollte auch so 
bleiben. dazu kommt, dass ich überhaupt keine ahnung hab, wie ich das in 
vhdl bzw. systemc programmieren soll. hab leider noch nicht so viel 
ahnung von fpga und den xilinx tools. und mit FSL kann ich leider nix 
anfangen :(

Autor: Antti Lukats (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
NPI

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibts dafür nen tutorial? ich komm auf die dummen xilinx tools net klar

Autor: Antti Lukats (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MPMC datasheet

search "NPI"

Antti

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok. die timingdiagramme helfen mir schon weiter.
kann mir jetzt bitte noch einer sagen, wie ich den mpmc im edk und ise 
konfigurieren muss, damit ein vhdl modul auf die ports des mpmc zugrifen 
kann und der ppc möglichst direkt an den mpmc angeschlossen wird? währe 
euch wirklich sehr dankbar. ich blick da noch nicht so richtig durch.

Autor: Antti Lukats (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.xilinx.com

ml50x
beispiele demos
alles da

PPC mit MPMC

Antti

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sascha schrieb:
> danke schonmal
>
> aber leider läuft der MPMC über den PLB. das ist mir zu langsam.

Der PLB steuert den DMA nur. Du kannst dann einen Datentransfer direkt 
von deiner Hardware zum RAM oder zum Ethernet machen, ohne das durch den 
PPC schleifen zu müssen. Schneller gehts nicht. Dazu ist der DMA 
Controller ja da.

Autor: Antti Lukats (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na dafur sind da

NPI

ports

einen NPI dazu, und eigenes logic anbinden

Antti

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab jetzt 2 stunden die xilinx website durchsucht und nix mit ppc und 
mpmc gefunden. könnte vielleicht einer den link zu dem beispiel posten?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutz doch einfach den Base System Builder des EDK. Da kannst du das 
System schon mal für den DemoBoard zusammen klickern. Aber da du ja 
schon den DDR Speicher mit dem PPC verbunden hast, nehme ich einfach mal 
an, dass du sowieso schon den MPMC drin hast.
Dann musst du "nur" noch die passenden VHDL IP Cores schreiben und im 
EDK importieren. Dann kannst du die genauso in das System einfügen wie 
die IPs, die Xilinx mitliefert. Ist allerdings immer etwas Handarbeit, 
die Files entsprechend aufzubereiten. Allerdings wirst du ohne VHDL 
Kenntnisse nicht sehr weit kommen, denn das ist alles andere als 
trivial.

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der PPC ist direkt am DDR angeschlossen. Den MPMC macht der BSB nur bei 
Microblaze rein, weil der wohl keine integrierte MMU hat.

Ich dachte, wenn der MPMC erstmal richtig konfiguriert ist, dass ich 
dann einfach mit einem VHDL Modul (was ich unter ISE einfüge und dann 
mit dem XPS Projekt verbinde) über diesen NPI Bus an die Daten rankomme. 
Oder verstehe ich das jetzt falsch?

Wollte das dann mit SystemC schrieben und dann nach VHDL synthetisieren 
(hab ein Programm dafür). Hat bisher immer ganz gut geklappt.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sascha schrieb:
> Der PPC ist direkt am DDR angeschlossen. Den MPMC macht der BSB nur bei
> Microblaze rein, weil der wohl keine integrierte MMU hat.

Du meinst das Modul was sich irgendwie DDRSDRAM_0 oder so nennt? Das ist 
der MPMC. Der PPC an sich hat doch nur IPLB und DPLB dran, das geht gar 
nicht direkt an den Ram anzuschließen. Der MPMC wird nur vom Base System 
Builder gleich als DDR_SDRAM bla bla benannt. Das ist aber nur der 
Instanz-Name.
Wenn du in der Systemansicht auf den doppelklickst, kannst du noch einen 
zusätzlichen Port aktivieren, für dein Modul. NPI, XCL oder halt SDMA 
(ist LocalLink).

> Ich dachte, wenn der MPMC erstmal richtig konfiguriert ist, dass ich
> dann einfach mit einem VHDL Modul (was ich unter ISE einfüge und dann
> mit dem XPS Projekt verbinde) über diesen NPI Bus an die Daten rankomme.
> Oder verstehe ich das jetzt falsch?

Ja so in etwa. Wobei das "einfach" hier nicht ganz passt. Du kannst ein 
NPI oder XCL oder LocalLink kompatibles VHDL Modul basteln und das im 
XPS dann ins System integrieren. Wie gesagt, da ist noch bissl 
Handarbeit, die entsprechende Ordnerstruktur mit den Dateien zu machen, 
aber das geht schon.

> Wollte das dann mit SystemC schrieben und dann nach VHDL synthetisieren
> (hab ein Programm dafür). Hat bisher immer ganz gut geklappt.

Hmm...da kenn ich mich nicht aus. Aus Erfahrung weiß ich aber, dass man 
die meisten Sachen verkompliziert, wenn man sie versucht, zu 
vereinfachen.

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok. Erstmal vielen Dank. Sieht jetzt alles nen bisschen klarer für mich 
aus. Werd mir das dann nächste Woche nochmal genauer auf Arbeit 
anschauen.

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.