17.03.2014, 09:41
Guten Morgen,
Ich habe drei Fragen zum detaillierteren Verhalten vom LabView FPGA (genauer dem CRio 7852R, als PciE-Karte)
1. Ich habe im VI nur zwei While-Loops, die keine Abhängigkeiten untereinander und keine Start Abhängigkeiten haben. Beide fangen also direkt beim Starten des FPGA's an zu laufen. Ich frage mich, wie synchron das passiert? Werden sie im gleichen Takt gestartet? Für mich ist absolute Synchronität wichtig.
2. Der ADC sollte mit 750kHz sampeln können. Nehme ich eine while Schleife und lasse den Wert des ADC nur "schnell" in einem Register speichern, komme ich auf eine Ausführungsrate von 808kHz. Was genau bedeutet das für den ADC? Verliere ich dort Genauigkeit wenn ich es über 750kHz laufen lasse?
3. Ich möchte in der schnellstmöglichen Zeit Daten sampeln und weiterverarbeiten. Dazu möchte ich erst die Daten vom ADC einlesen und in einem Register speichern (Loop 1) und dann Berechnungen anstellen (Loop 2). Die Frage ist nun, zu welchem Zeitpunkt der ADC den Wert in das Register schreibt. Sprich das FPGA fährt hoch die Loop startet, der ADC liest den Wert. Braucht er nun 1,3us (die 750kHz) um den Wert zu schreiben oder kann er sofort einen Wert schreiben und muss dann jedoch erst 1,3us warten bis der nächste kommt?
Die Frage dabei ist halt, wie kann ich in Loop2 möglichst dicht die aktuellen Werte aus Loop 1 nutzen? Wenn Der ADC den Wert bei Schleifenstart sofort schreibt und dann wartet, könnte ich Loop 2 um ein paar clock cycles verschieben und müsste nicht eine ganze Loop Runde warten, bis der Wert im Register aktuell ist. Wenn jedoch erst nach 1,3us der ADC seinen Wert schreibt, brauche ich die Loop nicht verzögern weil dann ja sofort der nächste Loop durchgang ansetzt und den Wert nimmt. Dabei spielt natürlich auch Frage 1 eine Rolle.
Im Anhang ist mal das betreffende VI zu sehen. Ich hoffe ich habe mich halbwegs verständlich ausgedrückt.
Ich habe drei Fragen zum detaillierteren Verhalten vom LabView FPGA (genauer dem CRio 7852R, als PciE-Karte)
1. Ich habe im VI nur zwei While-Loops, die keine Abhängigkeiten untereinander und keine Start Abhängigkeiten haben. Beide fangen also direkt beim Starten des FPGA's an zu laufen. Ich frage mich, wie synchron das passiert? Werden sie im gleichen Takt gestartet? Für mich ist absolute Synchronität wichtig.
2. Der ADC sollte mit 750kHz sampeln können. Nehme ich eine while Schleife und lasse den Wert des ADC nur "schnell" in einem Register speichern, komme ich auf eine Ausführungsrate von 808kHz. Was genau bedeutet das für den ADC? Verliere ich dort Genauigkeit wenn ich es über 750kHz laufen lasse?
3. Ich möchte in der schnellstmöglichen Zeit Daten sampeln und weiterverarbeiten. Dazu möchte ich erst die Daten vom ADC einlesen und in einem Register speichern (Loop 1) und dann Berechnungen anstellen (Loop 2). Die Frage ist nun, zu welchem Zeitpunkt der ADC den Wert in das Register schreibt. Sprich das FPGA fährt hoch die Loop startet, der ADC liest den Wert. Braucht er nun 1,3us (die 750kHz) um den Wert zu schreiben oder kann er sofort einen Wert schreiben und muss dann jedoch erst 1,3us warten bis der nächste kommt?
Die Frage dabei ist halt, wie kann ich in Loop2 möglichst dicht die aktuellen Werte aus Loop 1 nutzen? Wenn Der ADC den Wert bei Schleifenstart sofort schreibt und dann wartet, könnte ich Loop 2 um ein paar clock cycles verschieben und müsste nicht eine ganze Loop Runde warten, bis der Wert im Register aktuell ist. Wenn jedoch erst nach 1,3us der ADC seinen Wert schreibt, brauche ich die Loop nicht verzögern weil dann ja sofort der nächste Loop durchgang ansetzt und den Wert nimmt. Dabei spielt natürlich auch Frage 1 eine Rolle.
Im Anhang ist mal das betreffende VI zu sehen. Ich hoffe ich habe mich halbwegs verständlich ausgedrückt.