mikrocontroller.net

Forum: FPGA, VHDL & Co. X Werte aus dem FIFO lesen


Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze einen Virtex 5 und einen AD-Converter. Zudem habe ich ein 
externes Triggersignal. Ich erkenne die ansteigende Triggerflanke und 
löse somit den Digitalisierungsprozess aus. Ich schreibe dann X Werte in 
den Block-RAM-FIFO.

Außerdem verwende ich beim Block-RAM-FIFO das programmierbare Flag für 
den Füllzustand. Ich habe z.B. eingestellt das dieses Flag den Zustand 1 
hat wenn 2000 Werte im FIFO stehen.

Ich möchte die Daten immer Blockweise im FIFO speichern und auslesen. 
Jedoch bin ich noch nicht 100% sicher wie ich es am besten realisieren 
soll.

Ich hatte es wie folgt gedacht:

Wenn der FIFO die 2000 Daten besitzt, dann erzeuge 2000 Lesepulse um die 
2000 Daten herrauszulesen. Jedoch wird auch gleichzeitig wieder in den 
FIFO reingeschrieben.

Gibt es vielleicht andere Lösungsvorschläge? (immerhin gibt es beim FIFO 
ja eine Menge optinale Flags)

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johann schrieb:

> Wenn der FIFO die 2000 Daten besitzt, dann erzeuge 2000 Lesepulse um die
> 2000 Daten herrauszulesen. Jedoch wird auch gleichzeitig wieder in den
> FIFO reingeschrieben.

Klingt gut. Es macht ja nix, wenn zwischenzeitlich wieder was reinkommt 
(solange wie genug Platz ist). Du guckst halt erst nach dem 
Blockauslesen wieder nach, ob schon wieder 2000 Werte drinstehen.

Duke

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Momentan tue ich mich mit dem Reset-Pulse etwas schwer. Sprich wenn alle 
2000 Messwerte aus dem FIFO gelesen wurde, dann setze ich ein 
"DATA_TRANSFER_READY" Flag.

Im nächsten Schritt muss ich dann keinen kurzen Reset-Pulse erzeugen, 
aber genau da tue ich mich verdammt schwer.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johann schrieb:
> Im nächsten Schritt muss ich dann keinen kurzen Reset-Pulse erzeugen,
> aber genau da tue ich mich verdammt schwer.
Für wen oder was brauchst Du diesen Resetpuls? Jedenfalls nicht für den 
FIFO.
Ansonsten erweiterst Du Deine Statemachine um die Pulserzeugung und 
gehst danach erst in den State 
WAIT_FOR_FIFO_IS_FILLED_FOR_BLOCKTRANSFER.

Duke

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.