Une voie, plusieurs échantillons
- Mise à jour2023-02-17
- Temps de lecture : 8 minute(s)
Une voie, plusieurs échantillons
Calcule la transformée de Fourier rapide (FFT) du flux de signal en entrée avec plusieurs échantillons par cycle.
Ce nœud vous permet de traiter les E/S FPGA avec plusieurs échantillons par cycle d'horloge de données. Ce nœud atteint une vitesse de transfert des données plus élevée mais consomme considérablement plus de ressources FPGA que le nœud FFT (Une voie, un échantillon).
Entrées/Sorties

réinitialisation
Une valeur booléenne spécifiant s'il faut réinitialiser l'état interne du nœud.
| Vrai | Réinitialise l'état interne du nœud. |
| Faux | Ne réinitialise pas l'état interne du nœud. |
Default value: Faux
Comportement avec les entrées et les sorties de handshake
Les entrées et les sorties de handshake se comportent de la façon suivante pendant les cycles où réinitialisation est Vrai :
- entrée valide est ignorée.
- prêt pour la sortie est ignoré.
- sortie valide est Faux.
- prêt pour l'entrée est Faux, ce qui gère les cas où réinitialisation est maintenu Vrai pendant plus d'un cycle. Ce nœud est prêt pour les entrées une fois la réinitialisation terminée et que réinitialisation renvoie Faux.

données en entrée
Flux en entrée des signaux pour lequel vous voulez calculer la FFT.
- entier signé 8 bits
- entier non signé 8 bits
- entier signé 16 bits
- entier non signé 16 bits
- entier signé 32 bits
- nombre à virgule fixe
- nombre complexe à virgule fixe
La taille du tableau doit être 2, 4, 8 ou 16. Pour chaque élément du tableau, la longueur de mot maximale est 32 bits.

entrée valide
Valeur booléenne qui décrit si le prochain élément de données est arrivé pour être traité. Câblez la sortie sortie valide d'un nœud en amont à cette entrée pour transférer des données du nœud en amont à ce nœud-ci.
| Vrai | Le prochain élément de données est arrivé pour être traité. |
| Faux | Le prochain élément de données n'est pas arrivé pour être traité. |

prêt pour la sortie
Valeur booléenne qui définit si les nœuds en aval sont prêts à ce que ce nœud-ci renvoie une nouvelle valeur. Utilisez un nœud de rétroaction pour câbler la sortie prêt pour l'entrée d'un nœud en aval à cette entrée du nœud actuel.
| Vrai | Les nœuds en aval sont prêts à ce que ce nœud-ci renvoie une nouvelle valeur. |
| Faux | Les nœuds en aval ne sont pas prêts à ce que ce nœud-ci renvoie une nouvelle valeur. |
Default value: Vrai

données en sortie
Résultats de la FFT du flux en entrée des signaux.
La longueur de mot maximale de chaque résultat de FFT est 32 bits.
Personnaliser la longueur de mot des résultats de FFT
En général, la longueur des mots de chaque résultat de FFT est log2 (N)+1 bits plus grande que les données en entrée correspondantes, N étant la taille de la FFT. Vous pouvez personnaliser la longueur de mot des résultats de FFT en cliquant sur le bouton Configurateur de complexes à virgule fixe à côté de la commande Précision dans la section Terminaux de l'onglet Élément.
Diminuer la longueur de mot de la sortie réduit l'utilisation des ressources FPGA mais réduit aussi la précision. NI vous conseille de simuler une configuration donnée pour vérifier que la précision obtenue répond aux besoins de votre application.

indice des données
Indices des intervalles de FFT renvoyés par ce nœud.

sortie valide
Valeur booléenne qui indique si ce nœud calcule un résultat qui peut être utilisé par les nœuds en aval.
Câblez cette sortie à l'entrée entrée valide d'un nœud en aval pour transférer les données du nœud au nœud en aval.
| Vrai | Les nœuds en aval peuvent utiliser le résultat que ce nœud calcule. |
| Faux | Ce nœud renvoie une valeur non définie que les nœuds en aval ne peuvent pas utiliser. Remarque Ce nœud peut renvoyer des valeurs non définies différentes selon qu'il s'exécute en mode simulation ou sur du matériel. |

