Ein Kanal, ein Sample

Berechnet die schnelle Fourier-Transformation (FFT) des Eingangssignals punktweise.

1378

Ein-/Ausgänge

datatype_icon

Zurücksetzen

Boolescher Wert, mit dem festgelegt wird, ob der interne Zustand des Knotens zurückgesetzt werden soll.

True Setzt den internen Zustand des Knotens zurück.
False Setzt den internen Zustand des Knotens nicht zurück.

Default value: False

Funktionsweise mit Handshaking-Ein- und -Ausgängen

Die Handshaking-Ein- und -Ausgänge an diesem Knoten funktionieren während den Perioden folgendermaßen, wobei Zurücksetzen auf "True" gesetzt ist:

  • Eingabe gültig wird ignoriert.
  • Für Ausgabe bereit wird ignoriert.
  • Ausgabe gültig ist "False".
  • Für Eingabe bereit ist "False". Damit werden Fälle verarbeitet, in denen Zurücksetzen für mehr als eine Periode auf "True" gesetzt ist. Dieser Knoten ist bereit für Eingaben, nachdem das Zurücksetzen abgeschlossen ist und Zurücksetzen "False" ausgibt.
datatype_icon

Daten (Eingang)

Eingangssignal, für welches die FFT berechnet werden soll.

Der Eingang arbeitet mit folgenden Datentypen:

  • Vorzeichenbehafteter 8-Bit-Integer
  • Vorzeichenloser 8-Bit-Integer
  • Vorzeichenbehafteter 16-Bit-Integer
  • Vorzeichenloser 16-Bit-Integer
  • Vorzeichenbehafteter 32-Bit-Integer
  • Festkommazahl
  • Komplexe Festkommazahl

Die maximale Wortlänge für diesen Eingang beträgt 32 Bit.

datatype_icon

Eingabe gültig

Boolescher Wert, der anzeigt, ob das nächste Datenelement zur Verarbeitung eingetroffen ist. Verbinden Sie den Ausgang Ausgabe gültig eines vorgelagerten Knotens mit diesem Eingang, um Daten von einem vorgelagerten Knoten an diesen Knoten zu übergeben.

True Das nächste Datenelement ist zur Verarbeitung eingetroffen.
False Das nächste Datenelement ist noch nicht zur Verarbeitung eingetroffen.
datatype_icon

Für Ausgabe bereit

Boolescher Wert, der festlegt, ob nachgelagerte Knoten für einen neuen Ausgabewert von diesem Knoten bereit sind. Verwenden Sie einen Rückkopplungsknoten zum Verbinden des Ausgangs Für Eingabe bereit eines nachgelagerten Knotens mit diesem Eingang des aktuellen Knotens.

True Nachgelagerte Knoten sind bereit für einen neuen Ausgabewert von diesem Knoten.
False Nachgelagerte Knoten sind nicht bereit für einen neuen Ausgabewert von diesem Knoten.
Hinweis Wenn dieser Eingang während einer Ausführungsperiode "False" ist, gibt der Ausgang Ausgabe gültig für diese Periode "False" aus.

Default value: True

datatype_icon

Daten (Ausgang)

FFT des Eingangssignals.

Die maximale Wortlänge für das DFT-Ergebnis beträgt 32 Bit.

Anpassen der Wortlänge der FFT

Typischerweise ist die Wortlänge der FFT log2 (N)+1 Bits größer als die Eingangsdaten, wobei N die FFT-Größe ist. Sie können die Wortlänge der FFT anpassen, indem Sie auf der Registerkarte Objekt auf die Schaltfläche Konfiguration komplexer Festkommawerte neben dem Element Genauigkeit im Abschnitt Anschlüsse klicken.

Das Verringern der Ausgabewortlänge spart FPGA-Ressourcen, reduziert aber die Genauigkeit. Es wird empfohlen, dass Sie eine bestimmte Konfiguration simulieren, um sicherzustellen, dass die erreichte Genauigkeit Ihren FPGA-Ressourcen- und Timing-Anforderungen entspricht.

datatype_icon

Datenindex

Index der FFT-Unterteilungen, die dieser Knoten ausgibt.

Default value: 0

datatype_icon

Ausgabe gültig

Boolescher Wert, der angibt, ob dieser Knoten ein Ergebnis berechnet hat, das von nachgelagerten Knoten verwendet werden kann.

Verbinden Sie diesen Ausgang mit dem Eingang Eingabe gültig eines nachgelagerten Knotens, um Daten vom Knoten an den nachgelagerten Knoten zu übertragen.

True Nachgelagerte Knoten können das Ergebnis verwenden, das dieser Knoten berechnet.
False Dieser Knoten gibt einen undefinierten Wert aus, der für nachgelagerte Knoten unbrauchbar ist.
Hinweis Die ausgegebenen undefinierten Werte können im Simulationsmodus und auf der Hardware unterschiedlich sein.
datatype_icon

