Hallo, ich entwickel gerade einen eigenen IP Core, der später am PLB hängt, welcher wiederum mit einem Microblaze und einem DMA Controller verbunden ist. Mein IP Core ist dabei ein Slave und hat einen Write Fifo. Jetzt zur Frage: Kann der DMA Controller direkt was ins Fifo meines IPCores schreiben? Wenn ja, merkt der DMA Controller selbstständig, wenn der Fifo meines IP Cores voll ist und wartet dann bis wieder Platz ist, oder kommt es dann zu einem Fehler? Gruß, Christoph
Was für ein DMA-Controller? Der MPMC? Wenn ja, musst du dir mal das Dokument für das Local Link Interface bei Xilinx runter laden. Das ist eine bidirektionale DMA-FIFO Schnittstelle. Darüber kommuniziert beispielsweise der TEMAC mit dem DMA-Controller. Ist aber leider nicht ganz so trivial zu implementieren, vor allem, wenn der noch Bus-Matching machen soll. Die DMA Geschichten bei Xilinx sind etwas aufwendig, dann gibts noch den XCL, Xilinx Cache Link, das ist im Prinzip ein FSL Bus, allerdings kann der nur als Cache dienen. Alle anderen DMA Interfaces sind meines Wissens nicht direkt FIFO-basiert.
Also ich würde ganz gerne den XPS Central DMA Controller benutzen. Meinst du diesen mit dem MPMC? Wenn nicht, wie sieht es mit diesem aus, wenn ich auf den FIFO meines IP Cores schreibe? Bemerkt der DMA Controller, wenn der Fifo voll is und wartet mit dem Transfer, bis wieder Platz ist?
Ahso, der kleine DMA-Controller. Da muss ich dann mal schauen, was der überhaupt für Interfaces hat. Wenn du aber ein Interface nachbaust, was FIFO basiert ist, dann merkt der das.
So, hab mir mal den XPS Central DMA angeschaut. So wie es aussieht, arbeitet der mit dem FSL Bus (Die MCH Channels). Das ist ein sehr simpler FIFO-Bus, das ist problemlos zu implementieren. Und der DMA Controller kümmert sich dann um die Steuersignale und wartet auch auf die Daten oder wirft dir einen Fehler, wenn die nicht in bestimmter Zeit verfügbar sind. So macht es zumindest der MPMC meines Wissens.
Okay, danke erstmal, ich werde den nächste Woche mal für meinen IP Core testen, melde mich dann nochmal, obs geklappt hat
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.