prêt pour l'entrée
Valeur booléenne qui détermine si ce nœud est prêt à accepter de nouvelles données en entrée. Utilisez un nœud de rétroaction pour câbler cette sortie à l'entrée prêt pour la sortie d'un nœud en amont.
| Vrai | Ce nœud est prêt à accepter de nouvelles données en entrée. |
| Faux | Ce nœud n'est pas prêt à accepter de nouvelles données en entrée. |
Diagramme de cadencement
Le débit de transfert de ce nœud est d'un cycle par entrée, ce qui signifie que ce nœud accepte de nouvelles données à chaque cycle. Le diagramme suivant montre le cadencement utilisé par ce nœud.
Éviter la perte de données pendant le calcul de la FFT
Ce nœud n'accepte pas et ne renvoie pas de valeurs lors du calcul de la FFT. Pendant ce temps, si le système ou un autre nœud lui envoie des données, il les rejette. Cela peut se produire si ce nœud reçoit des données dans le cadre d'un modèle complexe ou non uniforme.
Pour éviter les pertes de données, créez une FIFO pour conserver les données jusqu'à ce que ce nœud accepte de nouveau des valeurs. Assurez-vous que la FIFO que vous créez est suffisamment grande pour contenir tous les points de données collectés pendant que le nœud calcule la FFT. Pour estimer grossièrement la taille de la FIFO que vous devez créer, divisez la latence de ce nœud par le débit moyen du système. La latence se trouve à la section Performances de l'onglet Elément du panneau de configuration.
Comprendre le modèle d'indices d'entrée/sortie
Dans la section Interface de l'onglet Élément du panneau de configuration, vous pouvez configurer ce nœud pour qu'il utilise le modèle d'indices Continu en entrée/Intervalle M en sortie ou Intervalle M en entrée/Continu en sortie.
Le tableau suivant compare et illustre les modèles d'indices en utilisant l'exemple d'un flux de signal en entrée avec 4 échantillons par entrée et une taille de FFT de 4096 (ce qui signifie que M est égal à 1024).
| Modèle d'indices | Description | Exemple | Commentaire |
|---|---|---|---|
| Continu en entrée/Intervalle M en sortie | Les indices de la trame de la FFT sont continus pour les données en entrée et ont des intervalles de M pour les données en sortie, avec M = taille de la FFT/taille des données en entrée. |
|
Ce nœud utilise 0, 1, 2, 3 comme indices des échantillons en entrée dans le premier cycle d'entrée valide, 4, 5, 6, 7 dans le deuxième cycle, et ainsi de suite. Pour les échantillons en sortie, les indices sont 0, 1024, 2048, 3072 dans le premier cycle de sortie valide, 1, 1025, 2049, 3073 dans le deuxième cycle, et ainsi de suite. |
| Intervalle M en entrée/Continu en sortie | Les indices de la trame de la FFT ont des intervalles de M pour les données en entrée et sont continus pour les données en sortie, avec M = taille de la FFT/taille des données en entrée. |
|
Les indices de l'entrée et de la sortie sont inversés par rapport au modèle d'indices Continu en entrée/Intervalle M en sortie. |
Si la source de données est une E/S FPGA avec plusieurs échantillons par cycle, sélectionnez le modèle d'indices Continu en entrée/Intervalle M en sortie. Si la source de données est la sortie d'un autre nœud FFT (Une voie, plusieurs échantillons) (comme pour le calcul de l'inverse de résultats de FFT obtenus d'un autre nœud FFT (Une voie, plusieurs échantillons), le paramètre Modèle d'indices d'entrée de ce nœud doit correspondre au paramètre Modèle d'indices de sortie de l'autre nœud FFT (Une voie, plusieurs échantillons).
Optimisation de la précision, de l'utilisation des ressources ou du cadencement
Vous pouvez configurer ce nœud pour optimiser la précision, minimiser l'utilisation des ressources ou optimiser le cadencement dans la section Optimisation de l'onglet Élément du panneau de configuration.
Dans la section Objectif, vous pouvez configurer ce nœud pour optimiser la précision des données renvoyées ou minimiser l'utilisation des ressources lors de la détermination des longueurs de mots des données renvoyées. Le tableau suivant vous aide à choisir l'option appropriée pour votre cas.
| Cas d'usage | Option recommandée | Comportement du nœud | Résultat |
|---|---|---|---|
| Vous voulez optimiser la précision des derniers bits des données en sortie, même si cela augmente l'utilisation des ressources FPGA. | Précision | Ce nœud étend la longueur de mot des données en entrée à la longueur de mot en sortie en remplissant de zéros. Toutes les opérations de multiplication complexes internes utilisent cette longueur de mot. | Comparés à l'option Utilisation des ressources, les multiplieurs complexes conservent plus de bits, et ces log2(N)+1 bits dans les données en sortie sont plus précis. |
Dans l'un ou l'autre de ces cas :
|
Utilisation des ressources | Ce nœud augmente la longueur de mot, étage par étage, de l'entrée à la sortie. Par conséquent, la largeur de bits des multiplieurs complexes augmente également étage par étage. | Les largeurs de bits des multiplieurs complexes et des registres internes sont plus petites qu'avec l'option Précision, ce qui réduit l'utilisation des ressources FPGA et peut augmenter la fréquence d'horloge FPGA au moment de la compilation. |
Si vous avez configuré l'objectif d'optimisation de ce nœud mais qu'il ne répond toujours pas à vos besoins de précision, de ressources ou de cadencement, vous pouvez ajuster les valeurs de Longueur de mot du twiddle factor et de Nombre d'étages de pipeline du papillon pour améliorer les performances du nœud.