LabVIEWForum.de
FPGA FIFO vs. MEMORY - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA)
+---- Thema: FPGA FIFO vs. MEMORY (/Thread-FPGA-FIFO-vs-MEMORY)



FPGA FIFO vs. MEMORY - derandyk - 30.11.2018 11:10

Hallo,

ich habe eine Frage bezüglich der FPGA Elemente FIFO und MEMORY. Ich bin mir unsicher, was die Verwendung dieser Daten angeht.

Meine Aufgabenstellung besteht darin, einen Signalausgangsverlauf aus verschiedenen vorgegebenen Stützpunkten zu generieren. Dieser Signalverlauf hat eine maximale Dauer von ca. 1h. Nun sollen aber transiente Signalspitzen im Bereich von 1ms möglich sein. Ich habe darüber nachgedacht eine Tabelle mit 3.600.000 Werten zu erzeugen und diese mittels FIFO oder MEMORY Block im FPGA zur Verfügung zu stellen. Diese würde ich dann mit einer 1ms Loop im FPGA durchklingeln...

Ich schätze mal die Idee ist bescheuert. 3.6Millionen Elemente erscheinen mir jetzt nicht unbedingt elegant.

Deswegen fange ich mal elementar an: Ist es überhaupt sinnvoll hier so Elemente wie Memory oder FIFO zu verwenden? Wann verwendet man typischerweise beide Elemente? Wie identifiziere ich die Begrenzungen beider Elemente?

Vielen Dank im Voraus

Andy


RE: FPGA FIFO vs. MEMORY - GerdW - 30.11.2018 11:42

Hallo Andy,

Zitat:Ich schätze mal die Idee ist bescheuert. 3.6Millionen Elemente erscheinen mir jetzt nicht unbedingt elegant.
Ja, die Idee ist bescheuert, solange du von MemoryBlocks redest.

Zitat:Wie identifiziere ich die Begrenzungen beider Elemente?
Angaben zu den MemoryBlocks findest du im Manual deines Gerätes!
Allgemein: die FPGAs unterstützen (intern) nur sehr wenig Speicher. Es gibt ein paar, die auf spezieller Hardware auch externen Speicher verwenden können - die wirst du wahrscheinlich nicht benutzen…

Ich würde überlegen, ob ich die Signale in Teile zerlegen kann, die einzeln deutlich weniger Speicher benötigen: einen Sinus braucht man nur einmal als Tabelle und kann davon resamplen. Einen Puls benötigt man vielleicht auch nur mit relativ wenigen Samples. Man kann über den FIFO neue Daten in den FPGA schieben, die man dort evtl. auch in einem Memoryblock abspeichert… (Und bei Memoryblock meine ich Tabellen mit vielleicht 1000 oder 2000 Werten.)