21.02.2010, 17:15
Hallo zusammen,
ich möchste mit dem FPGA NI 7813R mit 1728kBits (=216KByte) embedded RAM folgendes Problem lösen ohne zu große Einbußen in der Laufzeit zu bekommen:
Zuerst eine Datenübertragung von 10 bis 200 32Byte Blöcken vom PC zum Speicher des FPGAs. Dann nachdem der FPGA im "normalen" Betrieb ist, soll der FPGA den Speicher durchsuchen und bestimmte Datenblöcke zur Berechnung des weiteren Ablaufs verwenden. Die Datenblöck haben alle die gleiche Struktur. Es soll z.B. nach einem bestimmten Index gesucht werden, der bei einem Datenblock immer an der gleichen Stelle steht.
In C/C++ oder ähnlichen wäre das für mich absolut kein Problem, doch die FPGA Programmierung in LabVIEW stellt mich da vor eine größere Herausforerung.
Ich würde nun erstmal die Daten mittels DMA an den FPGA übertragen. Das hat auch bisher ganz gut geklappt. Doch leider habe ich diese Übertragung bisher nur mit einem FIFO hinbekommen. Ich könnte mir nun natürlich alle Daten einzeln aus dem FIFO holen und mit einer "Memory Read" oder "Memory Write" Funktion in den Speicher schreiben. Doch das sehe ich als eher ineffektiv an, da die Daten des DMA FIFO doch ohnehin irgendwo in dem gleichen Speicher liegen. Außerdem ist mir dann noch keine wirklich effiziente Methode eingefallen auf die Daten zuzugreifen. Z.B. wären die Datenblöcke nach gewissen Kriterien sortiert, so dass es effektiv wäre mit Pointern zu arbeiten, doch wie geht das mit LabVIEW?
Bitte gebt mir Anregungen oder evtl. weiterführende Links. Über die "Suche" habe ich nicht wirklich etwas passendes gefunden. Ich hoffe das was ich vorhabe geht überhaupt mit dem Device.
Gruß
Werner
ich möchste mit dem FPGA NI 7813R mit 1728kBits (=216KByte) embedded RAM folgendes Problem lösen ohne zu große Einbußen in der Laufzeit zu bekommen:
Zuerst eine Datenübertragung von 10 bis 200 32Byte Blöcken vom PC zum Speicher des FPGAs. Dann nachdem der FPGA im "normalen" Betrieb ist, soll der FPGA den Speicher durchsuchen und bestimmte Datenblöcke zur Berechnung des weiteren Ablaufs verwenden. Die Datenblöck haben alle die gleiche Struktur. Es soll z.B. nach einem bestimmten Index gesucht werden, der bei einem Datenblock immer an der gleichen Stelle steht.
In C/C++ oder ähnlichen wäre das für mich absolut kein Problem, doch die FPGA Programmierung in LabVIEW stellt mich da vor eine größere Herausforerung.
Ich würde nun erstmal die Daten mittels DMA an den FPGA übertragen. Das hat auch bisher ganz gut geklappt. Doch leider habe ich diese Übertragung bisher nur mit einem FIFO hinbekommen. Ich könnte mir nun natürlich alle Daten einzeln aus dem FIFO holen und mit einer "Memory Read" oder "Memory Write" Funktion in den Speicher schreiben. Doch das sehe ich als eher ineffektiv an, da die Daten des DMA FIFO doch ohnehin irgendwo in dem gleichen Speicher liegen. Außerdem ist mir dann noch keine wirklich effiziente Methode eingefallen auf die Daten zuzugreifen. Z.B. wären die Datenblöcke nach gewissen Kriterien sortiert, so dass es effektiv wäre mit Pointern zu arbeiten, doch wie geht das mit LabVIEW?
Bitte gebt mir Anregungen oder evtl. weiterführende Links. Über die "Suche" habe ich nicht wirklich etwas passendes gefunden. Ich hoffe das was ich vorhabe geht überhaupt mit dem Device.
Gruß
Werner