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 

Speicherzugriff



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!

21.02.2010, 17:15
Beitrag #1

Werner Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Jul 2009

8.6
-
de

43298
Deutschland
Speicherzugriff
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.02.2010, 19:42
Beitrag #2

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
Speicherzugriff
Hi,

FIFO ist ein Puffer, der nicht dafür gedacht ist, dauerhaft Daten abzulegen. Generell wird der dafür genutzt, Datenströme von FPGA zu Host oder andersrum zu transferieren und dient eigentlich nur dazu, unterschiedliches Timing in beiden Systemen zu ermöglichen und sicher zu stellen, dass man gleichzeitig lesen und schreiben kann.

Hast Du mal überlegt, ob Du Deine Daten nciht einfach per I/O-Node im Host überträgst? Das ist nicht ganz so schnell und man müsste, um es ganz sicher zu machen, noch mit nem Interrupt oder so arbeiten, aber prinzipiell könnte ich mir schon vorstellen, dass Du einfach ein Array oder ein Cluster auf dem FPGA als Bedienelement erzeugst (vor dem Compilieren kann man da Größen etc. angeben) und dann damit arbeitest. Sollte für Deinen Fall eigentlich tun.

Grüße,

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: