Forum: FPGA, VHDL & Co. Xilinx EDK 9.1: auf DMA S/G Register per user_logic zugreifen


von Sebastian (Gast)


Lesenswert?

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

von Rick Dangerus (Gast)


Lesenswert?

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

von Sebastian (Gast)


Lesenswert?

Naja ich will vor allem den DMA Transfer triggern, dieser beginnt 
nämlich, sobald in das DMALENGTH Register ein Wert != 0 geschrieben 
wird.

von Rick Dangerus (Gast)


Lesenswert?

Gänge es, wenn Du einen Interrupt für den Start des DMA-Transfers 
verwendest?

Rick

von Sebastian (Gast)


Lesenswert?

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