!!

Willkommen Besucher...

...um das das LabVIEWForum.de als Benutzer in vollem Umfang nutzen zu können, ist eine kostenlose Registrierung nötig...
Registrierte Benutzer können Beiträge schreiben, Dateien uploaden, Beiträge lesen :) uvm.


Antwort schreiben 
FIFO darf überlaufen?
30.08.2010, 13:03 (Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2010 13:18 von Matze.)
Beitrag #1

Matze Offline
LVF-Team
LVF-Team

Beiträge: 980
Registriert seit: Apr 2010

LV-Version: 2011 / 2010 / 2009
LV-Erfahrung seit: 2010
LV-Sprachversion: DE_EN

PLZ: 7xxxx
Land: Deutschland
FIFO darf überlaufen?
Hi zusammen,

ich nutze ein DMA-FIFO mit folgenden Einstellungen:

   

Beim Auslesen kann ich über "Elements Remaining" ermitteln, wie viele Werte sich noch im FIFO befinden.
Lasse ich den FIFO voll laufen, gibt mir "Elements Remaining" auch Werte jenseits der 1023-Grenze aus ohne einen Fehler zu werfen (FPGA ist momentan simuliert).
Bei 9960 Werten ist jedoch Schluss und der Wert verändert sich nicht mehr. Es kommt kein Fehler, aber der FIFO ist dann wohl komplett voll.

Habe ich hier einen Denkfehler oder wieso kommt keine Fehlermeldung bzw. wieso kann der FIFO mehr als 1023 Werte aufnehmen?

Was mich auch wundert:
Ich schreibe die Messwerte (aktuell unter Windows) im 1-ms-Takt in den FIFO. Gut, da es unter Windows ist, weicht dieser Wert sicher etwas ab.
Wenn ich die Werte in einer Schleife im Host-VI auslese, die um 200 ms verzögert ist, läuft der FIFO nicht voll, obwohl ich immer nur 50 Werte auf einmal auslese. Erst ab einer Verzögerung von ca. 300 ms läuft der FIFO voll
Ich hätte erwartet, dass bis zu einer Verzögerung von ca. 50 ms der FIFO nicht voll läuft und alles über 50 ms zum Überlauf führt.

Was hat es damit auf sich?

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
. .
30.08.2010, 14:06
Beitrag #2

Martin Heller Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 241
Registriert seit: Feb 2010

LV-Version: 8.6.1
LV-Erfahrung seit: 2008
LV-Sprachversion: EN

PLZ: 5232
Land: Schweiz
FIFO darf überlaufen?
' schrieb:Bei 9960 Werten ist jedoch Schluss und der Wert verändert sich nicht mehr. Es kommt kein Fehler, aber der FIFO ist dann wohl komplett voll.


Ich verwende kein "FXP"-FIFO, aber bei mir ist der Speicher bei 9999 Schluss (ohne Fehler)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.08.2010, 14:14
Beitrag #3

Matze Offline
LVF-Team
LVF-Team

Beiträge: 980
Registriert seit: Apr 2010

LV-Version: 2011 / 2010 / 2009
LV-Erfahrung seit: 2010
LV-Sprachversion: DE_EN

PLZ: 7xxxx
Land: Deutschland
FIFO darf überlaufen?
' schrieb:Ich verwende kein "FXP"-FIFO, aber bei mir ist der Speicher bei 9999 Schluss (ohne Fehler)
Ist das bei dir auch unabhängig vom eingestellten Wert?

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.08.2010, 14:22
Beitrag #4

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 441
Registriert seit: Jun 2006

LV-Version: 8.6.1, 2011 PDS
LV-Erfahrung seit: 2006
LV-Sprachversion: DE_EN

PLZ: 64283
Land: Deutschland
FIFO darf überlaufen?
Hi,

zum einen würde ich dem simulierten FPGA nicht ganz trauen, was timing etc. angeht.

Zum zweiten: Die FIFO-Größe, die Du in den Kontext-Menü-Einstellungen angibst, ist der Puffer, der - meine ich - im FPGA-Memory reserviert wird. Wenn Du aber ein Target to Host hast, hat LabView noch einen hinterlegten Prozess, der die Daten aus dem Puffer ins Memory schreibt (daher DMA) und das ist im Vergleich zum FPGA halt relativ groß...;)Und ich meine, wenn man im Host die Fifo-Größe-Property aufruft, bekommt man die Anzahl der Elemente, die gerade im Memory liegen und nicht nur die im Puffer. Ich übertrage über meinen 1023 Werte langen U32-FIFO zum Beispiel auch mal mehrere MB an Messdaten auf diese Weise...

Was die 9960 WErte angeht: Hast Du bei der Fifo-Config die vielleicht angegeben?

Grüße,

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.08.2010, 15:06 (Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2010 15:07 von Matze.)
Beitrag #5

Matze Offline
LVF-Team
LVF-Team

Beiträge: 980
Registriert seit: Apr 2010

LV-Version: 2011 / 2010 / 2009
LV-Erfahrung seit: 2010
LV-Sprachversion: DE_EN

PLZ: 7xxxx
Land: Deutschland
FIFO darf überlaufen?
Achso hm, dann ist der Begriff "FIFO - Elements Remaining" etwas irreführend, wenn sich das z.T. auf den RAM bezieht, in den die Werte vom FIFO übertragen wurden.

' schrieb:Was die 9960 WErte angeht: Hast Du bei der Fifo-Config die vielleicht angegeben?
Meinst du den Screenshot aus dem ersten Beitrag? Mehr habe ich nicht eingestellt bzw. ich wüsste auch nicht, wo ich noch etwas einstellen kann.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.08.2010, 15:39
Beitrag #6

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 441
Registriert seit: Jun 2006

LV-Version: 8.6.1, 2011 PDS
LV-Erfahrung seit: 2006
LV-Sprachversion: DE_EN

PLZ: 64283
Land: Deutschland
FIFO darf überlaufen?
Es gibt auf dem Host ein Fifo-Property "Config" im Blockdiagramm. Dort kann man die Größe des Fifos, was in dem Fall dem Arbeitsspeicher entspreicht,d en LV allokieren soll, entspricht...
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
.. .
30.08.2010, 18:40
Beitrag #7

Matze Offline
LVF-Team
LVF-Team

Beiträge: 980
Registriert seit: Apr 2010

LV-Version: 2011 / 2010 / 2009
LV-Erfahrung seit: 2010
LV-Sprachversion: DE_EN

PLZ: 7xxxx
Land: Deutschland
FIFO darf überlaufen?
Ah, am Host lässt sich was einstellen. Das wusste ich nicht. Ich werde das morgen testen.Smile

Hast du noch eine Idee, wieso der FIFO sich bei einer Verzögerung von 200 ms nicht füllt?
Windows bzw. das simulierte FPGA ist zwar nicht sehr genau, aber dass es so ungenau ist, glaube ich auch weniger.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.08.2010, 07:06 (Dieser Beitrag wurde zuletzt bearbeitet: 31.08.2010 09:43 von Matze.)
Beitrag #8

Matze Offline
LVF-Team
LVF-Team

Beiträge: 980
Registriert seit: Apr 2010

LV-Version: 2011 / 2010 / 2009
LV-Erfahrung seit: 2010
LV-Sprachversion: DE_EN

PLZ: 7xxxx
Land: Deutschland
FIFO darf überlaufen?
Guten Morgen,

diese Eigenschaft habe ich bisher nicht verwendet. Setze ich diese jedoch auf 1023 für alle FIFOs, dann liegt das Maximum von "Elements Remaining" bei 983.
Da das Ermitteln der verbleibenden Werte nach dem Auslesen erfolgt, erwarte ich eher 1023 - 50 = 973 Werte. Und in der Zwischenzeit können eigentlich keine 10 Werte mehr hinzukommen, da es sich um einen einzigen Knoten handelt.
Es tritt allerdings kein Fehler auf, den ich bei einem Überlauf eigentlich erwarte.

Edit: So langsam wird es klarer:
Ohne "Configure"-Knoten ist die Standardeinstellung des Host-Memories auf 10.000 Werte eingestellt laut Hilfe.
Mit meinen 9960 Werten erhalte ich somit 40 Werte weniger (obwohl ich 50 auslese). Beim soeben genannten Beispiel mit den 1023 Werten sind es ebenfalls 40 Werte weniger.
Also besteht da schon irgendein Zusammenhang.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Rainbow ein DMA FIFO für verschieden Datentypen ? car 1 834 29.02.2012 14:27
Letzter Beitrag: RoKi0815
  FIFO und FFT bei hoher Abtastrate RoKi0815 4 590 29.02.2012 13:43
Letzter Beitrag: erik.brenncke
  Schwierigkeiten mit variabler Datenerfassung, Zeitstempel und Fifo Markus82 8 1.306 07.06.2011 21:02
Letzter Beitrag: cheggers
  Problem mit FIFO Einstellungen e.meu 6 1.987 26.01.2011 16:59
Letzter Beitrag: BNT
  DMA-FIFO leeren Matze 8 2.222 08.09.2010 06:20
Letzter Beitrag: Falk
  Host to Target FIFO Werner 5 1.840 22.04.2010 08:35
Letzter Beitrag: dlambert

Gehe zu: