Spécifications et choix de l’architecture

Langage et technologie pour l’implémentation 

Le module doit être programmé en langage de type HDL (Hardware Description Language) pour faciliter la compréhension et permettre l’emploi de variables de configurations. Une approche modulaire et hiérarchique permet la réutilisation des blocs conçus, elle est donc à privilégier. Le langage choisi pour la réalisation de la FFT/IFFT est le VHDL (Very High Speed Integrated Circuit Hardware Description Language) et le code doit être entièrement synthétisable. Les paramètres de configuration doivent être fixés avant la synthèse au niveau hiérarchique supérieur dans le code. La conception ne doit pas être dédiée à une plate forme spécifique, ni à une technologie précise. En revanche, le module est principalement ciblé pour être utilisé dans des plates-formes de type FPGA (Field Programmable Gate Array). Des attributs peuvent servir à optimiser le module pour une certaine plate-forme, mais l’implémentation dans d’autres technologies doit rester possible.

Ressources et vitesse 

Les ressources matérielles limitées telles que la logique de calcul et de contrôle ainsi que la mémoire doivent êtres minimisées pour laisser de l’espace au reste du design. En contrepartie, la fréquence d’opération doit être maximisée afin d’avoir les meilleures performances. Il n’y a pas de valeur précise à atteindre quant à la vitesse requise pour réaliser une transformée, puisque c’est un paramètre qui varie en fonction de l’application de traitement du signal et de la technologie. La latence, délai en cycles d’horloge entre l’entrée du premier échantillon d’une FFT et la sortie du premier point en fréquence, doit aussi être minimisée.

Paramètres fixes 

Toutes les données traitées sont complexes, c’est-à-dire qu’elles possèdent une partie réelle et une partie imaginaire. Les nombres sont représentés en complément à deux et on considère le point décimal à la suite du MSB. Ainsi pour un mot de b bits, la plage de représentation des nombres se situe entre 1-2-(b-1)  et -1. L’incrément entre deux nombres consécutifs est de 2-(b-1) .

Le module de transformée de Fourier reçoit ses données d’entrée, des échantillons temporels dans le cas d’une FFT, de façon sérielle. La sortie est aussi produite de manière sérielle. Le module doit posséder un port d’entrée et un port de sortie, chacun ayant la largeur d’une donnée complexe. Le module a aussi une entrée pour l’horloge cl k et une pour un signal d’activation de l’horloge ce. Les données n’ont pas besoin d’entrer à un rythme constant, mais les échantillons doivent arriver de manière synchrone avec l’horloge. Il doit aussi posséder un mécanisme pour la synchronisation avec des modules extérieurs, tel qu’un signal pour lui indiquer le début d’une séquence et un signal pour informer que les résultats sont valides.

Le module doit être en mesure de fonctionner en temps réel, c’est-à-dire que pour chaque donnée qui entre, une donnée est produite en sortie. Une fois que la dernière donnée d’une séquence deN points est fournie au module, celui-ci est en mesure d’accepter la première donnée de la séquence suivante. Aucune étape intermédiaire de traitement n doit rompre le rythme. On doit aussi pouvoir opérer le module pour réaliser une seule transformée, puis d’attendre la suivante.

Les résultats de la FFT font suite à plusieurs étapes de calcul qui peuvent introduire des erreurs dues à la représentation discrète des nombres et à l’utilisation de la notation en point fixe. Ces erreurs de quantification doivent être les plus faibles possible. Il est même souhaitable de caractériser ces erreurs et d’identifier leurs sources.

Paramètres reconfigurables 

Plusieurs paramètres du module doivent être configurables pour répondre aux besoins des différentes applications de traitement numérique du signal nécessitant une transformée de Fourier. Ces paramètres sont énumérés et détaillés dans les sous-sections suivantes.

Taille
La taille de la transformée de Fourier doit être paramétrée. Ainsi, toutes les tailles de puissance de deux peuvent être sélectionnées puisque l’algorithme de la FFT se prête bien à faire des transformées de taille puissance de deux. L’espace occupé par le module croît en fonction de la taille de la transformée. La limite pour la taille maximale n’est pas imposée par le module lui-même, mais par les ressources logiques et mémoires requises. Seulement faire des transformées ayant des tailles puissances de quatre, comme c’est le cas avec certains algorithmes, serait trop limitatif.

Largeur des mots binaires
L’espace occupé par le module ainsi que la précision des calculs sont largement dépendant de la largeur utilisée par les mots binaires.

Entrée et sortie
La largeur des ports en entrée et en sortie doit pouvoir être choisie indépendamment. Des valeurs de l’ordre de 5 à 20 bits comme largeur de mot binaire sont acceptables. En tout temps, on retrouve la même taille pour la partie réelle et pour la partie imaginaire.

Facteurs de phase
La largeur binaire des facteurs de phase doit aussi être un paramètre configurable. La précision des résultats et l’utilisation de ressources mémoires en dépendent. Des largeurs binaires semblables à celles des données, soit de 5 à 20 bits.

Interne
Les largeurs des différents bus de données internes doivent être paramétrées de manière à conserver ou à améliorer la précision des résultats. Pour ce faire, des mécanismes d’augmentation de la largeur des mots binaires pour empêcher le débordement et/ou pour réduire la largeur, tels que l’arrondi ou la troncation, doivent être employés.

Type de transformée
Le passage du domaine du temps au domaine de la fréquence, autant que celui du domaine de la fréquence au domaine du temps doivent être possibles. L’usager du module doit avoir le choix entre une FFT ou une IFFT. Ces deux transformées contiennent essentiellement les mêmes mécanismes mathématiques. Dans le cas de l’IFFT . Ainsi, seul le signe de l’exponentielle complexe exécutant une rotation de phase change.

Ordonnancement de l’entrée
En général dans les différentes architectures de FFT, si les données arrivent au module de manière chronologique (ordre naturel), elles ressortent en ordre des bits renversé . L’inverse est aussi vrai: une entrée en ordre renversé donnera une sortie en ordre naturel. Le choix de l’ordonnancement en entrée doit être disponible pour permettre la cascade d’une FFT à l’entrée ordonnée et d’une IFFT à l’entrée en ordre des bits renversé. Cette dernière produira une sortie ordonnée.

Table des matières

INTRODUCTION
CHAPITRE 1 ALGORITHME DE LA FFT
1.1 Historique
1.1.1 Transformée de Fourier
1.1.2 Transformée discrète de Fourier
1.1.3 Transformée rapide de Fourier
1.2 Survol du développement mathématique et représentation graphique
1.2.1 Approche diviser pour conquérir
1.2.2 Algorithme radix-2
1.2.3 Algorithme radix-4
1.3 Conclusion
CHAPITRE 2 SPÉCIFICATIONS ET CHOIX DE L’ARCHITECTURE
Spécifications
Langage et technologie pour l’implémentation
Ressources et vitesse
Paramètres fixes
Paramètres reconfigurables
Taille
Largeur des mots binaires
Entrée et sortie
Facteurs de phase
Interne
Type de transformée
Ordonnancement de l’entrée
Mise à l’échelle
Comparaison des architectures matérielles
Architectures à réutilisation du papillon
Fonctionnement
Ressources
Latence
Architectures pipelinées
Fonctionnement
Cas particulier de l’algorithme Radix-22
Ressources
Latence
Autres architectures
Choix de l’architecture pour l’implémentation
CHAPITRE 3 ARCHITECTURE ET CONSTRUCTION HIÉRARCHIQUE
Architecture et chemin de données
Particularité des différentes configurations
Cas d’une FFT avec N puissance de quatre
Cas d’une FFT avec N puissance de deux mais non de quatre
Cas d’une IFFT
Cas d’une entrée en ordre des bits renversé
Construction hiérarchique
Niveau supérieur
Exemple de configuration
Modules intermédiaires
Sous-modules
Papillon radix-2
Délai en rétroaction
Multiplicateur complexe
Table de facteurs de phase
Arrondi complexe
Conjugué complexe
Contrôleurs
Conclusion
CHAPITRE 4 CARACTÉRISATION DU BRUIT DE QUANTIFICATION ET DES RESSOURCES
Méthodologie de vérification
Étude du bruit de quantification
Structure de l’environnement de vérification
Aperçu de la théorie du bruit de quantification
Estimation des ressources requises
Fréquence d’horloge
Variation de la taille de la transformée
Scénarios de vérification
Résultats de SQNR
Effet du type de vecteur d’entrée
Effet de la taille
Effet de l’ordonnancement
Effet de la largeur binaire interne
Cas de l’IFFT
Ressources nécessaires
Variation de la largeur binaire en sortie
Scénarios de vérification
Résultats de SQNR
Ressources nécessaires
Variation progressive de la largeur interne
Scénarios de vérification
Résultats de SQNR et ressources
Variation de la largeur des facteurs de phase
Scénarios de vérification
Résultats de SQNR et ressources
Effet de la mise à l’échelle
Scénarios de vérification
Résultats de SQNR
Ressources nécessaires
Conclusion
CHAPITRE 5 COMPARAISON AVEC DES CORES COMERCIAUX
Aperçu des cores disponibles
Test des Logicores de Xilinx
Présentation des Logicores de FFT et des ressources utilisées
Précision des résultats
SQNR
Slot noise test
Conclusion
CHAPITRE 6 CONCEPTION D’UN FILTRE DANS LE DOMAINE FRÉQUENTIEL
6.1 Architecture d’un filtre dans le domaine fréquentiel
6.1.1 Méthode over1ap-save
6.1.2 Méthode overlap-add
6.2 Comparaison de complexité entre le FIR et le FDF
6.2.1 Ressources nécessaires au FIR
6.2.2 Ressources nécessaires au FDF
6.2.3 Comparaison
6.3 Construction du filtre dans le domaine fréquentiel
Niveau supérieur
Sous-modules
FFT et IFFT
Multiplicateur complexe
Table de coefficients
Tampon d’entrée
Tampon de sortie
Contrôleurs
Performances obtenues
Environnement de vérification
Filtre en cosinus surélevé
Ressources requises et vitesse d’opération
Précision des résultats
Variation du facteur de mise en forme et de la largeur interne
Variation des largeurs binaires
Variation du rapport MIN
Conclusion
CONCLUSION

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *