Hallo, ich benutze Xilinx EDK 9.1 und habe an den OPB-Bus ein selbst generiertes IP angeschlossen. DMA von hier aus funktioniert auch problemlos. Nun möchte ich, wenn in eines der User-Register eine bestimmte Bitfolge geschrieben wird, einen DMA-Transfer anstoßen, vorher aber noch ein paar andere Aufgaben (in Hardware,VHDL) erledigen. Ich müsste dann also auf die im IPIF inkludierten DMA-Register per user_logic.vhd aus zugreifen und Werte hineinschreiben. Ist das möglich ohne umständlich per Master-Attachment über den OPB zu gehen? Am liebsten wäre mit etwas wie DMA_LENGTH_REG <= 1024 oder so... Danke und Grüße Sebastian
Du willst offenbar die Zahl der zu übertragenden Daten "zur Laufzeit" festlegen. Um es einfach zu halten würde ich immer einen Block mit fester Größe übertragen und dort an geeigneter Position, neben den Daten, auch die Länge hinterlegen. Rick
Naja ich will vor allem den DMA Transfer triggern, dieser beginnt nämlich, sobald in das DMALENGTH Register ein Wert != 0 geschrieben wird.
Gänge es, wenn Du einen Interrupt für den Start des DMA-Transfers verwendest? Rick
Dann müsste ich im Software Interrupt Handler über den Bus ins DMA-Register schreiben. Dies ist jedoch nicht atomar, kann also unterbrochen werden (wenn IRQs weiterhin erlaubt sind). Der DMA Transfer müsste aber sofort starten, da sonst mein FIFO volläuft.
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.