Forum: FPGA, VHDL & Co. Xilinx DMA Controller und eigener IP Core


von ChrisB (Gast)


Lesenswert?

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

von Christian R. (supachris)


Lesenswert?

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.

von ChrisB (Gast)


Lesenswert?

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?

von Christian R. (supachris)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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.

von ChrisB (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.