INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

FIFO darf überlaufen?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

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: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
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
Anzeige
30.08.2010, 14:06
Beitrag #2

Martin Heller Offline
LVF-Stammgast
***


Beiträge: 250
Registriert seit: Feb 2010

2011 SP1
2008
EN

5232
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: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
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: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
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: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
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: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
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
Anzeige
30.08.2010, 18:40
Beitrag #7

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
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: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
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
  FPGA FIFO vs. MEMORY derandyk 1 4.506 30.11.2018 11:42
Letzter Beitrag: GerdW
  16 Kanal AI mit FPGA und DMA FIFO derandyk 12 12.388 23.11.2018 15:56
Letzter Beitrag: BNT
  FPGA FIFO Roland 5 7.827 28.05.2018 20:16
Letzter Beitrag: jg
  unplausible Werte aus FIFO kwakz 2 7.437 28.09.2015 06:05
Letzter Beitrag: kwakz
  FPGA FIFO - Oszilloscop PxCE_HB 9 13.481 08.09.2015 14:35
Letzter Beitrag: GerdW
  FIFO Fehler beim auslesen logan 2 7.005 15.01.2015 16:33
Letzter Beitrag: logan

Gehe zu: