LabVIEWForum.de
Laufzeitfehler nach Compiler - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA)
+---- Thema: Laufzeitfehler nach Compiler (/Thread-Laufzeitfehler-nach-Compiler)

Seiten: 1 2 3


Laufzeitfehler nach Compiler - Jansen83 - 28.10.2009 09:48

Folgendes Problem:

Mein Ursprungsprogramm habe ich auf dem Host geschrieben.
Im Anschluss dessen habe ich es auf das Target kopiert, Variablen und Datentypen angepasst und einige Anzeigeelemente entfernt.
Laut Compilerstatus wird das Programm vollständig compiliert.
Allerdings wird mir in der Zusammenfassung ein Fehler angezeigt, womit das Programm nicht lauffähig ist.

"Compilation failed due to timing violations"
Auszug aus der Zusammenfassung:

Clock Rates: (Requested rates are adjusted for jitter and accuracy)
Base clock: 40 MHz Onboard Clock
Requested Rate: 40,408938MHz
Achieved Rate: 26,010508MHz <<<=== Timing Violation
Base clock: MiteClk (Used by non-diagram components)
Requested Rate: 33,037101MHz
Theoretical Maximum: 47,719030MHz

Dass die erreichte Rate nicht der geforderten entspricht erkenne ich, allerdings weiß ich nict dies zu lösen.
Mit der Hilfe kann ich leider auch wenig anfangen, da kein expliziter Fehler angezeigt wird sondern nur Lösungsvorschläge.
Woran scheitert es? :-(


Lv86_img


Laufzeitfehler nach Compiler - Jansen83 - 28.10.2009 14:27

Ich hab es im Laufe es Tages zumindest schon auf den Case "Rampenfahrt" eingrenzen können, da der Rest soweit mehr oder minder zumindest läuft, was bisher nicht der Fall war....


Laufzeitfehler nach Compiler - Jansen83 - 29.10.2009 13:05

Hab nun auch den Großteil meiner FXP in Integer Datentypen umgewandelt aber auch das führte noch nicht zum Erfolg.
So langsam verlassen mich meine IdeenSadSadSad


Laufzeitfehler nach Compiler - Y-P - 29.10.2009 15:37

Hast Du da schon mal geschaut? Oder dort?

Gruß Markus


Laufzeitfehler nach Compiler - chrissyPu - 29.10.2009 17:11

Hi,

zuerst einmal: Bitte alle Sub-VIs mit dazu packen.

Zweitens: Was in Deinem FPGA-VI programmiert ist, ist ziemlich Kraut und Rüben.

Was sollen die zwei While-Schleifen ineinander?

Den Großteil der Lokalen Variablen kannst du m.E. rausnehmen (wenn ich mal das Verhalten von LabVIEW auf LabVIEW FPGA übertrage, haust Du Dir damit ganz schön den FPGA voll, weil LV FPGA nicht mal schnell aufs Memory zugreifen kann). Das sieht zwar übersichtlich aus, allerdings ist es damit zeitlich undefiniert. Das könnte beim Compilen ein Problem sein.

Der Ansatz, erst auf dem Host zu programmieren und dann das auf das Target zu kopieren ist - gelinde gesagt - ziemlicher Schwachsinn. Ich würde Dir ehrlich gesagt empfehlen, das nochmal ordenlcih zu machen, sprich erst mal zu defnieren, welche Aktionen auf dem Host udn welche auf dem Target laufen müssen, wie Du Daten hin und her bekommst und was wie laufen soll. So seh ich da ehrlich gesagt sehr wenig Erfolg, hier im Forum Hilfe zu bekommen, wenn man sich durch das Chaos durchwursten muss...

Grüße,

ch


Laufzeitfehler nach Compiler - dlambert - 30.10.2009 15:26

Die konsequente Anwendung von Single Cycle Timed Loops bewirkt oft wahre Wunder.

Sorry, aber den Code habe ich mir nicht angesehen.


Laufzeitfehler nach Compiler - Jansen83 - 03.11.2009 10:17

' schrieb:Hi,

zuerst einmal: Bitte alle Sub-VIs mit dazu packen.

Zweitens: Was in Deinem FPGA-VI programmiert ist, ist ziemlich Kraut und Rüben.

Was sollen die zwei While-Schleifen ineinander?

Den Großteil der Lokalen Variablen kannst du m.E. rausnehmen (wenn ich mal das Verhalten von LabVIEW auf LabVIEW FPGA übertrage, haust Du Dir damit ganz schön den FPGA voll, weil LV FPGA nicht mal schnell aufs Memory zugreifen kann). Das sieht zwar übersichtlich aus, allerdings ist es damit zeitlich undefiniert. Das könnte beim Compilen ein Problem sein.

Der Ansatz, erst auf dem Host zu programmieren und dann das auf das Target zu kopieren ist - gelinde gesagt - ziemlicher Schwachsinn. Ich würde Dir ehrlich gesagt empfehlen, das nochmal ordenlcih zu machen, sprich erst mal zu defnieren, welche Aktionen auf dem Host udn welche auf dem Target laufen müssen, wie Du Daten hin und her bekommst und was wie laufen soll. So seh ich da ehrlich gesagt sehr wenig Erfolg, hier im Forum Hilfe zu bekommen, wenn man sich durch das Chaos durchwursten muss...

Grüße,

ch


Hast recht, die äußere While Schilfe ist natürlich murks, resultierte aus ner Veränderung des Progamms und hab sie schlicht weg vergessen zu löschen. Ist schon geändert.
Ansonsten ist dein Kommentar schon n ziemlicher Dämpfer für mich.
Die Art und Weise der Programmierung resultiert aus dem Ansatz eines Betreuers, sprich erst auf dem Host zu beginnen und es dann aufs Target zu übertragen. Hatte vor Beginn der Arbeit noch keinen Kontakt mit LV. Unsure
Jetzt heißt es für mich retten was zu retten ist. Mir läuft ziemlich die Zeit davon und ich werd nicht fertig.
Blöd gefragt, welche Alternativen hab ich zur Verwendung der lokalen Variablen? Oder ist es sinnvoll globale zu verwenden und welchen Vorteil würde es mir bringen? Sorry der Fragerei, aber nur aus nem Grundlagenbuch und minimaler Hilfestellung durch Betreuer werd ich nur schwer Herr der Lage....
Ebenfalls die korrekte Anwendung der SCTL ist mir nicht ganz klarSad

Lv86_img


Laufzeitfehler nach Compiler - chrissyPu - 03.11.2009 11:17

Guten Tag...

' schrieb:Ansonsten ist dein Kommentar schon n ziemlicher Dämpfer für mich.
Die Art und Weise der Programmierung resultiert aus dem Ansatz eines Betreuers, sprich erst auf dem Host zu beginnen und es dann aufs Target zu übertragen. Hatte vor Beginn der Arbeit noch keinen Kontakt mit LV. Unsure
Weiß jetzt nicht, was echte Cracks dazu sagen, aber ich halte den Ansatz für unsinnig, da das FPGA-Target einfach anders funktioniert als der Host und manche Sachen, die auf dem Host sinnvoll sind, auf dem Target keinen ergeben bzw. zu ressourcenschädlich sind. Außerdem hat mn mit einer kombinierten Entwicklung von Host und Target gleich die Möglichkeit, die Interaktion sinnvoll zu testen...

' schrieb:Jetzt heißt es für mich retten was zu retten ist. Mir läuft ziemlich die Zeit davon und ich werd nicht fertig.
Blöd gefragt, welche Alternativen hab ich zur Verwendung der lokalen Variablen?
Naja, zumindest in den Fällen, wo Du innerhalb einer Sequenz oder Schleife den gleichen Wert nutzt: direkte Verbindung. Hat auch den Vorteil, dass der Datenfluss definiert ist...;)Sicherlich macht es an manchen Stellen Sinn, auch auf dem FPGA Lokale Variablen zu nutzen, aber halt nicht, um in einem Sequenzrahmen vielleicht nen Draht zu sparen, damit's nicht so wirr aussieht (sorry, aber ich hab das Gefühl, das ist an vielen Punkten der Grund, warum Du das so gemacht hast).

