Cet exemple décrit une transformation Fourier rapide (FFT) à 32K points utilisant le cœur de propriété intellectuelle (IP) Intel® FPGA FFT. La FFT est un algorithme de transformation Quatreiers dédié (DFT) qui réduit le nombre de calcul nécessaire de l’O (N2) à l’O (NlogN) par decompose. La DFT d’une séquence x(n) est donnée par l’équation suivante :
où k = 0, 1, ... Les N-1 et N sont de la longueur de transformation.
Dans cet exemple de conception, la longueur de transformation, N, est 32768. À l’aide de la méthode de la décimation dans le temps (DIT), la conception découple la séquence d’entrée en échantillons étranges et même qui se alimentent dans les deux blocs FFT individuels à 16K points mis en œuvre en parallèle à l’aide du cœur Intel FPGA IP FFT. Les résultats du Intel FPGA IP cœur de la FFT sont recombinés et réorganisés pour obtenir la sortie finale de la FFT. Cela est indiqué dans la Figure 1. Semblable au cœur Intel FPGA IP FFT, l’exemple de conception utilise les interfaces d’entrée et de sortie conformes à la conformité à la norme Dehsa.
Téléchargez les fichiers utilisés dans cet exemple :
L’utilisation de cette conception est régie par les conditions générales du contrat de licence de conception de matériel Intel® de référence.
Les fichiers téléchargés dans le fichier zip comprennent :
- fft_32K.v — Fichier de conception haut de gamme mettant en œuvre la technologie FFT à 32K points
- parse_fft_input.v : réorganise l’échantillon d’entrée en échantillons pairs et impairs pour qu’il les alimente dans les deux plus petits blocs FFT à 16K points
- fft_small.v — Fichier du dossier généré par le Intel FPGA IP FFT. Le cœur est configuré pour mettre en œuvre une longueur de transformation de 16K, et il utilise la structure de flux de données d’E/S de streaming.
- combine_fft.v — Recombine la sortie des blocs FFT individuels à 16K points en utilisant les facteurs de basculement appropriés
- fft_32K_streaming_tb.v — Testbench pour la simulation RTL
- fft_32K_streaming_vo_msim.tcl — Script TCL pour automatiser le processus de simulation RTL dans le logiciel ModelSim- Intel FPGA
- fft_32K_tb.m — Modèle MATLAB pour vérifier les résultats de la simulation RTL
La Figure 1 montre le schéma de haut niveau de l’exemple de conception FFT à 32K points.
Le Tableau 1 répernumère les ports et donne une description de chacun d’entre nous.
Tableau 1. Liste des ports FFT 32K-Point
Description | du type de nom de | port |
---|---|---|
data_real_in[15:0], data_imag_in[15:0] |
Entrée | Entrées de données 16 bits complexes |
Clk | Entrée | Horloge système FFT |
Réinitialiser | Entrée | Réinitialisation active élevée |
master_sink_dav | Entrée | Signal disponible pour master sink data : affirmation de la source de données esclave FFT indiquant la disponibilité de l’échantillon de données pour entrée à la fonction FFT |
master_sink_ena | Sortie | Écriture du sink maître et activer le signal : revendiqué par la fonction FFT pour indiquer que des données peuvent être écrites dans la fonction |
master_sink_sop | Entrée | Démarrage du paquet d’entrée : indique à la fonction FFT le démarrage d’un bloc de données d’entrée. Doit être revendiquée pour un cycle d’horloge synchrone avec le premier échantillon de données d’entrée |
fft_real_out[15:0], fft_imag_out[15:0] | Sortie | Sorties de données 16 bits complexes |
exponent_out[5:0] | Sortie | Représentant de blocs signés : comptes pour la mise à l’échelle des valeurs des signaux internes pendant le calcul FFT |
master_source_dav |
Entrée | Affirmation de l’esclave qui indique au débit de la fonction FFT qu’elle peut accepter un bloc d’échantillons de sortie |
master_source_ena | Sortie | Fonction Maître source : affirmation par la fonction FFT lorsque des données sont disponibles pour être sorties par la FFT |
master_source_sop | Sortie | Démarrage de sortie du paquet : affirmation sur le premier échantillon de sortie de chaque bloc |
master_source_eop | Sortie | Fin de sortie du paquet : affirmation sur le dernier échantillon de sortie de chaque bloc |
Liens connexes
Pour plus d’informations sur les fonctionnalités connexes utilisées dans cet exemple de conception dans votre projet, consultez :