Für Eingabe bereit

Ein boolescher Wert, der bestimmt, ob dieser Knoten bereit ist für das Annehmen neuer Eingangsdaten. Verwenden Sie einen Rückkopplungsknoten um diesen Eingang mit dem Anschluss Für Ausgabe bereit eines vorgelagerten Knotens zu verbinden.

True Dieser Knoten ist bereit, neue Eingangsdaten anzunehmen.
False Dieser Knoten kann keine neuen Eingangsdaten annehmen.
Hinweis Wenn der Ausgang während einer Taktperiode "False" ausgibt, verwirft der Knoten in der nachfolgenden Taktperiode die von anderen Knoten gesendeten Daten. Der Knoten verwirft auch Daten, wenn Eingabe gültig bei der nachfolgenden Taktperiode auf "True" wechselt.

Diagramm zur Zeitsteuerung

Dieser Knotens arbeitet mit einem Durchsatz von einer Periode pro Sample. Der Knoten nimmt also jedes Mal, wenn er aufgerufen wird, neue Daten an. Im folgenden Diagramm wird das Timing des Knotens veranschaulicht.


1378

Vermeiden von Datenverlust während der FFT-Analyse

Während der FFT-Berechnung nimmt dieser Knoten weder Werte an, noch werden Werte ausgegeben. Wenn das System oder ein anderer Knoten während dieser Zeit Daten an diesen Knoten sendet, werden diese Daten verworfen. Dies kann passieren, wenn dieser Knoten Daten als Teil eines komplizierten oder nicht einheitlichen Musters empfängt.

Um Datenverlust zu vermeiden, erstellen Sie einen FIFO, in dem die Daten gespeichert werden, bis dieser Knoten erneut Werte akzeptiert. Vergewissern Sie sich, dass der von Ihnen erstellte FIFO groß genug ist, um alle Datenpunkte aufzunehmen, die während der FFT-Berechnung eingehen. Um die Größe des zu erstellenden FIFO grob zu schätzen, teilen Sie die Latenz dieses Knotens durch den durchschnittlichen Systemdurchsatz. Die Wartezeit kann im Abschnitt Ausführungsgeschwindigkeit auf der Registerkarte Objekt des Konfigurationsfensters eingestellt werden.

Optimierung für Genauigkeit, Ressourcenverbrauch oder Timing

Sie können diesen Knoten im Abschnitt Optimierung auf der Registerkarte Objekt zur Optimierung von Genauigkeit, minimalem Ressourcenverbrauch oder Ausführungsgeschwindigkeit konfigurieren.

Im Abschnitt Ziel können Sie diesen Knoten so konfigurieren, dass beim Festlegen der Wortlängen der Ausgangsdaten entweder die Genauigkeit der Ausgangsdaten optimiert oder der Ressourcenverbrauch minimiert wird. In der folgenden Tabelle finden Sie Richtlinien dafür, welche Option für Ihren spezifischen Anwendungsfall zu verwenden ist.

Anwendungsfall Empfohlene Option Funktionsweise des Knotens Ergebnis
Sie möchten die Genauigkeit der letzten Bits der Ausgabedaten auf Kosten eines erhöhten FPGA-Ressourcenverbrauchs optimieren. Genauigkeit Dieser Knoten erweitert die Wortlänge der Eingangsdaten auf die Ausgangswortlänge durch Auffüllen mit Nullen. Diese Wortlänge wird von allen internen komplexen Multiplikationsoperationen verwendet. Verglichen mit der Option Ressourcenverbrauch behalten die komplexen Multiplizierer mehr Bits bei und die erhöhten log2(N)+1 Bits in den Ausgangsdaten sind genauer.
Sie möchten den FPGA-Ressourcenverbrauch auf Kosten weniger genauer Ausgabedaten reduzieren. Ressourcenverbrauch Dieser Knoten erhöht die Wortlänge stufenweise von Eingabe zur Ausgabe. Daher erhöht sich die Bitbreite von komplexen Multiplizierern ebenfalls stufenweise. Verglichen mit der Option Genauigkeit sind die Bitbreiten der komplexen Multiplizierer und internen Register kleiner, wodurch FPGA-Ressourcen gespart werden und möglicherweise eine höhere FPGA-Taktrate während der Kompilierung erzielt wird.

Wenn dieser Knoten nach der Konfiguration des Optimierungsziels immer noch nicht Ihre Anforderungen an Genauigkeit, Ressourcenverbrauch oder Ausführungsgeschwindigkeit erfüllt, können Sie die Werte von Drehfaktor-Wortlänge und Anzahl von Pipelining-Stufen in Butterfly anpassen, um die Ausführungsgeschwindigkeit dieses Knotens zu verbessern.