' schrieb:Oder ist es sinnvoll globale zu verwenden und welchen Vorteil würde es mir bringen? Sorry der Fragerei, aber nur aus nem Grundlagenbuch und minimaler Hilfestellung durch Betreuer werd ich nur schwer Herr der Lage....
Eine Variable ist dann sinnvoll, wenn ich sie an mehren Punkten im Programm schreibe und lese, der Ablauf aber nicht definiert ist, in dem das geschieht. Alle anderen Fälle sind mit direkter Verdrahtung und Schieberegistern m.E. sinnvoller gelöst (andere Meinungen sind willkommen, so ganz sicher bin ich mir auch nicht)...

' schrieb:Ebenfalls die korrekte Anwendung der SCTL ist mir nicht ganz klarSad
Naja, eine SCTL ist, wie die Hilfe sicher sagt, eine Schleife, die möglichst in einem Taktzyklus des FPGA abgearbeitet werden sollte, daraufhin optimiert der Compiler den Code. Wenn Du irgendwo ein Timing-Problem hast, ist es vielleicht sinnvoll, an diesem Punkt zu versuchen, mit SCTLs den Compiler zu zwingen, da ein bisschen mehr Denkarbeit reinzustecken und durch Optimierung einzelner Teile das Timing-Problem zu lösen...

Grüße,

ch


Laufzeitfehler nach Compiler - Jansen83 - 03.11.2009 12:51

Die Reduzierung der lokalen Variablen macht mir Sinn. Wobei ich, zumindest auf den ersten Blick, nur wenige vermeiden kann.
Aber dein Verdacht ist schon richtig, dass ich Verdrahtungen sparen wollte. Damit ist mir ein weiteres grundsätzliches Problem schon mal klar.

Die Problematik Host/ Target ist für mich nachvollziehbar. Werde versuchen überflüssige Programmteile im Target zu sparen und die Datenausgabe sowie Speicherung im Host sinnvoll umzusetzen.

Trotz aller Bemühungen merke ich halt, dass immer noch grundlegendes Verständnis bei der kommunikation zw. Host und Target vorhanden sind.

Die Funktion der SCTL bekomme ich noch nicht wirklich umgesetzt. Werde mich versuchen weiter mit der Hilfe auseinander zu setzen, bin aber für Tips sehr dankbar.

Gruß Jan


Laufzeitfehler nach Compiler - Jansen83 - 03.11.2009 14:30

Nur noch mal für mein Verständnis:

Auf dem Target läuft das eigentliche Programm ab, sprich in meinem Falle die Steuerung und Regelung des Linearschlittens.
Der Host ist für die graphische Darstellung (Diagramme usw.) und Datenspeicherung, sofern natürlich implemtiert, zuständig.
Korregiert mich bitte falls ich falsch liege.