Hallo!
Ich bin bei meiner VI-Erstellung nach diesem Beispiel (5. LabVIEW FPGA Tutorial) vorangegangen:
NI DevZone FPGA Tutorial
Dabei wird der FIFO so eingestellt, dass er Zahlen von -16 bis +16 darstellen kann.
Da ich aber auch größere Zahlen in den FIFO speichern möchte, habe ich versucht, entsprechend die Wortlänge und Integer-Wortlänge zu ändern, aber sobald ich auch nur z.b. Integer-Wortlänge von 5 auf 6 bit ändere, bekomme ich den Fehler "LabVIEW FPGA: Das VI muss für das gewählte Ziel neu kompiliert werden"
Wenn ich dann das FPGA.vi neu kompiliere kommt trotzdem immer derselbe Fehler.
Woran könnte das liegen?
Danke im Voraus für eure Antworten
Hi
zur Übertragung von FixedPoint-Daten in (DMA-)FIFOs benutze ich gern Integer.
FixedPoint-Zahlen caste in auf dem FPGA in Integer, wobei die Bits dieselben bleiben, von LV nur anders interpretiert werden. Auf dem Host caste ich in den originalen FixedPoint-Type zurück.
Während der Entwicklung kannst Du verschiedene FixedPoint-Formate über Conditional Disable Symbole aktivieren. Dann ist natürlich ein Recompile notwendig. Das gilt aber für jede Änderung des FixedPoint-Formats.
Gruß Holger
Danke Holger!
Zwischenzeitlich hat sich mit dem Beispiel-Programm noch ein neues Problem aufgetan und zwar scheinen die Eingänge nachdem die Daten vom FIFO gelesen und ausgegeben werden, nicht mehr richtig getrennt zu werden.
Im Analog Input Chart gehen bei Belastung von nur einer Kraftmessdose (0-10V) die 3 anderen Plots auch nach oben.
Wenn ich alles ohne FIFO geloggt habe, funktioniert es, aber da ich Abtastraten von ca. 10khz benötige bleibt mir nur der Weg über den FIFO, oder?
Die 2 VIs hab ich mal angehängt. (2009SP1)
Mfg
Eric
Hi
Ich habe mal rekonstruiert, was Du programmiert hast, siehe VI-Snippet.
Du musst die Datenelemente richtig einsortieren, dann bleiben die anderen Kanäle auf Null.
Gruß Holger
' schrieb:FixedPoint-Zahlen caste in auf dem FPGA in Integer, wobei die Bits dieselben bleiben, von LV nur anders interpretiert werden. Auf dem Host caste ich in den originalen FixedPoint-Type zurück.
Ich hatte nie Probleme, die Fixed-Point-Werte direkt in DMA-FIFOs zu schreiben und auszulesen.
So sieht das bei mir aus (habe keine Messkarten hier, daher dieser gestrichelte Draht):
[
attachment=31917]
Danke Holger, genau so funktioniert es. Schade dass es nicht mit dem NI-Beispielweg funktioniert.
Und warum auch immer konnte ich die Eigenschaften des FIFOs diesmal ändern und nach einmaligem kompilieren hat auch das funktioniert
Hi
da hatte ich Deinen ersten Beitrag wohl nicht richtig verstanden.
Selbstverständlich muss auch ich bei Änderung des FixedPoint-Formats erneut kompilieren. Das ging aber immer ohne Probleme. Der Trick mit der Integer FIFO und dem Typecasten bezieht sich auf das einmalige Implementieren des Frameworks zur Datenübertragung. Die Konversionen werden dann explizit in den Tiefen der SubVIs gemacht, die von anderen Benutzern implemtiert werden, die sich um die Datenübertragung, etc. nicht weiter kümmern müssen.
Aber es freut mich, dass Dein Problem jetzt gelöst ist.
Gruß Holger