Brevet FR2953310A1 — publié le 20110603

La présente invention concerne un opérateur matériel d'additions/soustractions de structure prédéterminée pour la réalisation de calculs arithmétiques à l'aide de modules matériels d'addition et/ou de soustraction. Elle concerne également un processeur et un terminal de télécommunication incluant cet opérateur matériel. Un grand nombre de terminaux de télécommunication, notamment les terminaux à modulation/démodulation multi porteuses des signaux émis/reçus et à décodage de canal, comprennent des composants de traitement numérique faisant intervenir généralement et avantageusement des calculs numériques de transformée de Fourier rapide directe dite FFT (de l'Anglais « Fast Fourier Transform ») ou de transformée de Fourier rapide inverse dite IFFT (de l'Anglais « Inverse Fast Fourier Transform »), et une implémentation de l'algorithme de Viterbi, notamment dans le cadre de la radio logicielle ou radio reconfigurable SDR (de l'Anglais « Software Defined Radio »). Or le calcul de FFT/IFFT et l'implémentation de l'algorithme de Viterbi nécessitent entre autres des opérations d'additions/soustractions spécifiques. Un terminal d'émission/réception de type SDR est un terminal dans lequel la conversion numérique/analogique se fait au plus près de l'antenne, de sorte que les traitements de modulation/démodulation et de codage/décodage exécutés par le terminal se font sur des signaux numériques. Ces signaux numériques se prêtent effectivement mieux à un traitement reconfigurable, c'est-à-dire capable de s'adapter à différentes normes ou à différentes évolutions. Malheureusement, les performances et la consommation excessive des processeurs ne permet pas d'envisager une implantation purement logicielle des traitements numériques et il est alors nécessaire de recourir à une implantation au moins partiellement matérielle. Dans ce contexte, des opérateurs matériels d'additions/soustractions trouvent leur utilité dans les terminaux de télécommunication précités, au moins pour les calculs de FFT/IFFT et de Viterbi, dans le but de garantir un fonctionnement en temps réel. Ces opérateurs matériels d'additions/soustractions, après avoir été conçus spécifiquement pour telle ou telle application, peuvent être inclus dans des processeurs de calcul de FFT/IFFT, dans des processeurs d'implémentation de l'algorithme de Viterbi, ou dans tout autre processeur exécutant un traitement impliquant des calculs arithmétiques à l'aide de modules matériels d'addition et/ou de soustraction. Cependant, la prolifération de normes, et en particulier de normes de communication sans fil, impose de prévoir des terminaux capables de gérer des normes différentes. Une première solution pour gérer plusieurs normes consiste à juxtaposer au sein d'un même terminal les différentes chaînes de traitement des normes considérées comportant chacune leurs opérateurs matériels. Cette solution est simple à implémenter mais présente l'inconvénient majeur de ne pas être efficace en termes de surface de silicium utilisée, c'est-à-dire en termes d'opérateurs matériels utilisés. Une autre solution consiste à concevoir les différentes chaînes de traitement de telle sorte qu'elles mettent en commun une partie de leurs modules fonctionnels et opérateurs matériels. Cette seconde solution prévoit une paramétrisation du terminal de sorte que sa reconfiguration pour qu'il exécute telle ou telle chaîne de traitement ne nécessite qu'un changement de valeurs de paramètres. Notamment, une technique de mise en commun d'opérateurs matériels est présentée dans l'article de L. Alaus et al, intitulé « Promising technique of parametrization for reconfigurable radio, the Common Operators Technique : fundamentals and examples », publié dans Journal of Signal Processing Systems, DOI 10.1007/s11265-009-0353-04, le 14 mars 2009. A titre d'exemple, cet article indique qu'un opérateur matériel de calcul de FFT/IFFT peut être avantageusement mis en commun parce qu'il est sollicité par un grand nombre de normes. En effet, la plupart des normes de télécommunication actuelles ou en préparation sont basées sur des modulations de type OFDM (de l'Anglais « Orthogonal Frequency Division Multiplexing »). La modulation OFDM est un procédé de codage de signaux numériques par répartition en fréquences orthogonales. Le principe de la modulation OFDM consiste à multiplexer une communication en la répartissant sur des sous canaux envoyés simultanément sur des fréquences indépendantes. Le coeur même d'une modulation OFDM comporte un calcul de FFT. L'opérateur FFT intervient plus généralement en tant qu'opérateur de base de fonctions de réception de signaux dans le domaine fréquentiel. Par exemple, un opérateur FFT est utilisé dans une implémentation fréquentielle d'une estimation de canal par égalisation, dans une modulation/démodulation multi porteuses et dans l'exécution d'une fonction dite de « canalisation » (i.e. sélection de canal) en banc de filtres. Cet opérateur peut donc être utilisé à différents niveaux d'une chaîne de traitement et dans le cadre de différentes normes. Il permet d'envisager l'obtention d'un terminal reconfigurable présentant un nombre limité d'opérateurs matériels de calcul de FFT. Cependant, cette solution rencontre aujourd'hui ses limites parce qu'au sein même d'un opérateur ou processeur de calcul de FFT, plusieurs opérateurs d'additions/soustractions de structures différentes doivent être utilisés. Par exemple, les opérations d'additions/soustractions impliquées dans le calcul de parties réelles de coefficients de FFT ne sont pas les mêmes que les opérations d'additions/soustractions impliquées dans le calcul des parties imaginaires. En outre, entre un opérateur ou processeur de calcul de FFT et un opérateur ou processeur d'implémentation de l'algorithme de Viterbi, les opérations d'additions/soustractions impliquées sont également différentes et justifient de prévoir des modules matériels distincts. Il peut alors être souhaité de prévoir un opérateur matériel d'additions/soustractions qui permette de résoudre au moins partiellement les problèmes et contraintes précités et/ou d'améliorer la reconfigurabilité d'un terminal. L'invention a donc pour objet un opérateur matériel d'additions/soustractions comportant une pluralité de modules matériels d'addition/soustraction et une pluralité de liens de transmission de données entre ces modules, d'une part, et entre des entrées et sorties de l'opérateur et ces modules, d'autre part, selon une structure prédéterminée pour la réalisation de calculs arithmétiques, dans lequel moins une partie des modules matériels d'addition/soustraction et au moins une partie des liens entre ces modules sont configurables à l'aide d'au moins un paramètre programmable, au moins entre une première configuration dans laquelle l'opérateur finalise un calcul de parties réelles de coefficients de transformée de Fourier rapide, une deuxième configuration dans laquelle l'opérateur finalise un calcul de parties imaginaires de coefficients de transformée de Fourier rapide, et une troisième configuration dans laquelle l'opérateur réalise un calcul de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi. En effet, en paramétrant les modules d'addition/soustraction, les liens entre eux et/ou les liens entre ces modules et les entrées/sorties de l'opérateur matériel d'additions/soustractions, il devient envisageable de concevoir un unique opérateur matériel de structure prédéterminée capable, selon son paramétrage, de participer à différentes opérations arithmétiques incluant différentes phases d'un calcul de FFT et un calcul de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi. Un même opérateur matériel générique peut donc être sollicité par plusieurs fonctions, au sein d'un même traitement, pour des traitements différents selon une norme commune ou même encore pour des traitements différents selon des normes différentes. En assurant que ces traitements incluent au moins un calcul de FFT/IFFT et une implémentation de l'algorithme de Viterbi, on rend cet opérateur matériel générique particulièrement intéressant pour des applications de télécommunication, parce qu'il permet ainsi de réduire le nombre de composants implantés dans un terminal, notamment un terminal mobile multi-normes. Les fonctions de modulation/démodulation et de codage/décodage canal peuvent en effet être remplies dans un même terminal sur la base d'un ou plusieurs opérateurs matériels génériques communs, limitant d'autant le nombre et la taille des éléments matériels à intégrer dans le terminal. En outre, les calculs de parties réelles et parties imaginaires de coefficients de FFT s'opérant sur des données complexes, l'opérateur générique obtenu, configurable entre de tels calculs et un calcul de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi, est capable de traiter des données d'entrée soit dures (binaires) soit souples (codées sur plusieurs bits) pour réaliser le décodage de Viterbi. De façon optionnelle, les modules matériels d'addition/soustraction et les liens configurables sont en outre configurables à l'aide dudit au moins un paramètre programmable, dans une quatrième configuration dans laquelle l'opérateur réalise plusieurs opérations d'addition et/ou de soustraction indépendantes et une cinquième configuration dans laquelle l'opérateur finalise une cascade d'opérations d'addition et/ou de soustraction. De façon optionnelle également, un opérateur matériel d'additions/soustractions selon l'invention peut comporter un premier module matériel d'addition/soustraction configurable, à l'aide d'un premier paramètre binaire, entre une configuration d'additionneur et une configuration de soustracteur, un deuxième module matériel d'addition/soustraction configurable, à l'aide d'un deuxième paramètre binaire, entre une configuration d'additionneur et une configuration de soustracteur, et un troisième module matériel d'addition/soustraction configurable, à l'aide d'un troisième paramètre binaire, entre une configuration d'additionneur et une configuration de soustracteur. De façon optionnelle également, un opérateur matériel d'additions/soustractions selon l'invention peut comporter : un premier lien de fourniture d'une valeur d'opérande au premier module configurable, à l'aide d'un premier paramètre de multiplexage, entre une configuration de fourniture d'une donnée d'entrée de l'opérateur et une configuration de fourniture de la sortie du deuxième module configurable, un deuxième lien de fourniture d'une première valeur d'opérande au deuxième module configurable, à l'aide d'un second paramètre de multiplexage, entre une configuration de fourniture d'une donnée d'entrée de l'opérateur et une configuration de fourniture de la sortie du premier module configurable, un troisième lien de fourniture d'une seconde valeur d'opérande au deuxième module configurable, à l'aide d'un troisième paramètre de multiplexage, entre une configuration de fourniture d'une donnée d'entrée de l'opérateur et une configuration de fourniture de la sortie du troisième module configurable, et un quatrième lien de fourniture d'une valeur d'opérande au troisième module configurable, à l'aide d'un quatrième paramètre de multiplexage, entre une configuration de fourniture d'une donnée d'entrée de l'opérateur et une configuration de fourniture de la sortie du deuxième module configurable. De façon optionnelle également, chaque lien configurable comporte un multiplexeur à deux entrées et une sortie et à sélection de l'une des deux entrées à l'aide d'un paramètre binaire. L'invention a également pour objet un processeur de traitement de données numériques comportant au moins un opérateur papillon incluant au moins un opérateur matériel d'additions/soustractions tel que défini précédemment, l'opérateur papillon étant configurable, à l'aide dudit paramètre programmable, entre une première configuration dans laquelle il réalise un calcul de transformée de Fourier rapide et une seconde configuration dans laquelle il réalise un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi. De façon optionnelle, un processeur de traitement de données numériques selon l'invention peut comporter une pluralité d'opérateurs papillons configurables entre ladite première configuration dans laquelle chaque opérateur papillon réalise ledit calcul de transformée de Fourier rapide et ladite seconde configuration dans laquelle chaque opérateur papillon réalise un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi, ces opérateurs papillons étant structurés entre eux pour un calcul de transformée de Fourier rapide par une approche algorithmique de Cooley-Tukey en treillis de type Radix-2 et pour une implémentation de l'algorithme de Viterbi en treillis à quatre symboles de référence. L'invention a également pour objet un terminal de télécommunication à modulation/démodulation multi porteuses des signaux émis/reçus et à décodage de signaux traités par un code convolutif, comportant au moins un opérateur matériel d'additions/soustractions tel que défini précédemment. De façon optionnelle, un terminal de télécommunication selon l'invention peut être à modulation et démodulation de type OFDM. De façon optionnelle également, un terminal de télécommunication selon l'invention peut comporter au moins un modulateur/démodulateur à modulation et démodulation OFDM compatible avec chaque norme implémentée et au moins un décodeur de signal codé par un code convolutif compatible avec chaque norme implémentée. L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés dans lesquels : la figure 1 représente schématiquement la structure générale d'un réseau de traitement de données en treillis pour l'implémentation d'un calcul de FFT/I FFT, - la figure 2 représente schématiquement la structure d'un opérateur papillon utilisé par le réseau de traitement de données de la figure 1, la figure 3 représente schématiquement l'implémentation possible en modules d'addition/soustraction et de multiplication de l'opérateur papillon de la figure 2, la figure 4 représente schématiquement la structure générale d'une chaîne de traitement de données pour une implémentation de l'algorithme de Viterbi, la figure 5 représente schématiquement la structure d'un opérateur papillon utilisé par une partie de la chaîne de traitement de données de la figure 4, la figure 6 représente schématiquement l'implémentation possible en modules d'addition/soustraction de l'opérateur papillon de la figure 5, la figure 7 représente schématiquement la structure générale d'un opérateur matériel d'additions/soustractions selon un mode de réalisation de l'invention, utilisable dans un opérateur papillon selon la figure 3 ou 6, les figures 8 à 11 représentent l'opérateur matériel d'additions/soustractions de la figure 7 selon différentes configurations possibles, et la figure 12 représente schématiquement la structure générale d'un terminal de télécommunication selon un mode de réalisation de l'invention. La transformée de Fourier rapide directe FFT est un algorithme de calcul de la transformée de Fourier discrète. Cet algorithme est utilisé en traitement numérique du signal pour transformer des données discrètes du domaine temporel ou spatial dans le domaine fréquentiel. Soient par exemple N valeur temporelles discrètes x[0], ..., x[N-1] d'un signal x. Les N valeurs fréquentielles de la transformée de Fourier discrète X de ce signal x sont définies par la formule suivante : Nù1 X[k]=x[n].wkn,pour k=0,...,N-1, où w = e N n=0 La transformée de Fourier discrète inverse étant équivalente à la transformée de Fourier discrète directe, à un signe et facteur 1/N près, la transformée de Fourrier rapide inverse IFFT repose sur le même algorithme que la FFT pour calculer cette transformée de Fourier discrète inverse. Tout opérateur matériel ou processeur de traitement de données numériques configuré pour l'exécution d'un calcul de transformée de Fourier rapide directe FFT est donc également apte au calcul de transformée de Fourier rapide inverse IFFT. Une implémentation particulièrement simple et très utilisée du calcul de FFT est l'approche algorithmique de Cooley-Tukey en subdivision de type Radix 2. Elle suppose que le nombre N d'échantillons transformés soit une puissance de deux et subdivise de façon récursive le traitement de n échantillons en deux traitements identiques de taille n/2 à une échelle inférieure. En effet, à une première échelle : Nû1 2?ank X[k]= x[n].e N n=0N/2û1 ûi22nk N/2û1 ûi - (2n+1)k x[2n].e N + 1 x[2n + lie N , n=0 n=0 2z nk ûi2?ak N/2û1 2z nk N/2 +e N 1 x[2n+1].e N/2 n=0 De façon récurrente, un calcul de FFT à une échelle donnée est réalisé par deux calculs de FFT à une échelle inférieure, l'un portant sur les échantillons pairs, l'autre sur les échantillons impairs du signal à l'échelle donnée. A l'aide de simplifications supplémentaires bien connues, on obtient ainsi un traitement en treillis à plusieurs échelles (ou niveaux) impliquant autant d'étapes successives, tel qu'il est illustré sur la figure 1 pour N = 8 impliquant trois étapes St1, St2 et St3. Chaque étape comporte N/2 calculs en papillon, pour un nombre total de N/2 x log2(N) calculs en papillon, tels que celui illustré sur la figure 2. Ce calcul en papillon nécessite le calcul croisé de deux données yk[0] et yk[1], comportant une multiplication complexe de l'une des données, yk[1 ], par un facteur W pour fournir une valeur intermédiaire, puis une addition et une soustraction complexes entre yk[0] et cette valeur intermédiaire pour fournir deux données yk+1[0] et yk+1[1]. Dans l'exemple illustré sur la figure 1, le facteur W vaut w° à l'échelle/étape St1, w° ou w2 à l'échelle/étape St2 et w°, w1, w2 ou w3 à l'échelle/étape St3. Les deux relations liant yk+1[0] et yk+1[1] à yk[0] et yk[1] prennent la forme suivante : Yk+l Pl = Yk [o]+W'Yk [1], Yk+l [1] = Yk [o] ù W 'Yk [1]' En pratique, le calcul en papillon est réalisé par un opérateur structuré en un premier étage de multiplication complexe et un second étage d'addition et soustraction complexes recevant en entrée les données de sorties du premier étage. Pour réaliser sa multiplication complexe, le premier étage comporte des modules matériels de multiplication réelle, des modules matériels d'addition/soustraction réelle et des liens de transmission de données entre ces modules. Pour réaliser son addition et sa soustraction complexes, le second étage comporte des modules matériels d'addition/soustraction réelle et des liens de transmission de données vers ces modules. Plus précisément, en notant : N/2û1 X [k ] = x[2n]. n=0 N/2û1 2,r nk N/2û1 2,r nk X[k]= x[2n].e Nl2 +Wk 1 x[2n +1].e Nl2 n=0 n=0 yk[1]=a+ib, W =c+id, yk[0]=e+lf, où a, b, c, d, e et f sont des valeurs réelles, on fait apparaître le besoin en modules matériels de multiplication, addition et soustraction réelles : yk+~[0]=(acûbd+e)+i(bc+ad+f), yk+~ [1] = (ûac + bd + e) + i(ûbc û ad + f ). Sous cette forme, le calcul réalisé par un opérateur papillon nécessite quatre modules matériels de multiplication réelle, trois modules matériels d'addition réelle et trois modules matériels de soustraction réelle, comme cela est représenté sur la figure 3. Plus précisément, le premier étage de multiplication complexe de l'opérateur papillon 10 représenté sur la figure 3, portant la référence 12, comporte quatre modules de multiplication 14, 16, 18 et 20 pour réaliser respectivement les produits ac, bd, bc et ad, un module de soustraction 22 recevant les données de sortie des modules 14 et 16 pour réaliser la soustraction ac û bd et un module d'addition 24 recevant les données de sortie des modules 18 et 20 pour réaliser l'addition bc + ad. Le second étage d'addition et soustraction complexes de l'opérateur papillon 10, portant la référence 26, comporte : un module d'addition 28 recevant la donnée de sortie du module 22 et la variable e pour réaliser l'opération ac û bd + e, fournissant ainsi la partie réelle notée FFt-Re0 de yk+, [0], un module de soustraction 30 recevant la donnée de sortie du module 22 et la variable e pour réaliser l'opération -ac + bd + e, fournissant ainsi la partie réelle notée FFt-Rel de yk+1[1], un module d'addition 32 recevant la donnée de sortie du module 24 et la variable f pour réaliser l'opération bc + ad + f, fournissant ainsi la partie imaginaire notée FFt-Im0 de yk+,[0], et un module de soustraction 34 recevant la donnée de sortie du module 24 et la variable f pour réaliser l'opération -bc - ad + f, fournissant ainsi la partie imaginaire notée FFt-Im1 de yk+1[1]. On remarque alors que les trois modules d'addition et de soustraction 22, 28 et 30 interconnectés entre eux constituent un premier opérateur matériel d'additions/soustractions 36 et que les trois modules d'addition et de soustraction 24, 32 et 34 interconnectés entre eux constituent un deuxième opérateur matériel d'additions/soustractions 38 de structure similaire. Les structures de ces deux opérateurs matériels d'additions/soustractions 36 et 38, bien que présentant des similarités, diffèrent en ce que le premier opérateur 36 comporte deux soustracteurs (22, 30) et un additionneur (28), tandis que le deuxième opérateur 38 comporte deux additionneurs (24, 32) et un soustracteur (34). Sous d'autres formes envisageables, le calcul réalisé par un opérateur papillon de FFT peut impliquer une structure légèrement différente, mais celle-ci comporte généralement au moins les opérateurs matériels 36 et 38 à trois modules d'addition/soustraction interconnectés. La structure générale d'une chaîne de traitement de données pour une implémentation de l'algorithme de Viterbi est représentée sur la figure 4. Cet algorithme a pour but de trouver par récurrence la séquence d'états la plus probable ayant produit une séquence mesurée [X0,..., XN_1] dans le cas d'un signal codé par un codeur convolutif, c'est-à-dire un codeur comportant un registre à décalage dans lequel chaque bit entrant génère un décalage dans le registre et un résultat en sortie. Son principe est de comparer chaque valeur reçue avec toutes les sorties possibles du registre à décalage de manière à déterminer quel a été le décalage de ce registre le plus probable qui a engendré la valeur reçue. La connaissance de ce décalage permet de connaître la valeur qui l'a provoqué et par conséquent la valeur génératrice du message reçu. Pour chaque valeur de message reçu, on obtient une structure en treillis reportant en ordonnée l'ensemble des états possibles du registre à décalages et en abscisse l'ensemble des transitions possibles, le motif du treillis se répétant invariablement dans le temps à chaque nouvelle entrée du codeur. En sortie du codeur, seules certaines séquences binaires sont possibles. Elles correspondent aux différents chemins qui existent dans le diagramme en treillis. L'application de l'algorithme de Viterbi consiste alors à rechercher, dans le treillis, la séquence binaire la plus proche de la séquence reçue. En pratique, le déroulement de l'algorithme comporte les trois opérations suivantes, à chaque instant et pour chaque état du treillis : - un calcul de valeurs de métriques de branches réalisé par un bloc 40, consistant à calculer à la réception de N symboles (pour un rendement de 1/N) des valeurs représentant la vraisemblance des symboles reçus par rapport aux 2N symboles possibles. Ces 2N valeurs sont appelées les métriques de branches et notées BmOO, BmOl, Bml 0 et Bml 1 pour N = 2, un calcul de valeurs de métriques de chemins et de survivants réalisé par un bloc 42, consistant à déterminer l'état le plus probable du registre à décalage. Pour chaque noeud du treillis, une métrique de chemin représentant la probabilité cumulée pour ce noeud de faire partie de la séquence émise est mise à jour en tenant compte de la métrique de chemin calculée au cycle précédent et des valeurs de métriques de branches courantes. Cette mise à jour comporte le calcul de deux métriques de chemins et la sélection de la plus faible (chemin survivant) ; une mémorisation du bit de décision réalisée par un bloc 44, en vue de restituer le signal décodé en fin de trame par une technique de remontée des survivants. Concrètement, le bloc 40 calcule la différence entre une valeur reçue et les sorties possibles du registre à décalage. Le bloc 42, généralement qualifié de bloc ACS (pour « Addition, Comparaison et Sélection ») réalise à chaque noeud du treillis des additions de deux métriques de chemins avec les métriques de branches, une comparaison des deux métriques de chemins obtenues et une sélection de la plus faible. Pour un calcul sur la base de quatre métriques de branches possibles BmOO, BmOl, Bm1O et Bml 1 calculées par le bloc 40, on peut ainsi faire apparaître un opérateur papillon tel que celui représenté sur la figure 5, pour le calcul des deux métriques de chemins suivantes : Pmk [t +1] = VitO = Min(Pmk [t] + BmOO, Pmk+1 [t] + Bml 0), Pmk+N, a [t +1] = Viti = Min(Pmk [t] + BmOl, Pmk+1 [t] + Bml 1). En considérant que la détection d'un minimum par comparaison de deux valeurs peut être réalisée à l'aide d'un soustracteur couplé à un multiplexeur, on note que cet opérateur papillon nécessite, pour réaliser les calculs des blocs 40 et 42, à savoir un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi : - pour chacun des deux calculs de valeurs de métriques de chemins et de survivants, deux modules matériels d'addition et un module matériel de soustraction, quatre modules matériels de soustraction supplémentaires pour le calcul des quatre valeurs de métriques de branches BmOO, BmOl , Bm10 et Bm11. En tout, dix modules matériels d'addition/soustraction sont utilisés par cet opérateur papillon, comme cela est représenté sur la figure 6. Si l'on note PO et P1 les deux métriques de chemins calculées au cycle précédent, Ref la valeur reçue et a, b, c, d les quatre valeurs de sortie possibles, alors l'opérateur papillon 46 illustré sur la figure 6 comporte à un premier niveau séquentiel : quatre modules de soustraction 48, 50, 52 et 54 pour réaliser respectivement les opérations Ref-b = BmO1, Ref-d = Bm11, Ref-c = Bm10 et Ref-a = BmOO, à un deuxième niveau séquentiel : un module d'addition 56 recevant la donnée de sortie du module 54 et la variable PO pour réaliser l'opération PO + BmOO, un module d'addition 58 recevant la donnée de sortie du module 52 et la variable P1 pour réaliser l'opération P1 + Bm1O, un module d'addition 62 recevant la donnée de sortie du module 48 et la variable PO pour réaliser l'opération PO + BmO1, et un module d'addition 64 recevant la donnée de sortie du module 50 et la variable P1 pour réaliser l'opération P1 + Bm11, et à un troisième niveau séquentiel : un module de soustraction 60 recevant les données de sorties des modules 56 et 58 pour une comparaison de PO + Bm00 et P1 + Bm10 permettant d'en déduire la valeur de VitO, et un module de soustraction 66 recevant les données de sorties des modules 62 et 64 pour une comparaison de PO + Bm01 et P1 + Bm11 permettant d'en déduire la valeur de Viti . On remarque alors que les trois modules d'addition et de soustraction 56, 58 et 60 interconnectés entre eux constituent un troisième opérateur matériel d'additions/soustractions 68 et que les trois modules d'addition et de soustraction 62, 64 et 66 interconnectés entre eux constituent un quatrième opérateur matériel d'additions/soustractions 70 de structure identique. Cette structure identique des troisième et quatrième opérateurs 68 et 70, bien que présentant des similarités avec les structures des premiers et deuxièmes opérateurs 36 et 38 précités, diffère par les interconnexions entre les modules d'addition et de soustraction. Selon l'invention, un opérateur matériel d'additions/soustractions générique de structure prédéterminée mais configurable à l'aide d'au moins un paramètre est proposé. Il apparaît en effet que les structures de l'opérateur papillon 10 de FFT et de l'opérateur Viterbi 46 impliquent des configurations matérielles permettant d'envisager une mise en commun de leurs opérateurs 36, 38, 68 et 70, moyennant un paramétrage de certains modules d'addition/soustraction de ces opérateurs et des liens à l'aide de multiplexeurs par exemple. Cette mise en commun possible, dont un exemple est illustré sur la figure 7, résulte du fait que les deux paires d'opérateurs précitées, la paire d'opérateurs 36 et 38 d'une part pour la FFT, la paire d'opérateurs 68 et 70 d'autre part pour l'algorithme de Viterbi, comportent une répartition identique des modules d'addition/soustraction (2x3) et une liaison systématique entre l'un des modules et les deux autres d'un même opérateur. Elle apparaît plus clairement dans une représentation mathématique commune des entrées et sorties respectives des opérateurs considérés. Ainsi, si l'on considère les modules 22, 28 et 30 du premier opérateur d'additions/soustractions 36, en notant El (e) l'une des deux entrées du module d'addition 28, E3 (bd) et E4 (ac) les deux entrées du module de soustraction 22, E6 (e) l'une des deux entrées du module de soustraction 30, S1 (ac-bd+e) la sortie du module d'addition 28, S2 (ac-bd) la sortie du module de soustraction 22 et S3 (-ac+bd+e) la sortie du module de soustraction 30, on obtient le jeu de relations suivantes : S1=E1+S2, S2 = E4 û E3, S3=E6ûS2. Si l'on considère maintenant les modules 24, 32 et 34 du deuxième opérateur d'additions/soustractions 38, en notant El (f) l'une des deux entrées du module d'addition 32, E3 (ad) et E4 (bc) les deux entrées du module d'addition 24, E6 (f) l'une des deux entrées du module de soustraction 34, S1 (ad+bc+f) la sortie du module d'addition 32, S2 (ad+bc) la sortie du module d'addition 24 et S3 (-ad-bc+f) la sortie du module de soustraction 34, on obtient le jeu de relations suivantes : S1=E1+S2, S2 = E4+ E3, S3=E6ùS2. Si l'on considère maintenant les modules 56, 58 et 60 du troisième opérateur d'additions/soustractions 68, en notant El (Ref-c) et E2 (P1) les deux entrées du module d'addition 58, E5 (Ref-a) et E6 (P0) les deux entrées du module d'addition 56, S1 (P1+Bm10) la sortie du module d'addition 58, S2 (P0+Bm00-(P1+Bm10)) la sortie du module de soustraction 60 et S3 (P0+Bm00) la sortie du module d'addition 56, on obtient le jeu de relations suivantes : S1= E1 + E2, S2 = S3 ù S1, S3=E5+E6. Enfin, si l'on considère maintenant les modules 62, 64 et 66 du quatrième opérateur d'additions/soustractions 70, en notant E1 (Ref-d) et E2 (P1) les deux entrées du module d'addition 64, E5 (Ref-b) et E6 (P0) les deux entrées du module d'addition 62, S1 (P1+Bm11) la sortie du module d'addition 64, S2 (P0+Bm01-(P1+Bm11)) la sortie du module de soustraction 66 et S3 (P0+Bm01) la sortie du module d'addition 62, on obtient le même jeu de relations que le précédent. A partir de ces trois jeux de relations, on peut en déduire un quatrième, commun aux quatre opérateurs précités, à deux paramètres binaires (a et /3) près : S1=E1+aE2+(1ùa)S2, S2=aS3+(ù1)eaS1+(1ùa)E4+(ù1)e(1ùa)E3, S3=E6+aE5ù(1ùa)S2. On obtient le premier opérateur 36 avec (a, /3) = (0, 1), le deuxième opérateur 38 avec (a, /3) = (0, 0) et les troisième et quatrième opérateurs avec (a, /3) = (1, 1). De ce quatrième jeu de relations, on peut en déduire un opérateur commun comportant au minimum : - un module matériel d'addition recevant E1 et la sortie d'un multiplexeur, commandé en fonction de la valeur du paramètre a, fournissant E2 (a =1) ou S2 (a =0), un module matériel d'addition/soustraction (additionneur pour /3=0 et soustracteur pour /3=1) recevant la sortie d'un premier multiplexeur, commandé en fonction de la valeur du paramètre a, fournissant S1 (a =1) 14 ou E3 (a =0), et la sortie d'un second multiplexeur, commandé en fonction de la valeur du paramètre a, fournissant S3 (a =1) ou E4 (a =0), un module matériel d'addition/soustraction (additionneur pour a =0 et soustracteur pour a =1) recevant E6 et la sortie d'un multiplexeur, commandé en fonction de la valeur du paramètre a, fournissant E5 (a =1) ou S2 (a =0). D'une façon plus avantageuse, l'opérateur générique 72 illustré sur la figure 7 répond à ces exigences minimales, mais permet en outre d'envisager d'autres applications de calculs arithmétiques. Il comporte six ports d'entrées E1, E2, E3, E4, E5 et 6 et trois ports de sorties S1, S2 et S3. Il comporte en outre un premier module d'addition/soustraction 74 configurable en additionneur ou soustracteur en fonction d'un paramètre /31 (additionneur si ,61=0 ou soustracteur si /31=1), recevant El et la sortie d'un premier multiplexeur 80, commandé en fonction de la valeur d'un paramètre a1, fournissant E2 (a1=1) ou S2 (a1=0), et fournissant S1. Il comporte en outre un deuxième module d'addition/soustraction 76 configurable en additionneur ou soustracteur en fonction d'un paramètre /32 (additionneur si /32=0 ou soustracteur si /32=1), recevant la sortie d'un deuxième multiplexeur 82, commandé en fonction de la valeur d'un paramètre a2, fournissant S1 (a2=1) ou E3 (a2=0), et la sortie d'un troisième multiplexeur 84, commandé en fonction de la valeur d'un paramètre a3, fournissant E4 (a3=1) ou S3 (a3=0), et fournissant S2. Enfin, il comporte en outre un troisième module d'addition/soustraction 78 configurable en additionneur ou soustracteur en fonction d'un paramètre /33 (additionneur si /33=0 ou soustracteur si /33=1), recevant E6 et la sortie d'un quatrième multiplexeur 86, commandé en fonction de la valeur d'un paramètre a4, fournissant S2 (a4=1) ou E5 (a4=0), et fournissant S3. On en déduit le jeu de relations paramétrable suivant : S1= El+ (ù1) el [a1.E2+ (1ù al)S2], S2 = [(1ù a3)S3 + a3.E4]+ (ù1)e2 e2[a2.S(1ù a2).E3], S3 = E6 + (ù1)e' [(1ù a4)E5 ù a4.S 2]. En jouant sur les sept paramètres binaires précités (a1, a2, a3, a4, /31, /32, /33), il est possible d'obtenir non seulement les configurations des opérateurs 36, 38, 68 et 70, mais encore d'autres configurations pouvant être utilisées pour des traitements autres que les calculs de FFT et de Viterbi précités. On notera que, dans la pratique, il est nécessaire d'introduire des éléments de mémorisation en sortie et/ou en entrée des additionneurs/soustracteurs pour résoudre l'indétermination produite par les rebouclages. Ainsi, comme représenté sur la figure 8, lorsque (a1, a2, a3, a4, /31, /32, /33) = (0, 0, 1, 1, 0, 1, 1) ou (0, 0, 1, 1, 0, 0, 1), l'opérateur générique 72 se comporte respectivement comme l'opérateur 36 ou 38. Comme représenté sur la figure 9, lorsque (a1, a2, a3, a4, /31, /32, /33) = (1, 1, 0, 0, 0, 1, 0), l'opérateur générique 72 se comporte comme l'opérateur 68 ou 70. Par ailleurs, à titre d'exemple et comme représenté sur la figure 10, lorsque (a1, a2, a3, a4, /31, /32, /33) = (1, 0, 1, 0, /31, /32, /33), quelles que soient les valeurs binaires de /31, /32, /33, l'opérateur générique 72 réalise plusieurs (en l'occurrence trois) opérations d'addition et/ou de soustraction indépendantes : E1 +/- E2=S1, E3+/- E4=S2, E5+/- E6=S3. Enfin, à titre d'exemple encore et comme représenté sur la figure 11, lorsque (a1, a2, a3, a4, /31, /32, /33) = (1, 1, 1, 1, /31, /32, /33), quelles que soient les valeurs binaires de /31, /32, /33, l'opérateur générique 72 réalise plusieurs (en l'occurrence trois) opérations d'addition et/ou de soustraction en cascade : [(E1 +/- E2) +/- E4] +/- E6. On note que l'on retrouve bien un paramétrage minimal possible de l'opérateur générique 72 à l'aide des deux paramètres binaires a et /3 en notant la corrélation entre les coefficients a1, a2, a3, a4, /31, /32, /33 dans les quatre configurations minimales exigées que sont les opérateurs 36, 38, 68 et 70. En effet, dans ces quatre configurations, (a1, a2, a3, a4, /31, /32, /33) = (a, a, 1-a, 1-a, 0, /3, 1-a), avec, comme indiqué précédemment, (a, /3) = (0, 1) pour le premier opérateur 36, (a, /3) = (0, 0) pour le deuxième opérateur 38 et (a, /3) = (1, 1) pour les troisième et quatrième opérateurs 68 et 70. A partir de l'opérateur générique 72, il est possible de concevoir un processeur de traitement de données comportant au moins un opérateur papillon commun paramétrable (à l'aide d'au moins les paramètres a et /3) capable d'exécuter un calcul de transformée de Fourier rapide dans une première configuration et un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi dans une seconde configuration, par une mise en commun d'au moins un opérateur tel que l'opérateur 72 pour réaliser les fonctions des opérateurs 36, 38, 68 et 70. Ainsi, alors que les algorithmes FFT et Viterbi sont différents tant dans les données qu'ils traitent que dans les fonctions qu'ils réalisent, la mise en commun de modules matériels de soustraction et/ou d'addition à l'aide d'opérateur tels que l'opérateur 72 et la conception d'une structure commune sont rendues possibles grâce à la mise en évidence originale d'une similarité de fonctionnement d'opérateurs papillons qu'ils mettent en oeuvre. En termes de complexité matérielle, un opérateur générique tel que l'opérateur 72 est équivalent à un opérateur tel que l'un quelconque des opérateurs 36, 38, 68 et 70. Ainsi, il est possible de conférer un caractère « générique » à un processeur de traitement de données en implémentant l'opérateur générique en lieu et place d'opérateurs 36, 38, 68 ou 70 spécifiques à un algorithme de FFT ou de Viterbi. En outre, l'utilisation de cet opérateur générique peut avoir comme conséquence un gain en complexité en réduisant les ressources matérielles réellement implémentées. Considérons le maximum d'opérateurs papillons requis par les normes actuelles et un pourcentage de chaque opérateur papillon, ce dernier pourcentage représentant le taux de parallélisme de l'implémentation, c'est-à-dire le nombre d'opérateurs concrètement implémentés. Pour un couple de pourcentages relatifs aux algorithmes de Viterbi et de la FFT, il est possible de calculer le gain potentiellement réalisable en remplaçant les opérateurs d'additions/soustractions spécifiques par l'opérateur générique précité en quantité égale au nombre maximal d'opérateurs nécessaires pour l'un ou l'autre des deux algorithmes. Ainsi, la généricité de l'opérateur 72 permet de s'adapter au mieux à la répartition entre le nombre d'opérateurs papillons pour l'algorithme de FFT et celui de Viterbi. Le gain apporté dépend du parallélisme des opérateurs à remplacer. Pour un parallélisme accru d'opérateurs papillons de Viterbi initiaux, le gain sera faible (dernière ligne du tableau). Pour un parallélisme accru des opérateurs papillons de la FFT, le gain sera plus conséquent (dernière colonne du tableau). Un autre avantage de l'opérateur générique 72 est de pouvoir tirer profit, dans le mode Viterbi, du fait que les données traitées dans le mode FFT doivent pouvoir être complexes et que leurs parties réelles et imaginaires sont en général entières. En mode Viterbi, le processeur de traitement est alors capable de fonctionner aussi bien avec des données d'entrée dures (binaires) que des données d'entrée souples (entières). Enfin, compte tenu de la variabilité de la performance des technologies microélectroniques, il est avantageux de proposer des opérateurs/processeurs de base les plus réguliers possible. En effet, il est alors envisageable d'implanter de tels processeurs en surnombre et de les configurer a posteriori en fonction des performances ou des pannes éventuelles de chacun de ces processeurs. Par conséquent un processeur incluant au moins un opérateur générique 72 tel que celui décrit précédemment est avantageusement intégré dans un terminal de télécommunication 88 à modulation/démodulation multi porteuses des signaux émis/reçus et à décodage de signaux traités par un code convolutif comme illustré sur la figure 12. Les applications d'un processeur de traitement incluant au moins un tel opérateur générique et à au moins deux modes de fonctionnement FFT et Viterbi sont multiples que ce soit pour un terminal à norme unique ou pour un terminal multinormes. En effet, beaucoup de normes mettent par exemple en oeuvre une modulation OFDM (calcul de FFT) et nécessitent un décodage de code convolutif (algorithme de Viterbi), parmi lesquels : la radiodiffusion numérique terrestre DAB, la télédiffusion numérique terrestre (DVB-T, DVB-H), la radiodiffusion numérique terrestre T-DMB, la radiodiffusion numérique DRM, les liaisons filaires : ADSL, VDSL, modem sur courant porteur (Homeplug), modem câble (norme Docsis), les réseaux sans-fils basés sur les normes 802.11a, 802.11g (Wi-Fi), 802.16 (WiMAX) et HiperLAN, les réseaux mobiles de nouvelle génération (4G). Cette liste n'est bien sûr pas exhaustive puisque la quasi totalité des normes actuelles ou à l'étude utilise une modulation OFDM et/ou un décodage de Viterbi. En outre, des travaux récents on montré que la FFT pouvait être appliquée pour des opérations plus diversifiées qu'une simple modulation. Notamment, elle peut être utilisée pour des calculs de corrélation, la genèse de filtres de type FIR, l'estimation de canal ou la détection de plusieurs utilisateurs. De même, l'algorithme de Viterbi a lors d'études passées été étendu au décodage des Turbos Codes. Ainsi, l'opérateur générique 72 proposé peut être utilisé par une majorité des fonctions de terminaux de télécommunication mono- ou multi-normes. Il facilite leur intégration par la mise en oeuvre de blocs de traitement homogènes comportant des opérateurs génériques configurables. On notera enfin que l'invention ne se limite pas au mode de réalisation envisagé. Il apparaîtra en effet à l'homme de l'art que diverses modifications peuvent être apportées au mode de réalisation décrit ci-dessus, à la lumière de l'enseignement qui vient de lui être divulgué. Dans les revendications qui suivent, les termes utilisés ne doivent pas être interprétés comme limitant les revendications au mode de réalisation exposé dans la présente description, mais doivent être interprétés pour y inclure tous les équivalents que les revendications visent à couvrir du fait de leur formulation et dont la prévision est à la portée de l'homme de l'art en appliquant ses connaissances générales à la mise en oeuvre de l'enseignement qui vient de lui être divulgué. REVENDICATIONS1. Opérateur matériel d'additions/soustractions (72) comportant une pluralité de modules matériels d'addition/soustraction (74, 76, 78) et une pluralité de liens de transmission de données entre ces modules, d'une part, et entre des entrées (El, E2, E3, E4, E5, E6) et sorties (S1, S2, S3) de l'opérateur et ces modules, d'autre part, selon une structure prédéterminée pour la réalisation de calculs arithmétiques, caractérisé en ce qu'au moins une partie (74, 76, 78) des modules matériels d'addition/soustraction de l'opérateur et au moins une partie (80, 82, 84, 86) des liens entre ces modules sont configurables à l'aide d'au moins un paramètre programmable (a1, a2, a3, a4, /31, /32, /33), au moins entre une première configuration dans laquelle l'opérateur finalise (72) un calcul de parties réelles de coefficients de transformée de Fourier rapide, une deuxième configuration dans laquelle l'opérateur finalise un calcul de parties imaginaires de coefficients de transformée de Fourier rapide, et une troisième configuration dans laquelle l'opérateur réalise un calcul de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi. 2. Opérateur matériel d'additions/soustractions (72) selon la revendication 1, dans lequel les modules matériels d'addition/soustraction et les liens configurables sont en outre configurables à l'aide dudit au moins un paramètre programmable (a1, a2, a3, a4, /31, /32, /33), dans une quatrième configuration dans laquelle l'opérateur (72) réalise plusieurs opérations d'addition et/ou de soustraction indépendantes et une cinquième configuration dans laquelle l'opérateur finalise une cascade d'opérations d'addition et/ou de soustraction. 3. Opérateur matériel d'additions/soustractions (72) selon la revendication 1 ou 2, comportant un premier module matériel d'addition/soustraction (74) configurable, à l'aide d'un premier paramètre binaire (/31), entre une configuration d'additionneur et une configuration de soustracteur, un deuxième module matériel d'addition/soustraction (76) configurable, à l'aide d'un deuxième paramètre binaire (/32), entre une configuration d'additionneur et une configuration de soustracteur, et un troisième module matériel d'addition/soustraction (78) configurable, à l'aide d'un troisième paramètre binaire (/33), entre une configuration d'additionneur et une configuration de soustracteur. 4. Opérateur matériel d'additions/soustractions (72) selon la revendication 3, comportant :un premier lien (80) de fourniture d'une valeur d'opérande au premier module configurable (74), à l'aide d'un premier paramètre de multiplexage (a1), entre une configuration de fourniture d'une donnée d'entrée (El) de l'opérateur (72) et une configuration de fourniture de la sortie (S2) du deuxième module configurable (76), un deuxième lien (82) de fourniture d'une première valeur d'opérande au deuxième module configurable (76), à l'aide d'un second paramètre de multiplexage (a2), entre une configuration de fourniture d'une donnée d'entrée (E3) de l'opérateur (72) et une configuration de fourniture de la sortie (Si) du premier module configurable (74), un troisième lien (84) de fourniture d'une seconde valeur d'opérande au deuxième module configurable (76), à l'aide d'un troisième paramètre de multiplexage (a3), entre une configuration de fourniture d'une donnée d'entrée (E4) de l'opérateur (72) et une configuration de fourniture de la sortie (S3) du troisième module configurable (78), et un quatrième lien (86) de fourniture d'une valeur d'opérande au troisième module configurable (78), à l'aide d'un quatrième paramètre de multiplexage (a4), entre une configuration de fourniture d'une donnée d'entrée (E6) de l'opérateur (72) et une configuration de fourniture de la sortie (S2) du deuxième module configurable (76). 5. Opérateur matériel d'additions/soustractions (72) selon la revendication 4, dans lequel chaque lien configurable comporte un multiplexeur (80, 82, 84, 86) à deux entrées et une sortie et à sélection de l'une des deux entrées à l'aide d'un paramètre binaire (a1, a2, a3, a4). 25 6. Processeur de traitement de données numériques comportant au moins un opérateur papillon (10, 46) incluant au moins un opérateur matériel d'additions/soustractions (72) selon l'une quelconque des revendications 1 à 5, l'opérateur papillon étant configurable, à l'aide dudit paramètre programmable (a1, a2, a3, a4, /31, /32, /33), entre une première configuration dans laquelle il réalise un 30 calcul de transformée de Fourier rapide et une seconde configuration dans laquelle il réalise un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi. 7. Processeur de traitement de données numériques selon la revendication 6, comportant une pluralité d'opérateurs papillons (10, 46) configurables entre ladite 35 première configuration dans laquelle chaque opérateur papillon réalise ledit calcul de 10 15 20transformée de Fourier rapide et ladite seconde configuration dans laquelle chaque opérateur papillon réalise un calcul de valeurs de métriques de branches et de valeurs de métriques de chemins et de survivants d'une implémentation de l'algorithme de Viterbi, ces opérateurs papillons étant structurés entre eux pour un calcul de transformée de Fourier rapide par une approche algorithmique de Cooley-Tukey en treillis de type Radix-2 et pour une implémentation de l'algorithme de Viterbi en treillis à quatre symboles de référence. 8. Terminal de télécommunication (136) à modulation/démodulation multi porteuses des signaux émis/reçus et à décodage de signaux traités par un code convolutif, comportant au moins un opérateur matériel d'additions/soustractions (72) selon l'une quelconque des revendications 1 à 5. 9. Terminal de télécommunication (136) selon la revendication 8, à modulation et démodulation de type OFDM. 10. Terminal de télécommunication (136) selon la revendication 9, de type multi-normes, comportant au moins un modulateur/démodulateur à modulation et démodulation OFDM compatible avec chaque norme implémentée et au moins un décodeur de signal codé par un code convolutif compatible avec chaque norme implémentée.