mikrocontroller.net

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


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian (Gast)
Datum:

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

Autor: Rick Dangerus (Gast)
Datum:

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

Rick

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.