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
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...
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 :(
gibts dafür nen tutorial? ich komm auf die dummen xilinx tools net klar
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.
www.xilinx.com ml50x beispiele demos alles da PPC mit MPMC Antti
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.
na dafur sind da NPI ports einen NPI dazu, und eigenes logic anbinden Antti
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?
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.