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


von Sascha (Gast)


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

von Christian R. (supachris)


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...

von Sascha (Gast)


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 :(

von Antti Lukats (Gast)


Lesenswert?

NPI

von Sascha (Gast)


Lesenswert?

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

von Antti Lukats (Gast)


Lesenswert?

MPMC datasheet

search "NPI"

Antti

von Sascha (Gast)


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.

von Antti Lukats (Gast)


Lesenswert?

www.xilinx.com

ml50x
beispiele demos
alles da

PPC mit MPMC

Antti

von Christian R. (supachris)


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.

von Antti Lukats (Gast)


Lesenswert?

na dafur sind da

NPI

ports

einen NPI dazu, und eigenes logic anbinden

Antti

von Sascha (Gast)


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?

von Christian R. (supachris)


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.

von Sascha (Gast)


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.

von Christian R. (supachris)


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.

von Sascha (Gast)


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.

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.