Ein Kanal, ein Sample
- Aktualisiert2023-02-17
- 5 Minute(n) Lesezeit
Ein Kanal, ein Sample
Berechnet die schnelle Fourier-Transformation (FFT) des Eingangssignals punktweise.
Ein-/Ausgänge

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.

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.

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. |

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. |
Default value: True

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.

Datenindex
Index der FFT-Unterteilungen, die dieser Knoten ausgibt.
Default value: 0

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. |

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. |
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.
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.