CycloneV FIFO Überlauf

Gast #5763384
Lesenswert?

Hallo zusammen,

wir sind gerade damit beschäftigt, Daten vom FPGA auf den HPS zu 
bekommen, um sie dann via Ethernet in Matlab zu transferieren. Letzteres 
klappt schon problemlos, ersteres leider noch nicht.
Wir verwenden ein FIFO ("Avalon FIFO Memory Intel FPGA IP") auf dem 
FPGA, von welchem der HPS über die H2F-Schnittstelle die Daten ausliest. 
Das FPGA schreibt die Daten in das FIFO hinein. Das FIFO nutzt einen 
OnChip-SRAM, welches auf jeden Fall groß genug ist. Trotzdem tritt das 
Phänomen auf, dass, sobald wir die Daten nicht aus dem FIFO holen, das 
FIFO überläuft (bei einem FIFO ja eigentlich gar nicht möglich) und dann 
abstürzt. Wenn wir die Daten fleißig abholen, arbeitet das System gut. 
Kennt jemand dieses Phänomen?

Schöne Grüße
Sebastian
Gast #5763412
Lesenswert?

Hallo,

wie kommst du auf die Idee das ein FIFO nicht überlaufen kann? Wenn da 
mehr Daten kommen als Speicher da ist, wo sollen die hin?

Welche Quartus Version? Die IP-Cores sind teilweise etwas buggy, da 
lohnt sich manchmal dann doch die aktuellere Version zu nehmen.

Ich kenne eure Anwendung nicht, aber wenn ihr nur die Daten aus dem FPGA 
in das HPS bekommen wollt, wäre das vll. auch über DMA zu machen.

Paar mehr Infos wären hilfreich...
Bare Metal oder mit OS?
Quartus Version?
Woher kommen die Daten? Werden diese im FPGA verarbeitet oder nur 
durchgereicht?
Schreib halt mal ein wenig mehr was ihr machen wollt.
Gast #5763419
Lesenswert?

Sebastian schrieb:
> Trotzdem tritt das
> Phänomen auf, dass, sobald wir die Daten nicht aus dem FIFO holen, das
> FIFO überläuft (bei einem FIFO ja eigentlich gar nicht möglich) und dann
> abstürzt.

Über grundlegenede FIFO-Missverständnisse wurde vor kurzem dort 
debattiert:
Beitrag "Xilinx Built-in FIFO"

Und wenn das System abgestürzt liegt es vielleicht an einem nicht 
behandelten IRQ den die FIFO Füllstandsabhängig lostritt.
Gast #5764419
Lesenswert?

-gb- schrieb:
> Dann verstehst du was anderes unter überlaufen. Wenn langsamer aus dem
> FIFO gelesen wird wie in ihn geschrieben wird dann ist der irgendwann
> voll. Wenn dann weiter geschrieben wird werden die Daten nicht
> angenommen.

Es mag ja sein, dass FIFOs nicht automatisch alte Werte löschen und neue 
einfügen, wenn sie voll sind, aber dann sollte es zumindest nicht 
abstürzen, wenn man versucht, neue Daten einzufügen. Und erst recht 
nicht bei "Größe des FIFOs"-1. Abstürzen heißt hier einen Füllstand von 
0 anzuzeigen und keine neuen Werte mehr anzunehmen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren