LabVIEWForum.de - Basic Frage zu FPGA-Schleifenzeiten

LabVIEWForum.de

Normale Version: Basic Frage zu FPGA-Schleifenzeiten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Servus Zusammen,

ich habe eine kurze Verständnisfrage zu der Einstellung der Schleifenzeiten in einem FPGA VI.

Einige Beispiele (z.B. 9217) setzt das Loop Timer Express VI in eine Sequence vor den eigentlichen Code.
Hier ist eigentlich auch schöne beschrieben, warum diese Art der Implementation keine Auswirkung auf die Schleifenzeit haben sollte:
http://zone.ni.com/reference/en-XX/help/...functions/

In anderen Beispielen wird allerdings auf diese Anordnung verzichtet (z.B. 9201), sondern das Express VI einfach parallel zum code in die Schleife gsteckt.

Was ist denn der Unterschied zwischen beiden Implementationen? Hab ich bei einer einen Vorteil/Nachteil?

Danke schonmal und beste Grüße,
börtschl
so wie ich die Sache verstehe dient die Sequenz dazu, eine Reihenfolge in der Ausführung zu erzwingen. So kannst du festlegen, ob ein bestimmter Teil des Codes z.B. vor oder nach der Wartezeit ausgeführt wird. Ansonsten entscheided LV das selbst.
Also, die saubere Anwendung des FPGA Loop Timer VI ist die im ersten Teil einer Flat Sequenz. Der genaue Hintergrund ist in der ausführlichen Hilfe zu diesem VI IMHO gut beschrieben. Besonders interessant das z.B. bei digitalen Bussen (RS232/485, SPI, etc pp.), da muss ein DIO in einem genau definierten Takt gelesen oder gesetzt werden. Nur durch Einsatz in einer Sequenzstruktur ist sichergestellt, dass beim zweiten Durchlauf der Takt eingehalten wird. Bei paralleler Programmierung kann das erst ab dem dritten Schleifendurchlauf garantiert werden. Wenn es auf den exakten Takt beim 2. Durchlauf nicht ankommt, dann ist der parallele Einsatz genauso gut erlaubt. Danach ist zwecks FPGA-Kompilierung natürlich alles deterministisch.

Gruß, Jens
Referenz-URLs