Académique Documents
Professionnel Documents
Culture Documents
Thèse
présentée devant
l’UNIVERSITE ´ DE RENNES I
par
Jean-Philippe Delahaye
Composition du jury
Rapporteurs
M. Michel Auguin Directeur de recherche CNRS, Lab. I3S-UNSA-CNRS, Nice
M. Jean-Luc Philippe Professeur des Universités, Université de Bretagne Sud - LESTER, Lorient
Examinateurs
M. Antoni Gelonch Professeur associé, Universitat Politècnica de Catalunya, Barcelona
M. Jean-François Hélard Professeur des Universités, IETR/INSA, Rennes
M. Bernard Uguen Professeur des Universités, Université de Rennes I - IETR, Rennes
M. Pierre Leray Professeur associé, IETR/Supélec, Rennes
M. Jacques Palicot Professeur, IETR/Supélec, Rennes
Remerciements
Cette thèse a été effectuée sous la direction de Monsieur Jacques Palicot, responsable du
laboratoire Signal Communication et Electronique Embarquée (SCEE) à Supélec Rennes.
L’encadrement, les conseils, le soutien dont il m’a fait bénéficier durant ce travail se sont
révélés précieux.
Je tiens à remercier Pierre Leray et Yves Louët de m’avoir proposé le sujet de thèse,
je tiens particulièrement à remercier Pierre Leray pour son implication tout au long de
cette thèse et pour sa grande contribution au travail réalisé autour des plates-formes
d’expérimentations matérielles.
dant ces années, et avec qui j’ai eu tant de discussions radio logicielle et bien d’autres
fructueuses.
A Messieurs Hongzhi Wang, Loı̈g Godard doctorants et Amor Naftha post-doctorant de-
venu depuis enseignant-chercheur à Supélec, avec qui j’ai eu la joie de travailler sur de
nombreux aspects des architectures reconfigurables.
A Monsieur David Elleouët, avec qui j’ai pu travailler sur les aspects consommation de
la reconfiguration dynamique des FPGA, et aussi aux sessions à ramer ensemble pour
prendre les bonnes vagues.
Les techniques radio logicielle visent à offrir un accès à un large choix de standards de
radiocommunications sur une architecture matérielle unique. Une grande flexibilité de
l’architecture d’un système radio logicielle est nécessaire afin de répondre à la diver-
sité des traitements à exécuter. Les techniques de communications numériques employées
dans les standards entraı̂nent des besoins en ressources de traitements hétérogènes. La
reconfigurabilité d’une plate-forme d’exécution hétérogène est donc un point clef techno-
logique à l’apparition de systèmes radio logicielle. La diversité des traitements induit aussi
une variété de configurations de l’architecture. La reconfigurabilité des systèmes RL doit
répondre aux besoins d’adaptation des algorithmes de traitement du signal afin de s’adap-
ter aux demandes de changements de contexte applicatifs. Une analyse des applications
multistandard est donc nécessaire pour déterminer les besoins de flexibilité des applica-
tions. Nos travaux s’appuient sur l’analyse des traitements des couches physiques dans les
chaı̂nes d’émission des 3 standards de radiocommunications UMTS, GSM, WLAN 802.11g
(mode OFDM) choisi pour la diversité des traitements en bande de base effectués.
Afin que la reconfigurabilité potentielle soit exploitable lorsque le système est autonome,
la gestion de configuration est une caractéristique essentielle d’un réel système RL. Nous
proposons une approche hiérarchique et distribuée de la gestion de configuration afin de
répondre au besoins de flexibilité des applications orientées flots de données implantées
sur des ressources hétérogènes.
La mise en œuvre d’applications sur des plates-formes hétérogènes reconfigurables et en
particulier sur des circuits logiques configurables, nécessite la mise en place de méthodologies
de conception afin d’extraire la reconfigurabilité potentielle de ces circuits. Nous apportons
dans ses travaux des approches de conception des applications particulièrement sur circuit
de type FPGA permettant de réaliser des traitements reconfigurables dynamiquement.
Table des matières
Remerciements i
Résumé iii
Introduction 1
v
vi table des matières
Annexe 159
Bibliographie 193
Introduction
des circuits spécialisés sur des technologies reconfigurables comme par exemple QuickSil-
ver Technologies(5) , Infineon ayant racheté Morphics Technology(6) , Philips ayant absorbé
Systemonic(7) , et Motorola Morpho Technologies(8) et elles regardent la radio logicielle
comme un des domaines applicatifs les plus attractifs pour ce nouveau type de circuits.
Les promoteurs historiques du reconfigurable que sont les circuits FPGA (Field Program-
mable Gate Array) avec en tête la société Xilinx(9) proposent aujourd’hui des circuits
matures de plus en plus intéressants, tant sur le plan technique qu’économique. La société
Xilinx s’implique d’ailleurs dans les programmes de recherche concernant la radio logicielle.
(1)
http ://www.intel.com/technology/techresearch/radio/
(2)
http ://www.picochip.com
(3)
http ://www.aircom.com
(4)
http ://www.vanu.com
(5)
http ://www.qstech.com
(6)
http ://www.morphics.com
(7)
http ://www.systemonic.com
(8)
http ://www.morphotech.com
(9)
http ://www.xilinx.com
Introduction 3
Problématique de l’étude
La problématique de l’étude présentée dans ce document est la suivante : face à la multi-
tude des standards de communications, impliquant une grande diversité des traitements
numériques et face à l’hétérogénéité nécessaire des ressources pour répondre efficacement
aux besoins de traitement, est-il possible d’offrir une architecture de gestion de configu-
ration répondant à la fois aux besoins de changement de contextes applicatifs et capable
d’exploiter la reconfigurabilité offerte par une plate-forme d’exécution hétérogène sans le
surcoût d’un exécutif de haut niveau ? Aujourd’hui, il existe peu d’études sur les archi-
tectures de gestion de configuration qui représentent pourtant le réel point distinctif des
systèmes radio logicielle par rapport à d’autres domaines exploitant les avancées du recon-
figurable. Dans le même temps, de nouvelles normes de communication voient le jour et le
domaine des architectures reconfigurables évolue rapidement. Une architecture de gestion
de configuration doit donc présenter un niveau d’abstraction suffisant afin de s’adapter à
ces futures évolutions.
La mise en œuvre des applications sur des plates-formes hétérogènes et en particulier
4 Introduction
Contributions
Les contributions de ces travaux s’articulent, autour de la reconfigurabilité, sur trois
thèmes complémentaires :
• L’analyse d’applications multi-standards (traitements de la couche physique) et des
besoins en reconfiguration.
• L’architecture de gestion de configuration pour exploiter la reconfigurabilité à l’exécution
et l’architecture flot de données associée, adaptée à des traitements reconfigurables.
• Les méthodologies de conception (FPGA) pour la mise en œuvre de la reconfigura-
bilité.
Les travaux décrits dans ce document proposent une architecture de traitement orientée
flot de données étroitement associée à une structure de gestion de configuration. Ce
modèle destiné à être déployé sur tous types de plates-formes matérielles hétérogènes
vise à répondre aux besoins de changement de contextes des applications multi-standards.
Cela passe obligatoirement par une analyse des recouvrements en terme de nature de
traitement entre standards. Ce point garantit l’efficacité dynamique de l’exécution. A tra-
vers le modèle d’architecture proposé, nos travaux permettent de mieux appréhender la
conception d’applications radio logicielle sur des plates-formes matérielles hétérogènes.
Dans le cadre de nos études sur les approches de conception possibles pour répondre
aux besoins en reconfiguration de la radio logicielle, nous nous sommes particulièrement
intéressés aux méthodologies de conception des FPGA et notamment à la mise en œuvre
de la reconfiguration partielle comme moyen de fournir de l’adaptabilité aux applications.
Nos travaux sur la gestion de configuration ont été reconnus au SDR Forum, organisme
de réflexion sur la RL, et ont donné lieu à une coopération avec Xilinx. Les travaux,
notamment ceux autour de la reconfiguration dynamique de FPGA, sont engagés dans
des projets européens dont NEWCOM et E 2 R nécessitant de confronter nos approches de
conception à de nouvelles applications et plates-formes matérielles.
Contexte
Les travaux décrits dans ce document ont été réalisés à l’origine au sein de l’équipe de
recherche ETSN devenue ensuite l’équipe SCEE à Supélec campus de Rennes. Historique-
ment, l’équipe de recherche s’est toujours intéressée à l’étude et à la conception de systèmes
pour des applications en traitement du signal et de l’image. Depuis trois ans, l’équipe s’est
tournée davantage vers le domaine de la radio logicielle et de la radio intelligente à tra-
vers l’étude des systèmes de traitement du signal et des systèmes de communications
numériques. Ces travaux ont donc initié et contribué à développer des compétences de
l’équipe dans le domaine de la conception d’applications radio logicielle sur des archi-
tectures hétérogènes reconfigurables. Les outils et méthodologies de conception mis en
Introduction 5
place au cours de cette étude permettent aujourd’hui la réalisation d’autres travaux, par
exemple autour de MIMO.
Plan du mémoire
Les travaux présentés, dans ce document en trois parties, nous ont amené à développer une
architecture de traitement sur plate-forme hétérogène pour les applications de la couche
physique radio logicielle.
1. Dans la première partie de ce rapport, il nous a semblé important de donner au
lecteur les éléments sur les aspects applicatifs de la radio logicielle, sur lesquels
nous nous appuyons par la suite pour proposer des solutions d’implantations des
traitements multi-standard.
• Le premier chapitre donne au lecteur un aperçu plus détaillé du domaine de
la radio logicielle, permettant de situer de manière plus technique les choix et
motivations de cette étude.
• Le second chapitre présente les principales informations sur les trois standards de
communications utilisés comme applications au cours de l’étude.
• Suite à la présentation des trois standards, nous exposons les différentes approches
de paramétrisation des traitements multi-standards et nous exposons notre ana-
lyse RL, nous amenant à proposer une chaı̂ne de transmission tri-standard. Nous
dégageons également les différents besoins en reconfigurabilités de ces applications.
2. Le premier chapitre de la seconde partie propose un état de l’art sur les technologies
candidates à la constitution d’un système radio logicielle.
Au second chapitre de cette partie, nous proposons un modèle d’architecture répondant
aux besoins de la radio logicielle.
• Le quatrième chapitre présente successivement un état de l’art des trois prin-
cipales composantes d’une architecture de système radio logicielle que sont les
architectures matérielles, les architectures logicielles de couche intermédiaire et
celles de gestion de configuration.
• Après cette analyse de l’existant, nous proposons dans le cinquième chapitre, un
modèle qui se compose d’un double chemin de données de traitement et de configu-
ration. La structure de gestion de configuration “HDCM” (Hierachical Distributed
Configuration Management) s’appuie sur l’analyse des besoins applicatifs donnée
dans la première partie.
3. La dernière partie du rapport est consacrée à la mise en œuvre sur plate-forme du
modèle d’architecture proposé, en s’intéressant à la fois aux aspects méthodologie
de conception et à la réalisation d’une chaı̂ne de traitement reconfigurable.
• Nous proposons, dans le sixième chapitre, une approche de conception d’applica-
tion flot de données pour plate-forme hétérogène. Puis nous nous intéressons plus
particulièrement aux méthodologies de conception pour exploiter la reconfigura-
bilité des FPGA notamment par reconfiguration partielle.
• Le dernier chapitre présente la mise en œuvre d’une plate-forme matérielle hétérogène
utilisée à travers l’implantation du modèle d’architecture défini au cinquième cha-
pitre. Ce chapitre montre l’adaptation de ce modèle à l’architecture physique de la
plate-forme et l’exploitation de celui-ci à travers des scénarios de reconfiguration.
Des exemples de réalisations d’algorithmes illustrent aussi la mise en œuvre de la
6 Introduction
Sommaire
3.1 Introduction aux études de paramétrisation . . . . . . . . . . 34
3.1.1 Fonctions communes . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.2 Opérateurs communs . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.3 Multiplexage de fonctions . . . . . . . . . . . . . . . . . . . . . . 35
3.1.4 Chaı̂ne de traitement commune . . . . . . . . . . . . . . . . . . . 36
3.2 Etude de la chaı̂ne de transmission tri-standards . . . . . . . 39
3.2.1 La factorisation fonctionnelle . . . . . . . . . . . . . . . . . . . . 39
3.2.2 Classification en groupe fonctionnel . . . . . . . . . . . . . . . . 42
3.2.3 Analyse des besoins de gestion de configuration de l’application
multi-standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Comme nous l’avons évoqué dans l’introduction générale, l’architecture radio logi-
cielle “idéale” (Software Radio - SWR) telle qu’elle a été définie par Mitola en 1995 [1] est
construite autour d’un circuit de type processeur généraliste et sa mémoire, exécutant
toutes les fonctions radio. Dans ce cas, les traitements en réception (respectivement
émission) sont effectués en radio fréquence de façon numérique après une conversion (res-
pectivement avant) A/N(1) (respectivement N/A(2) ) large bande. Encore aujourd’hui, de
nombreux verrous technologiques, notamment la performance des convertisseurs A/N et
N/A ne rendent pas envisageable ce type d’architecture dite de radio logicielle idéale. Au-
delà des limitations des convertisseurs, la puissance de traitement des circuits numériques
actuels ne permet pas d’atteindre les capacités de calcul requises pour effectuer les traite-
ments dans le domaine radio fréquence pour des standards déjà existants tels que UMTS
ou GSM/EDGE comme le montre l’étude de Greifendorf et al. [3]. Selon cette étude les
performances estimées peuvent varier pour les traitements en bande de base de 10 GIPS(3)
pour le GSM à 100 GIPS pour l’UMTS et représentent un réel verrou au niveau consom-
mation si des circuits généralistes sont utilisés. L’évolution technologique rendra peut-être
faisable dans le futur la radio logicielle idéale. Toutefois, attendre la seule évolution des
technologies CMOS n’est pas suffisant à moyen terme ! Une optimisation des ressources
(1)
Analogique / Numérique
(2)
Numérique / Analogique
(3)
Giga Instruction Per Second
9
10 Introduction à la radio logicielle
matérielles utilisées est nécessaire, dès à présent afin d’arriver à des premiers résultats,
mais également sur la durée afin de limiter les coûts. C’est pourquoi la radio logicielle
n’est pas un but clairement identifié, un idéal à atteindre, mais une évolution constante
sur le long terme.
Face aux contraintes technologiques et à la diversité des traitements à exécuter, l’adop-
tion d’architectures pragmatiques semble être la seule solution possible [4]. La différence
est donc faite entre la radio logicielle “idéale” et la radio logicielle “restreinte” (Software
Defined Radio, SDR). Ces récepteurs s’appuient sur des architectures matérielles étagées
en plusieurs segments technologiques. De façon schématique, un émetteur/récepteur radio
contient un segment analogique pour la partie RF et FI(4) (la FI est aussi envisagée en
numérique), des circuits numériques pour l’étage bande de base et enfin des solutions logi-
cielles pour les couches applicatives. Dans les approches pragmatiques, chaque étage suit
une évolution tendant à remplacer progressivement les circuits spécialisés par des compo-
sants plus généralistes et programmables. La numérisation se rapproche de l’antenne et
le front-end, étage analogique d’entrée, se réduit. Les circuits ASIC de l’étage numérique
d’entrée se voient remplacer par des circuits programmables et les formes d’ondes de-
viennent des applications logicielles. Les premiers projets sont à l’initiative du domaine
militaire américain. Le projet SpeakEasy [5] phase I de 1992 à 1995 avait pour objectif
de produire un système radio pouvant opérer entre 2 MHz et 2 GHz pour offrir l’in-
teropérabilité entre les systèmes de communications des armées américaines (armée de
terre en VHF, FM et SINCGARS, armée de l’air VHF et AM, marine VHF, AM et
HF). La phase II de SpeakEasy [6] a vu l’apparition d’un démonstrateur reprogram-
mable basé sur une architecture logicielle “ouverte”. En effet, afin que les systèmes soient
interopérables entre eux, des modèles d’architectures sont définis. Le PMCS (Program-
mable Modular Communications System) [7] est un exemple de ce type d’architecture,
destiné au domaine militaire il présente un module “Infosec” de sécurisation et d’encryp-
tion protégeant les informations du Modem. Ce modèle résulte du projet de recherche
SpeakEasy. Nous pouvons noter qu’une autre innovation de ce projet est qu’il a été utilisé
des FPGA pour les traitements numériques des radiocommunications.
(4)
Fréquence intermédiaire
11
Ensuite, un vaste programme radio logicielle a été lancé par le DoD américain et les
membres de l’OTAN pour définir une radio logicielle interopérable “à plus grande échelle”.
En 1998, il résulte de ce programme une série de documentations et de spécifications, base
d’une architecture système SDR modulaire de référence. Dans l’industrie, Motorola, par
ailleurs un des principaux participants du projet JTRS, propose sa propre architecture,
Digital Modular Radio (DMR) [8] directement issue des travaux du JTRS.
En 1998, à l’époque des Pentium 166, Pentium 200 Pro et autres stations Sun Ultra M170,
Vanu G. Bose et al. [9] proposent une première implantation radio logicielle sur PC, d’un
système de radio communication FSK et ensuite une implantation logicielle [10] du stan-
dard de radiocommunication civile GSM.
L’évolution de la radio logicielle amène à considérer des applications multi-standards
nécessitant de traiter de multiples couches physiques sur la même plate-forme afin d’offrir
différents types de services. On peut imaginer retrouver dans un terminal de nombreux
standards afin d’offrir l’accès aux systèmes mobiles (GSM et UMTS), de diffusion (DVB-H
et DAB), de positionnement (GPS) et un accès à un réseau WPAN (Bluetooth) et WLAN
(WiFi) comme l’illustre le tableau 1.1.
Les importantes capacités de calcul requises par les traitements en bande de base
rendent indispensable l’utilisation de circuits divers afin d’optimiser l’efficacité de cal-
cul, suivant la nature des traitements divers et variés à effectuer dans le MODEM. Les
architectures d’exécution sont donc hétérogènes afin de répondre à la diversité de ces
traitements. Afin de ne pas multiplier le nombre de circuits d’un système embarqué, son
architecture doit être flexible. La tendance est donc de s’orienter vers des circuits de types
processeurs, ceux de type généraliste (GPP) offrant le maximum de flexibilité. Cependant
ces circuits généralistes ont une mauvaise efficacité énergétique par rapport à des circuits
de traitement du signal spécialisés, et l’évolution des technologies CMOS n’effacera pas
cette différence puisqu’il n’est pas dans l’objectif des GPP d’économiser l’énergie, mais de
fournir toujours plus de puissance.
La conception d’architecture pour les traitements en bande de base des applications radio
logicielle doit donc répondre au compromis optimisation/flexibilité qui conduira certaine-
ment à la conception d’architectures hétérogènes comme l’illustre la figure 1.2.
Les architectures d’exécution des systèmes radio logicielle et les circuits de traitements en
bande de base sont présentés dans le paragraphe 4.4.1.
Par la suite, nous nous intéressons plus particulièrement aux architectures de la partie
MODEM du modèle illustré par la figure 1.1, qui comprend les traitements en bande de
base et en FI, ce qui constitue la couche basse ou couche physique (en partie car RF et
antenne sont séparées), des systèmes radio logicielle.
12 Introduction à la radio logicielle
– La “radio logicielle idéale” (“SoftWare Radio” SWR) est la radio logicielle opti-
male avec comme principale caractéristique une conversion large bande située après
l’antenne suivie d’une architecture de traitement numérique programmable. L’ar-
chitecture correspondant à la radio logicielle idéale est illustrée figure 1.3.b. Cette
architecture correspond à l’architecture de référence présentée par J. Mitola [1].
1.1 Définitions et généralités 13
Dans le cas de la RL idéale, tous les traitements depuis les fonctions radio fréquence
jusqu’aux couches applicatives en passant par les traitements en bande de base sont
donc réalisés de façon numérique.
– La radio logicielle “restreinte”, terme introduit dans [4] est la “Software Defined
Radio” SDR correspond aux caractéristiques d’une numérisation par bande radio
restreinte réalisée en fréquence intermédiaire ou en bande de base. Deux architec-
tures sont possibles. La figure 1.3.c présente l’architecture en conversion en fréquence
intermédiaire qui est un compromis avec la RL idéale. La figure 1.3.d illustre l’ar-
chitecture en conversion directe pour laquelle le principal inconvénient se situe au
niveau de l’oscillateur local qui doit être capable de synthétiser toutes les fréquences
porteuses des standards visés.
– Les récepteurs actuels de type super-hétérodyne par une sélection de bande étroite
ne permettent pas la réception de plusieurs standards autrement que par duplication
physique des récepteurs.
Le SDR Forum [11], principal consortium de promotion de la radio logicielle basé aux
États-Unis, rassemblant des acteurs industriels, des organisations gouvernementales et
académiques a pour but de promouvoir les technologies radio logicielle. Le SDR Forum
donne une terminologie (cf. tableau 1.2) de la radio logicielle qui exprime par la même
occasion les évolutions à venir des systèmes RL. Le SDR forum a donc défini plusieurs
niveaux de “SDR” désignant les capacités et la flexibilité atteignables par ces “SDR”.
Nous avons donné dans [12] un aperçu des principaux projets dans le domaine RL.
Les premières actions au niveau européen ont été menées dans le cadre des programmes
ACTS (Advanced Communications Technologies and Services) et IST disponibles dans le
rapport ACTS [13].
Par la suite les projets européens se sont multipliés sur de très divers axes de recherches
montrant que la radio logicielle recouvre de vastes thématiques de recherche.
Lors du lancement par l’IST du “Framework Programme” (FP5), un point de recherche
essentiel a été la re-configurabilité des systèmes radio. Ceci a donné lieu à de nombreux
projets dont ceux de l’IST comme CAST, TRUST, Pastoral, WIND-FLEX présentés ci-
dessous. D’autres projets européens provenant aussi du FP5 tels que Adriatic, SORT,
SCOUT, se sont intéressés aux systèmes radio reconfigurables. La reconfigurabilité a été
étudiée sous des aspects très variés dans ces différents projets comme l’illustre la figure
1.4. Les études portent sur la re-configurabilité des couches réseaux physiques dans les
infrastructures et les terminaux. L’un des premiers et aussi des plus vastes projets est
TRUST. Un des objectifs était l’évaluation des besoins de l’utilisateur en reconfigurable
et ses travaux sur la reconfigurabilité ont notamment été menés sous l’angle de scénarios.
Ces scénarios définissent des usages de la reconfiguration par l’utilisateur. TRUST a aussi
proposé la mise en place de politiques de reconfiguration afin de contribuer à une norma-
lisation de ces mécanismes. Les projets CAST et TRUST ont contribué à la gestion des
ressources re-configurables, sur les procédures et protocoles pour télécharger et manipuler
les reconfigurations via l’interface air et le réseau.
IST-TRUST 2000-2002 : Transparently Reconfigurable Ubiquitous Terminal. Analyse
de besoins de reconfiguration du point de vue utilisateur et opérateur par une ap-
proche basée sur des scénarios. L’objectif était d’identifier les caractéristiques des
systèmes (notamment au niveau réseau) pour supporter la reconfigurabilité des ra-
dios.
14 Introduction à la radio logicielle
La reconfigurabilité est une partie essentielle des futurs systèmes liés aux concepts
de radio logicielle. La diversité des projets portant sur le sujet montre que cette notion
recouvre beaucoup d’aspects décrits notamment dans [19]. Aujourd’hui, elle est désignée
comme étant une des caractéristiques majeures pour définir les systèmes de communi-
cations mobiles qui succéderont aux systèmes 3G, aussi appelés “beyond 3G systems”.
Un exemple de l’importance de cette activité de recherche est donné par le projet eu-
ropéen End-to-End Reconfigurability (E2 R) [2]. Ce projet réalisé, en 2 phases (Phase I :
2004-2005, Phase II 2006-2007), dans le cadre du FP6 est le plus important projet en
16 Introduction à la radio logicielle
cours dans le domaine radio logicielle civile. Il s’intéresse à la reconfigurabilité dans une
approche globale, de bout en bout, (“End to End”) des systèmes de radio communica-
tion. La reconfigurabilité des futurs systèmes s’étend sur l’ensemble des couches logicielles
(transport, network, data-link and physical layers), tant au niveau des équipements utili-
sateurs qu’au niveau des réseaux et de l’offre en termes d’applications.
Actuellement le projet E2 R est en phase 2, les travaux de cette thèse sont soumis à contri-
bution [20] dans la réalisation d’un démonstrateur.
Au niveau national, une plate-forme ouverte [21] a été développée par l’institut Eu-
recom dans le cadre des projets PLATON et RHODOS. Cette plate-forme mise en place
pour le système 3G (UTRA TDD) implante sous forme logicielle entièrement program-
mable les protocoles (PHY/MAC/L3). Un nouveau projet RNRT Idromel a débuté en fin
2006. Le projet s’intéresse à l’impact des équipements reconfigurables pour le déploiement
des futurs réseaux mobiles. L’objectif est aussi de proposer à la communauté nationale et
internationale une plate-forme ouverte d’expérimentation d’équipements reconfigurables.
Nous nous intéressons dans cette étude à la reconfigurabilité des systèmes de traite-
ment numérique du signal composés de circuits électroniques. Au niveau d’un circuit de
traitement, la reconfigurabilité est selon Polydoros et al. [22] la capacité d’un circuit à
effectuer des changements structurels de son architecture de traitement. La reconfigura-
bilité traduit par exemple la flexibilité des circuits de type FPGA. Dans le cas de circuits
de type processeur la flexibilité est synonyme de reprogrammabilité. La reprogrammabi-
lité selon Polydoros et al. [22] est la capacité d’un circuit à effectuer un changement de
fonction en changeant la mémoire programme d’une architecture d’exécution donnée.
Nous utiliserons par la suite le terme de reconfigurabilité dans un sens large.
Fig. 1.5 – Evolutions “Idéales” des systèmes SDR en fonction des capacités matérielles
Un système embarqué SDR doit donc s’appuyer sur une architecture dédiée pour une
optimisation des traitements à réaliser. Cela implique que l’architecture soit hétérogène
comme le montre la figure 1.6. Ceci afin de répondre avec une bonne efficacité énergétique
à la diversité des fonctions à réaliser.
Conclusion
Dans un contexte applicatif de plus en plus multi-standard, la reconfigurabilité est, à
tous les niveaux (cf. projets européens), un axe central des recherches dans le domaine
de la RL. Parmi les défis que soulève la radio logicielle, celui de la reconfigurabilité des
18 Introduction à la radio logicielle
plates-formes matérielles est l’un des principaux de par le fait que l’utilisation seule de
processeurs généralistes ne semble pas être une solution ni à court, ni à long terme. Une
architecture pragmatique de plates-formes sera hétérogène pour traiter, avec efficacité
énergétique, la diversité des fonctions en bande de base issues des différents standards.
Chapitre 2
Sommaire
4.1 Les ressources matérielles . . . . . . . . . . . . . . . . . . . . . 52
4.1.1 Flexibilité des systèmes radio logicielle . . . . . . . . . . . . . . . 54
4.1.2 Systèmes à architecture matérielle fixe . . . . . . . . . . . . . . . 54
4.1.3 Systèmes flexibles à la conception . . . . . . . . . . . . . . . . . . 54
4.1.4 Systèmes flexibles à l’exécution . . . . . . . . . . . . . . . . . . . 55
4.2 Architectures des couches logicielles . . . . . . . . . . . . . . . 58
4.2.1 Couche logicielle intermédiaire : Exemple de l’architecture SCA . 59
4.2.2 SCA et architecture MODEM . . . . . . . . . . . . . . . . . . . . 61
4.2.3 La couche logicielle intermédiaire P-HAL . . . . . . . . . . . . . 62
4.3 La gestion de configuration . . . . . . . . . . . . . . . . . . . . 64
4.3.1 Nature des configurations à gérer . . . . . . . . . . . . . . . . . . 65
4.3.2 Les architectures de gestion de configuration . . . . . . . . . . . 67
Multi-bandes
Un système multi-bandes supporte une ou plusieurs bandes radio utilisées par un standard
(i.e. GSM 900, GSM 1900, ou WLAN OFDM 2.4 GHz et 5 GHz, 802.11g et 802.11a). La
notion de multi-bandes est seulement importante pour la partie Front-End RF du système.
La reconfiguration de cette partie du système, qui reste encore souvent analogique, est
limitée. Cette problématique n’est pas l’objet de cette thèse.
19
20 Étude des standards : vers une application multistandard
multi-standards
Le terme standard recouvre un large ensemble de technologies mises en œuvre pour définir
un système, depuis la couche applicative définissant les types de services visés, jusqu’aux
techniques d’accès employées, en passant par le type de réseau déployé. Dans ces condi-
tions, il est difficile de donner une seule définition de ce que sera un système multi-
standards et selon Brakensiek et al. [25], un système multi-standards peut être défini
suivant plusieurs critères. Dès lors que l’interface air change, un système de radiocommuni-
cations est dit multi-standards. Dans ce cas, un système accédant à l’UMTS UTRA/TDD
et à l’UTRA/FDD est multi-standards alors qu’au niveau du cœur de réseau, le même
système est utilisé. D’un autre côté le 3GPP désigne l’UMTS comme un système basé sur
la technologie UTRA à deux techniques de duplexage, le FDD et le TDD. Enfin, le 3GPP
définit dans [26] un terminal compatible à la fois UMTS (UTRA/FDD ou UTRA/TDD)
et GSM comme bi-mode, lorsque les deux systèmes partagent le même cœur de réseau.
En outre, le 3GPP propose une classification des terminaux bi-mode décrite ci-après.
Il est donc difficile de poser une seule définition du terme multi-standards. De plus, C.
Roland propose dans sa thèse [27] de distinguer les termes norme et standard. Le terme
norme est utilisé pour nommer un type de transmission sans préciser dans quelles bandes
il s’applique, par exemple le GSM. Le terme standard est préféré lorsque les bandes de
fréquences particulières sont prises en compte ex : DCS1800, GSM900 PCS1900.
L’évolution des systèmes passera progressivement du traitement mono canal, à des systèmes
traitant simultanément plusieurs canaux (multi-canaux). Les systèmes évolueront, d’une
bande (mono standard) vers des multi-canaux et multi-bandes au fur et à mesure de
l’introduction des techniques “radio logicielle”.
Multi-modes
Un système multi-modes est défini comme la combinaison de systèmes multi-bandes et
multi-standards par Brakensiek et al [25]. Cependant, remarquons que certains standards
sont définis par plusieurs modes de transmissions, i.e. l’UMTS mode TDD mode FDD,
ou le 802.11g qui est une combinaison de modes de transmissions variés DSSS, FHSS,
OFDM. Ces terme font référence aux traitements en bande de base de la couche physique.
Un terminal multi-modes est un terminal supportant plusieurs modes de transmissions.
Un terminal multi-standards est multi-modes mais l’inverse n’est pas vrai.
Multiplex de porteuses
Un système est dit à porteuses multiples lorsqu’il supporte une transmission simultanée sur
plusieurs porteuses. Cependant, dans le cadre de systèmes radio logicielle, il est nécessaire
de distinguer deux types de signaux à porteuses multiples. Le terme de multiplex de
porteuses est donc proposé par S. Zabré et al. [28] pour faire la distinction entre un signal
à plusieurs porteuses dont l’espace entre porteuses est constant et un signal à plusieurs
porteuses dont l’écart entre porteuses est variable. Le terme utilisé pour désigner un signal
multiplex de porteuses à écart constant est multi-porteuses. Ce signal multi-porteuses (cf.
équation 2.1) n’a de sens que pour un standard, c’est le cas par exemple des signaux
OFDM.
2.1 Motivations sur les choix des standards 21
Ps
Ss (t) = rs,p (t)e2iπ(fs,0 +(p−1)ps )t (2.1)
p=1
Un signal RL, donné par l’équation 2.2, multiplex de porteuses, est un signal multi-
bandes :
s Pi
x(t) = (f emi (t) ∗ mi,p (c(t)))e2iπfi,p t (2.2)
i=1 p=1
où
– mi,p (t) est la modulation relative à la porteuse p avec
– f emi (t) le filtre de mise en forme
– s le nombre de standards
– Pi le nombre de porteuses (donc de canaux dans le cas mono porteuse) dans le
standard i
Le signal multiplex RL peut aussi se mettre sous la forme :
s
Ps
x(t) = rs,p (t)e2iπfs,p t (2.3)
s=1 p=1
Multi-usages
Nous pouvons aussi affiner les types de fonctionnement d’un terminal multi-X en s’ap-
puyant sur une classification des usages de terminaux multi-modes proposée par le 3GPP
dans le TR 21.910 [26] ; ce classement peut être étendu à des terminaux reconfigurables.
Le 3GPP considère le cas où l’utilisateur a une souscription unique aux modes supportés.
Il donne l’exemple de terminaux bi-mode GSM et UMTS en établissant 4 types de termi-
naux et en supposant que le terminal est constitué de deux émetteurs/récepteurs :
Type 1 : Un seul mode est actif, la partie radio du mode inactif ne fait aucune mesure sur
le réseau non utilisé. La sélection de mode est manuelle et réalisée par l’intervention
de l’usager. Le terminal se comporte comme un terminal mono-mode. Ce type de
terminal est parfois appelé dual-mode.
Type 2 : Lorsque le terminal mobile est connecté à un mode cela permet de faire des
mesures sur l’autre mode et de basculer automatiquement d’un réseau radio à un
autre suivant la qualité de réception, en supposant que le cœur de réseaux soit le
même.
Type 3 : Le terminal de type 3 peut recevoir simultanément plusieurs modes. Par contre
l’émission s’effectue dans un seul mode.
Type 4 : Le terminal permet à la fois de recevoir et de transmettre simultanément sur
plusieurs modes et de passer d’un réseau à l’autre automatiquement.
jeu dans les différents standards. Le choix des standards a donc été orienté par le souhait
d’avoir une diversité de formes d’ondes. Les différentes techniques d’accès, de multiplexage,
de modulation sont illustrées par le tableau 2.1. L’UMTS apporte une forme d’onde mono
porteuse à étalement de spectre, le GSM une mono porteuse et le 802.11g fournit un mode
multi-porteuses OFDM. Nous mentionnons en annexe, dans les tableaux B.6 et B.7 les
autres modes existants en 802.11g. Nous nous intéressons au mode OFDM du 802.11g qui
fournit les débits les plus importants.
Le choix des standards GSM, UMTS/FDD, et WLAN 802.11g est motivé en premier
lieu pour la diversité des traitements qu’ils apportent. Bien que les couches hautes ap-
plications ne soient pas l’objet de l’étude, notre choix se justifie aussi par rapport à la
complémentarité des services apportés. En effet, les trois standards offrent une diversité
de services de type voix et données de faible ou grande mobilité. Le choix de ces trois
standards nous semble donc cohérent du point de vue des services auxquels ils permettent
d’accéder, service voix pour le GSM et l’UMTS, données bas débit et services multimédia
avec une grande mobilité pour l’UMTS et un service données haut-débit faible mobilité
concernant le 802.11g.
Nous nous plaçons dans nos études, dans le cas d’un terminal de type 1 à l’émission
(voie montante) où un seul mode de transmission est actif, sans perte de généralité par
rapport à notre sujet d’intérêt sur la reconfiguration et sa gestion. Le terminal de type 1
reconfigurable est donc “multi-services” avec un seul mode actif simultanément.
En effet, en considérant une réalisation de ce type sur une architecture reconfigurable,
seule une chaı̂ne de transmission est implantée, à la différence des architectures de ter-
minaux dual-mode de type 1 actuelles où les chaı̂nes de transmission sont implantées
parallèlement et une seule est active. Dans la perspective de l’évolution de la classe du
terminal vers le type 4, il est nécessaire de mettre en place en parallèle un nombre de
chaı̂nes égal au nombre de modes simultanés possibles.
Le tableau 2.1 illustre aussi les principales caractéristiques des interfaces radio des trois
2.2 Le système cellulaire GSM 23
standards. En GSM et UMTS/FDD les voies montantes (VM) et descendantes (VD) sont
séparées en fréquence. En 802.11g une seule bande (la bande libre ISM(1) ) est utilisée et
la technique de multiplexage est le CSMA/CD. Nous ne traitons pas de la partie RF mais
un étage RF multi-bandes dans le cas de ces trois standards devrait couvrir une largeur
de bande d’environ 1,6 GHz.
Dans la suite de ce chapitre, les standards choisis sont présentés individuellement à
travers leurs principales caractéristiques. Nous décrivons pour chaque standard de façon
succincte sa couche physique, les détails sur chaque standard étant donnés dans l’an-
nexe B. Puis nous nous appuierons, dans le prochain chapitre sur les caractéristiques de
chaque standard pour proposer une étude des traitements bande de base d’une chaı̂ne de
transmission multi-standards.
(1)
industrial, scientific and medical (ISM) radio bands
(2)
European Telecommunications Standards Institute
(3) rd
3 Generation Partnership Project
24 Étude des standards : vers une application multistandard
La chaı̂ne de transmission est similaire sur tous ces canaux, seuls les paramètres des
fonctions changent, définis dans le document 3GPP TS 05-03 [30].
Parmi les fonctions en bande de base, certaines sont toujours exécutées sur tous les
canaux de communications (codage en blocs, codage convolutif), et suivent divers schémas
de traitements en fonction du type d’information traitée. Des fonctions sont optionnelles,
dont l’unité de chiffrement. Enfin des fonctions ne dépendent pas du type d’information
traitée, telle que la modulation.
Codage en blocs
Les bits d’information issus de la couche supérieure sont codés avec un code en bloc
(“Coding 1 (Block)”). En sortie sont obtenus des mots d’information augmentés de bits
de parité par utilisation de codes cycliques ou codes Fire(4) . Suivant les canaux logiques,
les générateurs de CRC sont différents, les paramètres sont la taille du bloc d’information à
coder et les polynômes générateurs utilisés. Quelques exemples des polynômes générateurs
des principaux canaux sont donnés dans le tableau B.12 en annexe.
Codage canal
Le codage canal en GSM est de type convolutif (“Coding 2 (convolutional)”). Les pa-
ramètres du codage convolutif dépendent du type de canal de transmission. Ces paramètres
sont le taux d’encodage 1/2, 1/3, 1/6, la longueur de contrainte, la taille du bloc d’in-
formation et les polynômes générateurs définissant les codes. Les encodeurs utilisés sur
les principaux canaux de trafic voie sont donnés dans le tableau B.13. Les spécifications
complètes sont données dans le 3GPP TS 05.03 [30].
Entrelacement
Les fonctions d’entrelacements (“Interleaving”) sont associés aux encodeurs et de même
manière spécifiques à chaque canal logique. L’entrelacement comporte les opérations sui-
vantes : mélange des bits d’un bloc d’information et répartition des symboles brassés sur
(4)
Sur les informations transmises sur les canaux de contrôle et de signalisation, un code Fire est utilisé,
outre la détection d’erreur ce code permet une correction
2.2 Le système cellulaire GSM 25
plusieurs bursts.
Il existe trois types d’entrelaceurs appelés “block diagonal”, “block rectangular” et ‘‘dia-
gonal interleaver” [30]. Les paramètres des entrelaceurs sont le nombre de blocs ou bits
en entrée et en sortie de l’entrelaceur. Par exemple l’entrelacement sur le canal de parole
plein débit TCH/FR est un entrelacement “block diagonal”. Le bloc d’information de taille
k = 456 bits est écrit dans une matrice 57L ∗ 8C en suivant une règle de permutation
interne des bits suivante.
La lecture des bits s’effectue par colonne pour constituer 8 sous blocs de 57 bits. Chaque
sous bloc est ainsi associé à un champ information d’un “Normal Burst” formant ainsi un
demi burst. Cet entrelacement est dit par bloc diagonal et est qualifié de convolutif. Un
Burst est formé avec deux sous blocs Ai de 57 bits appartenant à deux blocs de 456 bits
sur des trames différentes, de la manière suivante :
Soit n une trame :
B(0) = A4 (n − 1) ∪ A0 (n)
B(1) = A5 (n − 1) ∪ A1 (n)
B(2) = A6 (n − 1) ∪ A2 (n)
B(3) = A7 (n − 1) ∪ A3 (n) (2.5)
Les bits de B(i) sont aussi entrelacés : les bits de la trame n-1 occupent les positions
impaires et les bits de la trame n les positions paires.
Chiffrement
Les données entrelacées subissent un chiffrement qui est une fonction optionnelle (“Cryp-
tological unit”). Le chiffrement s’effectue par addition bit à bit des informations avec une
clé de cryptage conformément à l’algorithme A5 utilisé [30].
Codage différentiel
Avant d’entrer dans le modulateur, le flux binaire passe par un codeur différentiel (“Dif-
ferential encoding”). L’opération effectuée par ce modulateur utilise l’addition modulo 2
entre deux bits consécutifs di et di−1 . Les données en sortie du modulateur sont les αi :
dˆi = di ⊕ di−1
αi = 1 − 2dˆi [31] (2.6)
Modulation
La modulation utilisée en GSM est une “Gaussian Minimum Shift Keying” (GMSK) [32]
avec un BT de 0.3, le débit binaire est de 270,83 kbit/s. Le filtrage gaussien de réponse
impulsionnelle h(t) est appliqué aux données ai avant la modulation de type (“Frequency
Shift Keying”) FSK.
−t2 √
e 2δ2 T 2 ln 2
h(t) = √ avec δ = (2.7)
2πδT 2πBT
26 Étude des standards : vers une application multistandard
GPRS/EDGE
Le standard GSM a évolué vers les systèmes GPRS (General Packet Radio Service) et
EDGE (Enhanced Data rates for GSM Evolution) avec la possibilité d’utiliser plusieurs
time slots par communication pour augmenter le débit. EDGE utilise une modulation “8
Phase Shift Keying” (8-PSK) à 3 bits par symbole. Le tableau B.4 donne l’encodage bit à
symbole réalisé en 8-PSK. La communication réalisée sur 4 time slots permet d’atteindre
un débit 236.8 kbit/s et sur 8 time slots théoriquement un débit de 473.6 kbit/s.
Les informations transitant depuis les couches hautes vers la couche physique sont
réparties sur canaux de transport pour offrir les différents services de transport de la
liaison radio. Les traitements effectués [34] sur les informations des canaux de transport
sont un codage de correction d’erreur, le multiplexage des canaux, l’adaptation du débit,
l’entrelacement. Les canaux de transport sont ensuite combinés dans les canaux physiques
[35]. Les opérations sur les canaux physiques, décrit dans par 3GPP TS 25-213 [36], sont
2.3 Le système cellulaire UMTS/FDD 27
Étalement de spectre
L’étalement de spectre consiste en deux opérations de codage comme l’illustre la figure 2.4.
Le premier codage est l’étalement avec un code de canalisation, la seconde opération est
l’application d’un code d’embrouillage sur la séquence étalée. En UMTS après l’étalement
de code le débit dit “chip” est de 3.84M chip/s. L’étalement est effectué sur des trames
radio de 10 ms contenant donc 38400 chips.
Fig. 2.4 – Étalement sur les voies montantes DPCCH et DPDCH [36]
Sur la liaison montante, la figure 2.4 illustre l’opération d’étalement qui transforme les
symboles en chips avec un code alloué (code de canalisation) pour les canaux DPDCH
(données) et DPCCH (contrôle). Ces chips sont ensuite combinés ensemble. Une partie
des canaux est combinée sur une voie I et l’autre ensemble de canaux est combiné sur
la voie Q. Les deux voies I et Q sont ensuite multipliées entre elles. Les chips de valeurs
complexes ainsi obtenus sont embrouillés par un code d’embrouillage complexe.
Modulation Après l’étalement de spectre chaque chip complexe subit une mise en
constellation QPSK puis un filtrage de type RRC, décrit dans [37], avant la mise sur
porteuse.
Filtre de mise en forme Le filtrage numérique est de type cosinus surélevé (RRC
Root Raised Cosine) avec un facteur α = 0.22 (roll-off).
La réponse impulsionnelle du filtre est RC0 (t) :
sin π Ttc (1 − α) +4α Ttc cos Ttc (1 + α)
RC0 (t) = 2 (2.8)
π Tc 1 − 4α Tc
t t
Tc = 1/débitchip ≈ 0.26042µs
Le 802.11 a été initialement définit en 1997 par l’IEEE dans [38]. Cette norme WLAN/1G
spécifie la couche MAC commune à l’ensemble des couches physiques d’accès à l’interface
air définies depuis. Cette première version définit trois couches physiques distinctes, dont
deux sont à étalement de spectre direct et une à infrarouge.
En 1999, l’extension IEEE 802.11b [39] dans la bande ISM 2.4 GHz, en 1999 également
l’extension IEEE 802.11a est définie [39] pour des bandes de fréquence dans les 5 GHz.
Puis en 2003, dans le 802.11g [40] de nouveaux modes de transition haut débit dans la
bande 2.4 GHz sont définis. Les spécifications de la couche physique OFDM 802.11a ont été
reprises et adaptées à la bande 2.4 GHz sous le nom de ERP-OFDM (Extended Rate PHY
OFDM) et offrent des débits de 6 à 54Mbit/s. Le 802.11g offre aussi une compatibilité
descendante avec les spécifications antérieures.
La dernière évolution des spécifications du IEEE 802.11 est en cours de standardisation,
le 802.11n. Cette version MIMO est prévue pour fonctionner dans les deux bandes 2.4
GHz et 5 GHz.
Les spécifications des modes transmissions des différentes interfaces radio sont reportées
en annexe dans deux tableaux B.6 et B.7.
Fig. 2.5 – Diagramme en blocs des traitements en bande de base du 802.11g mode OFDM
Embrouillage
La fonction d’embrouillage (“scrambling”) utilise un polynôme générateur, équation 2.9
identique pour l’embrouillage et le désembrouillage. Les données “data in” sont blanchies
par une addition modulo-2 avec une séquence “scrambled seq” créée par le générateur,
comme l’illustre la figure 2.6.
S(x) = x7 + x4 + 1 (2.9)
30 Étude des standards : vers une application multistandard
Codage canal
Les caractéristiques du codage canal de type convolutif et d’entrelacement pour l’adap-
tation des données sont décrites en détails en annexe B.3.1. Le codeur convolutif utilisé
dans le mode OFDM est unique.
Mise en constellation
La mise en constellation est effectuée après l’entrelacement. Plusieurs encodages sont
possibles BPSK, QPSK, 16-QAM ou 64-QAM et permettent d’atteindre différents débits.
Les encodages bits à symboles effectués par ces mises en constellations sont respectivement
détaillés en annexe dans les tableaux (B.8, B.9, B.10, B.11).
Modulation OFDM
La modulation OFDM est illustrée par la figure 2.7.
Après la mise en constellation, une conversion série à parallèle permet de répartir 48
symboles en entrée de la FFT. La modulation OFDM en 802.11g est réalisée par une
FFT sur 64 points comportant 52 sous porteuses dont 4 sont des sous porteuses pilotes.
Les 4 sous porteuses pilotes sont modulées en BPSK et les 48 sous-porteuses utiles sont
celles modulées en BPSK, QPSK, 16-QAM ou 64-QAM. La sortie de la FFT est ensuite
convertie de parallèle à série pour la mise sur fréquence porteuse.
Un symbole OFDM est donc constitué de 52-4=48 symboles numériques. Le symbole
OFDM à une durée de Ts = 4.0µs avec un intervalle de garde GI = 0.8µs.
Les principales caractéristiques de l’OFDM en 802.11 sont récapitulées dans le tableau
2.2.
2.4 Le système de réseaux sans fil WLAN 802.11g 31
Paramètres Valeurs
Fréquence porteuse 2,4 GHz
Largeur de bande 20 MHz
Fréquence d’échantillonnage Ts = 1/20 M hz = 50 ns
Nombre de points FFT 64
Nombre de 52=48+ 4 pilotes
sous-porteuses utiles
Période symbole OFDM 4µs (80 Ts )
Taille du préfixe cyclique 0.8µs (16 Ts )
Période symbole FFT 3.2µs 64 Ts )
Durée d’une trame 500 symb. OFDM
taille d’un LCH : 54 octets
“Packet Data Unit” SCH : 9 octets
Conclusion
La présentation des couches physiques des trois standards a montré la diversité des fonc-
tions utilisées d’un standard à l’autre. Pour illustrer cette diversité nous avons choisi des
standards de systèmes cellulaires de générations différentes 2G (GSM) et 3G (UMTS), et
de transmission sans fil (802.11g), donnant des services voix et données.
Nous pouvons dégager plusieurs remarques de cette présentation des standards. Les bandes
de fréquences allouées aux standards sont toutes différentes, sauf dans la bande ISM où
coexistent plusieurs standards. Les modules analogiques, antennes, amplificateurs sont
très différents, la définition d’un front-end RF commun à tous les standards est donc
difficilement envisageable à court terme. Cependant cette question relative à l’étage ra-
dio fréquence est hors de cette étude centrée sur les traitements numériques en bande de
base. Dans le prochain chapitre, nous présenterons les études visant à réduire le très grand
nombre de fonctions de traitement présentes dans ces multiples standards par des tech-
niques de paramétrisation. Nous proposerons ensuite, par une approche de factorisation,
une chaı̂ne de traitement commune à ces trois standards.
Chapitre 3
Sommaire
5.1 Double chemin de données : configuration/traitement . . . . 76
5.2 Modèle de la voie de gestion de configuration . . . . . . . . . 78
5.2.1 Le niveau hiérarchique 1 . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.2 Le niveau hiérarchique 2 . . . . . . . . . . . . . . . . . . . . . . . 82
5.2.3 Le niveau hiérarchique 3 . . . . . . . . . . . . . . . . . . . . . . . 83
5.3 Le modèle de la voie de traitement . . . . . . . . . . . . . . . . 84
5.3.1 Le fonctionnement d’un composant de traitement . . . . . . . . . 85
5.3.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Introduction
Précédemment, nous avons présenté séparément les 3 standards choisis et nous avons
constaté la diversité des traitements qu’ils donnent. Une chaı̂ne de traitement multi-
standards doit pouvoir donner accès à toutes les fonctions des standards visés. Le change-
ment de fonction sera supporté au moment de l’implantation de celle-ci par différents
mécanismes : par changement de paramètres, par le chargement d’un nouveau code
d’exécution, par reconfiguration.
Quel que soit le type de mécanisme utilisé pour effectuer ce changement, il est important
de minimiser son coût par une analyse multi-standards au niveau algorithmique. En effet,
des traitements similaires sont appelés entre les différents standards, où nous retrouvons
systématiquement par exemple un codage canal, un entrelacement, une modulation.
Dans cette partie nous présentons au paragraphe 3.1 les différentes approches d’études
des similitudes. Ces études proposées dans la littérature sous le terme de paramétrisation
sont réalisées aux niveaux, fonction ou opérateurs. Nous discuterons sur l’impact des ces
approches sur la conception d’une chaı̂ne entière. Puis nous présenterons au paragraphe
3.2 une approche pragmatique que nous nommons de “factorisation” basée sur l’étude
tri-standard GSM/UMTS/802.11g-OFDM et nous proposons une chaı̂ne unifiée multi-
standards.
33
34 Analyse radio logicielle des applications multi-standards
Les travaux de A. Wiesler et al. [42], [41] proposent des structures paramétrables pour
les fonctions de modulation d’égalisation communes aux standards GSM, DECT, UMTS
UTRA/FDD et IS-136. Cet exemple de fonction commune est illustré figure 3.1. Les tra-
vaux menés par la même équipe de recherche ont conduit A.-R. Rhiemeier à proposer
une approche fonction commune de codage canal [43]. Dans ce type d’approche, toutes
les informations sur les standards visés doivent être connues au moment de la conception
de la structure commune. L’avantage est qu’il est suffisant de stocker un nombre limité
de paramètres pour décrire plusieurs modes de fonctionnement et que le temps de chan-
gement de modes est négligeable.
(1)
Le fait, pour certains matériels, d’avoir des caractères communs, du point de vue de la conception, de
la fabrication et de la maintenance, l’ensemble de ces caractères, Journal officiel du 30 janvier 2005
3.1 Introduction aux études de paramétrisation 35
D’autres exemples de structures s’apparentant à des fonctions sont décrits dans la littérature,
telle que l’architecture nommée VITURBO [44] proposant une structure unifiée de décodage
de Viterbi et de turbo décodage pour les systèmes 3G. Cependant A.-R. Rhiemeier [43]
décrit aussi les limites d’une telle approche. L’inconvénient est que la structure ne peut
être changée et ne peut pas supporter de nouveaux standards. De plus au moment de
l’exécution, il y a toujours certains blocs de traitement, non requis par les paramètres
sélectionnés, qui restent inactifs. Alors que des modes de coupures d’alimentation sont
aisément réalisables sur des fonctions entières, il est plus difficile d’imaginer de couper
l’alimentation sur des sous-blocs d’une même structure. La structure consomme donc
dans sa totalité, il en résulte une perte d’efficacité énergétique. Le coût en surface de
telles structures peut aussi être significatif.
De manière classique une fonction multi-standards peut être réalisée par multiplexage
de plusieurs fonctions dédiées sans recherche de parties communes. En utilisant des tech-
nologies de type ASIC, toutes les fonctions dédiées sont alors implantées en parallèle.
36 Analyse radio logicielle des applications multi-standards
Fig. 3.2 – Chaı̂ne de traitement multi-standards basée sur des fonctions dédiées
Channel
Coding
TDD
FDD Bit Scrambling
Radio Frame
Equalisation
Mux
Physical channel
1. Interleaver
Segmentation
FDD TDD
Mux
Fig. 3.3 – Voie montante Tx UMTS FDD/TDD (projet Mumor, extrait de [47])
Un exemple d’implantation d’une chaı̂ne complète basée sur des fonctions communes,
figure 3.3, a été réalisé dans le projet MuMor [14]. Ce projet a étudié les standards UMTS
FDD/TDD et HSDPA de la même “famille” 3G, HSDPA étant une évolution de l’UMTS,
il en résulte des similitudes naturelles entre les standards. Les fonctions propres à chaque
3.1 Introduction aux études de paramétrisation 37
Fig. 3.4 – Modélisation d’un système radio multi-standards sous forme de graphe [48]
A Supélec, des travaux proposés sur la recherche de communités sont basés sur des
graphes d’opérateurs [48]. Ces graphes à plusieurs niveaux de granularité permettent de
formaliser les études de paramétrisation. L’objectif de telles études est une optimisation
des graphes afin de déterminer les coûts des implantations des chaı̂nes multi-standards
basées sur des opérateurs plus ou moins gros grains. Nous pouvons alors situer aux 2
38 Analyse radio logicielle des applications multi-standards
extrémités de tels graphes, les deux approches extrêmes [48] pour réaliser une chaı̂ne
multi-standards.
L’approche “Velcro” permet de supporter plusieurs standards en se basant sur quelques
fonctions de grande granularité de chaque standard. Lorsque la granularité d’une fonction
d’un opérateur augmente alors son efficacité augmente par une implantation plus opti-
misée, mais la réutilisabilité à travers plusieurs standards diminue. A l’autre extrémité, la
façon de pouvoir supporter tous les standards est d’utiliser les opérateurs de granularité
fine (add, mult, mac, etc.). Les opérateurs de granularité plus fine sont plus réutilisables
car communs à de nombreux traitements. Mais la complexité d’une fonction basée sur
l’appel à des opérateurs de grains fins est très élevée.
L’étude des graphes aide à déterminer le compromis qui consiste à augmenter l’efficacité
de traitement (en temps d’exécution, occupation matérielle) tout en conservant au maxi-
mum la modularité et la réutilisabilité des opérations de traitement.
Nous proposons d’ajouter les parties spécifiques (à droite figure 3.5) à la partie des
fonctions multi-standards afin d’obtenir une chaı̂ne multi-standards unifiée. Cette chaı̂ne
est présentée figure 3.6.
Sans distinction de cible d’exécution à ce niveau, chaque fonction de cette chaı̂ne unifiée est
reconfigurable, figure 3.7, afin de répondre aux changements de configuration nécessaire
pour passer d’un standard à un autre. Dans le cas des fonctions non présentes dans les 3
standards un configuration “Identité” est nécessaire pour rendre la fonction transparente.
Le fait que les fonctions de la chaı̂ne soient reconfigurables permet de la rendre évolutive
contrairement aux solutions paramétrables.
à identifier entre les différentes configurations d’une même fonction. Le ou les éléments
de calcul ainsi identifiés communs à l’ensemble des configurations d’une fonction peuvent
alors être fixés et sont non reconfigurables. De même un mode de fonctionnement iden-
tifié comme régulièrement utilisé peut être fixé et mis en parallèle du reste de la fonction
reconfigurable. C’est le cas du mode transparent dans l’exemple de la figure 3.7.b.
Exemple
La figure 3.8 montre la chaı̂ne unifiée dans le mode 802.11g où la fonction de modulation
OFDM est détaillée en sous blocs. Par exemple l’implantation sur FPGA de cette fonction
peut suivre un scénario dans lequel tous les blocs sont fixes à l’exception du bloc FFT64
reconfigurable.
La reconfigurabilité d’un bloc peut être utilisée pour changer ses paramètres de traite-
ment et aussi pour changer les conditions de fonctionnement du bloc. En 802.11g, l’OFDM
décrit au chapitre 2.4 est toujours basée sur une FFT64, alors la reconfigurabilité du bloc
FFT64 peut servir à changer d’architecture de FFT afin de donner d’autres comporte-
ments en terme de cadence de traitement et en consommation. Dans ce sens, une étude
42 Analyse radio logicielle des applications multi-standards
connexe aux travaux de cette thèse a été réalisée en collaboration avec David Elléouet
de l’Université de Rennes I à l’IETR INSA. Cette étude, décrite en annexe A.2, porte
sur l’estimation de consommation sur FPGA d’une FFT64 suivant différentes architec-
tures afin d’offrir par la suite différents compromis performance / consommation par la
reconfiguration dynamique. Dans cette étude nous avons aussi mesuré et pris en compte
la consommation de la reconfiguration d’une cible FPGA.
• La classe de fonction nommée “Coding Class” regroupe les fonctions de codage canal,
comme le codage cyclique, convolutif ou turbo. Cette classe est caractérisée par la
diversité des schémas de codage à gérer. Les fonctions traitant des informations
de type bit sont souvent basées sur des structures de calcul utilisant des registres
linéaires à décalage et des opérateurs modulo2.
• Les fonctions entrant dans la classe “Data structuring Class” sont des fonctions
de mise en forme de données. Les fonctions réalisées sont des traitements orientés
contrôle, réalisant des concaténations, segmentations ou le multiplexage de paquets
de données de tailles variables. Ces fonctions manipulant des données nécessitent en
premier lieu des ressources de mémoire.
• Les fonctions liées à la modulation sont regroupées dans une classe appelée “Modu-
lation Class”. Les fonctions de cette classe correspondent aux traitements réalisés
avant la transposition en fréquence du signal. Ces fonctions de ce groupe telles que
le filtrage de mise en forme sont les fonctions nécessitant le plus de ressources de
calculs.
Le partitionnement matériel / logiciel n’est pas l’objet de cette étude bien que cela
soit une part importante dans la conception des systèmes hétérogènes. Néanmoins nous
proposons cette classification qui permet de dessiner l’orientation des besoins en termes
architecture de traitements selon chaque groupe fonctionnel comme le présente la figure
3.9. Le principal besoin des fonctions de la classe “Coding” est la flexibilité de l’architecture
d’exécution pour répondre à la diversité des schémas de codage. Le besoin des fonctions
de la classe “Data structuring” est la capacité mémoire pour la manipulation de données.
Le besoin des fonctions de la classe “Modulation” est la capacité de calcul de l’architecture
d’exécution.
Fig. 3.9 – Orientation des architectures par rapport aux besoins fonctionnels
Les complexités globales des différents standards ont été estimées dans plusieurs études.
Notamment l’étude [50] rapporte une complexité du 802.11g de 4 500 MIPS(2) , pour
l’UMTS une complexité de 3 500 MIPS, celle du GPRS de 400 MIPS. Une autre étude
[51] estime la complexité du GSM à 10 MIPS, celle du GPRS à 100 MIPS, EDGE à 1 000
MIPS, l’UMTS à 10 000 MIPS et le WLAN-OFDM à 5 000 MIPS. Au delà des différences
d’estimations entre les études, nous pouvons constater que les variations de complexité
entre standards sont élevées. L’un des facteurs de cette variation est la différence de débit
entre les différents standards. A cause d’un haut débit de 54 Mbps le 802.11g-OFDM est
celui qui requiert la plus grande capacité de calcul. Ensuite en UMTS le débit “chip” est
de 3.84 Mcps alors qu’en GSM le débit est de 270 kbps.
De plus, la cadence de fonctionnement varie sur l’ensemble de la chaı̂ne de traitement
et en fonction des modes de traitement. En effet, pour le 802.11 OFDM et l’UMTS les
débits sont variables. Les estimations précédemment citées sont donc réalisées pour le débit
maximal atteint par chaque fonction. En UMTS, les cadences des traitements effectués
avant la fonction d’étalement dépendent du facteur d’étalement. Le cas le plus contrai-
gnant vient lors de l’utilisation du code d’étalement le plus petit (V M : SFm in = 4).
Avec ce facteur d’étalement SF=4, la cadence des fonctions effectuées avant l’étalement
est donc de 0.96 M Sym/s.
Sur l’exemple de la fonction d’encodeur convolutif commune aux 3 standards nous pou-
vons comparer les différences de besoins entre standards. Les estimations du tableau 3.2.2
de complexité est réalisée en calculant le nombre d’opérations (opération arithmétique,
accès mémoire) effectuées par un traitement séquentiel de la fonction, de manière identique
aux calculs de complexité réalisés dans le cadre du projet IST EASY [52] sur le standard
HiperLAN. Les paramètres des encodeurs convolutifs sont donnés dans le tableau B.13.
Pour l’UMTS, le tableau 3.2.2 donne le cas “test case” du TS 25.101 chap. A2-4 [37], pour
le GSM le cas de l’encodeur utilisé sur le canal TCH/HS, le 802.11g présente un unique
encodeur.
802.11g UMTS GSM
Standard
(DCCH) (TCH/FS)
Taille du bloc de 288 bits 120 bits 267 bits
données d’entrée
Débit requis de la 54 Mbps 0.96 Mbps 12 kbps
fonction
8 XOR 15 XOR 5 XOR
Nombre d’opérations 18 SRA 30 SRA 12 SRA
1 In RA 1 In RA 1 In RA
2 Out RA 3 Out RA 2 Out RA
Complexité de calcul 1566 MOPS 47 MOPS 228 kOPS
La grande variation des cadences de traitements suivant les standards peut entraı̂ner
des solutions de partitionnement très différentes pour une même fonctionnalité et des
changements de partitionnement en cours d’exécution. Par la suite, nous avons suivi une
approche de scénarios pour proposer un partitionnement matériel / logiciel de la chaı̂ne
(2)
Million d’Instruction Par Seconde
3.2 Etude de la chaı̂ne de transmission tri-standards 45
de traitement. Cette approche basée sur des scénarios décrits au chapitre 7.2.3 permet
de dégager les besoins en terme d’architecture de la plate-forme et aussi les besoins de
gestion de configuration décrits.
Les changements de contexte de la couche physique que nous avons identifiés pour une
chaı̂ne radio logicielle sont les suivants :
– Changement de Standard : Un changement complet de standard implique une
refonte profonde de la chaı̂ne de transmission. Les chaı̂nes de transmissions entre les
standards étant très différentes, c’est le type de changement de contexte qui demande
les plus larges reconfigurations. Il est à noter qu’un changement de standard concerne
aussi les couches supérieures du modèle OSI.
– Changement de Mode : Certains standards spécifient plusieurs modes de fonc-
tionnement. Un basculement de mode est donc un changement de contexte intra-
standard alors qu’un changement de standard est un changement inter-standard.
Dans la plupart des cas, le changement de mode ne concerne donc pas les couches
hautes. Les paramètres du changement de mode pour la couche physique sont
46 Analyse radio logicielle des applications multi-standards
déterminés par la couche MAC. Par exemple, le standard 802.11g possède plusieurs
modes de fonctionnement DSSS, FHSS, OFDM.
– Changement de Service : Un changement de service sur la couche physique reste
un changement de contexte intra-standard contrairement à un service switch au ni-
veau applicatif pouvant entraı̂ner un standard switch. Ce changement peut corres-
pondre par exemple à une demande de changement de débit, la chaı̂ne de traitement
est généralement peu modifiée. Ce changement peut-être effectué par paramétrage
ou par reconfiguration d’une partie des fonctions. Par exemple en mode OFDM du
802.11g, lors d’une demande d’augmentation de débit de 6Mbit/s à 54Mbit/s, la
fonction de mapping change respectivement de BPSK à 64-QAM.
– Amélioration de performance, correction d’erreur : La possibilité de changer
un motif de traitement en vue de l’amélioration de ses performances ou dans le but
de corriger une erreur peut correspondre à divers types de situations. La possibilité
de réaliser ce type de petits changements nécessite la mise en place de règles de
développement des algorithmes par composants de traitements rendant leur reconfi-
guration possible de manière indépendante. Ceci nécessite en outre la mise en place
de mécanismes de contrôle afin de limiter la discontinuité de traitement occasionnée.
Les changements d’architectures de calcul évoqués dans l’exemple de la FFT sont
aussi inclus dans cette catégorie.
Conclusion
En radio logicielle, le bénéfice d’une analyse algorithmique des similitudes s’accroı̂t à me-
sure que le nombre de standards pris en compte augmente. Chaque fonction présente un
ensemble limité de techniques. Le tableau de synthèse B.14 montre par exemple que sur
un grand nombre de standards les techniques de la mise en constellation sont en nombre
limité. Le taux de réutilisation des techniques de traitement augmente donc potentielle-
ment à mesure que le nombre de standards considérés augmente.
Les implantations matérielles tirant partie des similitudes entre traitements, permettront
de minimiser les coûts de changements de configuration et seront optimisées en terme de
surface. Le nombre de configurations d’une application multi-standards à gérer ayant accès
à toutes les fonctions et exploitant les similitudes entre traitements sera réduit. Des études
concernant la réalisation d’opérateurs communs sur cible sont en cours. Par exemple dans
le cadre du réseau NEWCOM Loı̈g Godard, en thèse à Supélec, a effectué une étude en
partenariat avec l’Université d’Aix-la-Chapelle (RWTH) et l’UPC pour définir des ASIP
(Application Specific Instruction Processor) conçus autour d’opérateurs communs.
Notre étude a porté sur les chaı̂nes à l’émission qui sont très orientées flot de données.
Il en résulte donc une chaı̂ne unifiée de même nature. Il sera donc préférable de s’orienter
3.2 Etude de la chaı̂ne de transmission tri-standards 47
vers des architectures d’exécution flot de données. De l’autre côté, il est aussi nécessaire
de privilégier la flexibilité généralement donnée par des circuits plus orientés contrôle.
Ce sont donc des compromis performance / flexibilité / efficacité énergetique qu’il est
nécessaire d’établir lors de la conception d’un système radio logicielle.
Nous proposons donc de présenter dans la partie suivante les technologies suscep-
tibles de répondre aux besoins de flexibilité de ces applications multi-standards. Nous
avons choisi de nous intéresser à trois parties constitutives et fondamentales des futures
plates-formes RL. Ces parties sont les architectures matérielles, les architectures logi-
cielles et les architectures de gestion de configuration. Ces éléments du système apportent
chacun une flexibilité aux systèmes et doivent être obligatoirement associés de manière
complémentaire.
Nous présentons donc dans un premier temps, un état de l’art portant sur ces 3 parties
des systèmes radio logicielle et nous verrons à travers les travaux effectués quelle flexibilité
est apportée par les différentes parties de ces systèmes.
Le second chapitre présente notre contribution pour apporter de la flexibilité au système
RL à travers la modélisation d’une double chaı̂ne de traitement destinée a être exécutée
sur une plate-forme matérielle hétérogène. Cette chaı̂ne de traitement comprend une voie
constituée de blocs reconfigurables dédiés aux traitements en bande de base. Cette voie
reconfigurable est surmontée par une voie dédiée à sa gestion. L’architecture de gestion
de configuration hiérarchique que nous proposons s’appuie notamment sur l’étude des
besoins de reconfigurabilité des applications multi-standards, précédemment menée.
Deuxième partie
Sommaire
6.1 Intégration de l’application flot de données sur plate-forme
hétérogène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.1.1 Reconfiguration dynamique . . . . . . . . . . . . . . . . . . . . . 97
6.1.2 Reconfiguration partielle de FPGA . . . . . . . . . . . . . . . . . 100
6.2 Approches de conception d’IP reconfigurable sur FPGA . . . 104
6.3 Flots de conception d’IP reconfigurables sur FPGA . . . . . . 109
6.3.1 Flot : “Module-Based Partial reconfiguration” . . . . . . . . . . . 110
6.3.2 Flot : “MoDiff-Based Partiel Reconfiguration” . . . . . . . . . . 111
6.3.3 Flot : “Partial Reconfiguration” . . . . . . . . . . . . . . . . . . . 113
6.3.4 Connexion d’une région reconfigurable . . . . . . . . . . . . . . . 115
6.3.5 Création d’une macro . . . . . . . . . . . . . . . . . . . . . . . . 118
6.4 Etude de cas : la fonction de filtrage FIR . . . . . . . . . . . . 121
Introduction
Nous avons choisi de nous intéresser aux architectures des systèmes radio logicielle en
distinguant 3 grandes parties illustrées schématiquement figure 4.1. La partie basse cor-
respond à la couche matérielle composée des ressources matérielles hétérogènes de la plate-
forme RL. La plate-forme supporte une partie intermédiaire constituée de couches logi-
cielles de service. Une partie importante et spécifique aux systèmes RL est la gestion de
configuration permettant d’exploiter la reconfigurabilité potentielle de la plate-forme et
d’offrir la capacité aux applications d’évoluer en cours d’exécution.
Nous donnons dans ce chapitre un aperçu des technologies émergentes pour définir les 3
parties d’un système radio logicielle. Dans un premier temps, nous donnons un aperçu des
différents types de circuits existants et émergents du point de vue du type de flexibilité
qu’ils apportent à un système radio logicielle. Puis nous proposons de nous intéresser à
l’architecture des couches logicielles intermédiaires qui sont progressivement intégrées sur
les plates-formes matérielles. Ces couches logicielles sont amenées pour fournir des services
51
52 Architectures systèmes radio logicielle
visant à faciliter l’intégration d’applications toujours plus complexes sur des plates-formes
matérielles hétérogènes aussi de plus en plus complexes à programmer. Les couches lo-
gicielles intermédiaires ont d’autres objectifs, tels qu’apporter l’interopérabilité entre les
applications et les plates-formes matérielles.
européen WIND-FLEX.
Historiquement, les circuits disponibles sont les circuits spécialisés de type ASIC et
les processeurs (GPP et DSP). Les ASIC présentent de hautes performances de traite-
ment mais leur manque de flexibilité est un handicap dans la définition d’un système
RL. A l’opposé, la programmabilité des circuits de type processeurs en font les cibles
les plus flexibles. Mais cette flexibilité a un coût, notamment en consommation, et les
performances des processeurs peuvent être insuffisantes face aux demandes de traitement
du signal des applications complexes. Le manque d’efficacité énergétique par rapport aux
performances peut alors être un frein pour l’intégration de ces circuits dans des systèmes
embarqués.
Les technologies processeurs sont matures (outils, architectures), pour cette raison
l’industrie s’est tournée en premier lieu vers ce type de circuit pour proposer des solu-
tions dédiées à la RL. La société Sandbridge Technologies [54] propose une famille de
processeurs SB3000 de traitements en bande de base. Ces processeurs Sandblaster [55]
sont capables de supporter les combinaisons des standards GSM, W-CDMA, CDMA200,
TD-SCDMA, Bluetooth, WLAN, WiMax. La flexibilité est uniquement introduite par le
logiciel développé par l’utilisateur et modifiable à l’exécution. De même, Intrinsity [56] est
une autre société basée aux USA, proposant des processeurs de traitement destinés aux
systèmes SDR. Les processeurs de traitement du signal FastMATH [57] sont basés sur une
architecture avec un coeur de type “central processing unit” (CPU) et une matrice de co-
processeurs mathématiques. Cette architecture “dual-core” est par ailleurs très similaire
au processeur de la famille SB3000.
flot d’instructions propres et permet des calculs en parallèle. Chaque tuile est constituée
d’une ALU configurable, d’une mémoire programme, d’une mémoire locale, d’une unité
de contrôle et une unité de communications.
Dans ce type de technologies, les outils de conception des architectures de processeurs
et ensuite de compilateurs associés jouent un grand rôle afin de pouvoir exploiter les
spécificités du circuit défini. Adelante propose sa technologie Galaxic DSP. Cette tech-
nologie comprend une famille de cœurs de DSP ouverts, des co-processeurs spécifiques
pour applications et les outils de développement “C-based Atmosphere”. Cette techno-
logie associée aux plates-formes Nexperia de Philips offrent une solution système pour
l’implantation d’applications SDR. Les co-processeurs peuvent notamment être spécifiés
à la conception et fournissent une flexibilité matérielle supérieure à celle des accélérateurs
spécifiques prédéfinis.
Approche de paramétrisation
Les architectures définies suivant l’approche de paramétrisation proposée par Jondral et
al. [42] offrent une flexibilité matérielle à la frontière avec les architectures matérielles
reconfigurables. Nous avons décrit cette approche dans le paragraphe 3.1 en soulignant
que les applications visées doivent être connues au moment de la conception. Ensuite
l’architecture de l’application définie est paramétrable en cours d’exécution. Harada et al.
[60] proposent une implantation d’un récepteur multi-modes contrôlé par des paramètres.
Architectures reconfigurables
Les architectures reconfigurables pour les applications de traitement du signal offrent les
capacités de faire des changements structurels d’éléments de calculs câblés. Compton et
al. [61] font un examen des principes et des principales caractéristiques des architectures
reconfigurables.
Pour les applications de radio communications nous pouvons citer par exemple les
architectures, DReAM (Dynamically Reconfigurable Architecture for Mobile System) [69]
sur laquelle un exemple d’implantation [70] d’un recepteur rake pour l’UMTS a été réalisé.
MorphoSys [71] est une architecture de type processeur RISC et coprocesseur reconfigu-
rable de type matrice 8x8 de cellules de calcul reconfigurable. Les travaux [72] décrivent
MorphoSys II et l’implantation sur cette architecture d’un récepteur OFDM. Au niveau
national, SystolicRing [73] architecture reconfigurable dynamiquement pour les systèmes
sur puce a été développée par le laboratoire LIRMM de l’Université de Montpellier et
DART [74] architecture reconfigurable dynamiquement pour applications mobiles a été
4.1 Les ressources matérielles 57
Cependant, dans ce domaine très actif, de nombreuses architectures voient le jour sans
jamais aboutir à des circuits. De plus, le manque d’outils associés à ces nouvelles architec-
tures est un inconvénient majeur au développement des applications et limite la diffusion
de ces circuits. Ceci est particulièrement valable concernant les architectures à gros grain,
ne bénéficiant pas du développement fait sur les outils dédiés aux architectures à grain
fin tirés par l’industrie des FPGA.
d’abstraction souhaité dans le système RL. La figure 4.6 présente plusieurs niveaux d’abs-
traction.
Les couches intermédiaires (les termes middleware ou intergiciel sont aussi employés)
se trouvent dans diverses applications où sont mis en jeu des composants hétérogènes. Les
couches logicielles intermédiaires fournissent aussi un cadre d’application (“application fra-
mework”), offrent de nombreux avantages pour l’intégration d’application. Cela facilite le
développement et la collaboration des composants par la standardisation des interfaces de
communication. La couche logicielle fournit aussi une interface de programmation (API).
Cette interface met à disposition des mécanismes de programmation permettant d’assurer
indépendamment le développement des applications et l’évolution de la plate-forme.
Au dessus du RTOS est ajouté un Object Request Brocker (ORB) (i.e. CORBA,
DCOM, JAVATM RMI, etc.). CORBA est utilisé dans le cas du SCA. Un ORB fournit
des mécanismes de formatage standardisé des messages passant les communications inter
processus et permet ainsi de relier des composants entre eux à travers des plates-formes
diverses. Le “Core Framework” (CF) composé des spécifications des interfaces et d’un
“profile” est une description des informations de configuration matérielle et logicielle de
la plate-forme. La couche de contrôle permet de gérer les ressources et services fournis par
la plate-forme.
Pour résumer, les principaux services des couches logicielles sont la virtualisation des
ressources matérielles, la standardisation des interfaces de communications entre com-
posants, la gestion des configurations des composants. La définition d’interfaces de pro-
grammation est une partie essentielle à l’émergence de systèmes radio logicielle comme le
décrit [82]. Nous décrivons dans la suite, les couches fournissant des services spécifiques
aux systèmes radio logicielle, la couche middleware et la couche de contrôle de la plate-
forme incluant la gestion de configuration.
Circuit Object Request Broker) développée par Prism Tech(1) est une version de CORBA
pour un processeur embarqué sur un FPGA. En effet, il est possible de rendre les FPGA
compatibles CORBA, sans l’aide de processeurs extérieurs jouant le rôle de proxy, lorsque
ceux-ci offrent la possibilité de mettre en oeuvre des processeurs embarqués. Xilinx pro-
pose aussi une telle solution avec d’autres partenaires sur des plates-formes Virtex-4 où
le SCA “Operating Environment” est exécuté sur un PowerPC 405 embarqué. Dans cette
implantation, le SCA OE se compose d’un RTOS “POSIX-compliant” (de Green Hills IN-
TEGRITY), du middleware CORBA OrbExpress (de Objective Interface Systems) et d’un
SCA Core Framework provenant du CRC (Communications Research Centre d’Ottawa).
Il existe encore de nombreuses limitations, détaillées en annexe C.3, à l’utilisation de
Corba à l’intérieur des architectures modem, comme les délais de transmission, le surcoût,
logiciel et matériel qu’implique l’ajout d’un bus logiciel non dimensionné à l’origine pour
les applications embarquées.
(1)
http ://www.prismtech.com
4.2 Architectures des couches logicielles 63
commun aux applications radio et les rendre indépendantes de la couche matérielle. Dans
les travaux de l’UPC, la couche matérielle se compose de plates-formes reliées par des
interfaces physiques de type bus. Les plates-formes se composent aussi bien de systèmes
basés sur des GPP avec un (OS) que de plates-formes formées de plusieurs circuits DSP
ou FPGA. Chaque plate-forme est vue par une adresse représentant son point d’accès
pour les transferts de données. Avant l’initialisation du système, une seule plate-forme
désignée comme maı̂tre connaı̂t l’ensemble des adresses. Puis le maı̂tre distribue la table
d’adressage aux autres plates-formes pour construire l’environnement du P-HAL. Les ou-
tils de description des applications supportées par le P-HAL sont spécifiques aux circuits
contrairement au seul langage IDL utilisé pour décrire les applications sur CORBA. Mais
les services, et interfaces de programmation (API) sont similaires suivant les différentes
cibles architecturales supportées par le P-HAL. L’API est défini en C pour les circuits
GPP et DSP, et est disponible en VHDL pour les FPGA. Les applications sont décrites
dans une approche de développement orientée objet. L’interaction de plusieurs objets
situés sur différentes plates-formes est assurée par le P-HAL. Les principaux mécanismes
fournis par le P-HAL à travers l’API sont :
BRIDGE est en charge de l’échange des données entre les objets en temps réel sur un
système distribué.
SYNC assure la synchronisation des données et des traitements entre les plates-formes
en maintenant une référence de temps local identique sur chaque plate-forme. En
d’autres termes, l’objectif est d’observer une seule base de temps virtuelle partout
sur la plate-forme unifiée.
KERNEL est en charge de la coordination des tâches de traitements sur les plates-formes
(“scheduling”) et du contrôle des erreurs.
STATS fournit des services de contrôle de la plate-forme en donnant des informations
sur l’exécution des objets. L’acquisition des informations permet de réaliser des
statistiques sur l’exécution des objets. De même cette interface sert au monitoring.
Ces mécanismes sont présents sur chaque plate-forme matérielle comme l’illustre la fi-
gure 4.7. Du point de vue de la couche applicative, les trois premiers mécanismes offrent
une plate-forme d’exécution unique. Une application décrite sur cette unique plate-forme
virtuelle peut donc être exécutée indifféremment sur un système mono processeur ou de
façon distribuée sur un système hétérogène multi-plateformes.
– Le service de lecture et d’écriture de données d’un objet vers une interface virtuelle
est donné par l’interface “traffic switch”. Cette interface est en charge de router les
paquets de données vers les interfaces physiques de communication.
– L’acquisition de données d’initialisation se fait par cette interface sous le contrôle
de l’élément de contrôle de l’exécution au moment de l’initialisation.
– Le service de récupération et de changement de valeurs des paramètres d’un objet
observable par le système est réalisé par l’interface de contrôle de l’objet nommée
“Port control”.
– L’interface d’adaptation de RAM “P-HAL RAM adaptation” est disponible pour
les objets nécessitant un accès RAM. Elle est spécifique à l’implantation du P-HAL
sur FPGA. Cet adaptateur de RAM fournit à l’objet une procédure d’accès unique
à la RAM quel que soit le type de RAM utilisé (SDSRAM, SDRAM, SRAM).
– Les blocs “Time” et “Status” sont utilisés pour contrôler l’exécution de l’objet
suivant ces phases de vie et les données traitées par celui-ci.
Fig. 4.8 – Implantation d’un objet et adaptation des interfaces API P-HAL sur FPGA
D’autres travaux académiques sur les couches d’abstraction non basées sur Corba sont
décrits dans l’annexe C.4. Les objectifs sont en général de réduire les surcoûts par rapport
à Corba et d’adapter les architectures logicielles aux plates-formes matérielles destinées
aux applications RL.
Nous présentons donc dans les paragraphes suivant plusieurs travaux portant sur la
gestion de configuration. Dans un premier temps, nous nous intéressons à la nature des
configurations à gérer. La présentation des couches logicielles intermédiaires nous a montré
que plusieurs niveaux d’abstraction étaient possibles (cf. fig. 4.6). De même plusieurs
niveaux d’abstraction sur la nature des configurations peuvent être introduits comme
nous le présentons dans le paragraphe suivant.
Le code source Le choix de codes non compilés (code source) permet d’utiliser un même
code pour plusieurs cibles matérielles. Cela présente un avantage, par exemple dans
le cas d’une mise à jour d’un standard, un code unique peut-être envoyé à l’en-
semble des plates-formes matérielles sans se préoccuper des versions de circuit. Par
exemple, le même code source peut être envoyé pour les FPGA Virtex-II, Virtex-
4 etc. Chaque plate-forme se charge ensuite de synthétiser le code. Cela nécessite
d’embarquer sur chaque plate-forme, les différents compilateurs et outils de synthèse
en fonction des circuits utilisés. Nous avons illustré ce cas par la figure 4.11 où un
contrôleur de configuration est couplé aux compilateurs/synthétiseurs embarqués.
Cela pose en outre des problèmes de protection de code lors des téléchargements et
des stockages des sources sur les cibles finales.
Sur les circuits FPGA de plus en plus complexes, les outils de synthèse et place-
ment/routage demandent des fortes puissances de calculs, il est donc difficile ac-
tuellement d’envisager de porter ces outils sur des systèmes embarqués. Néanmoins,
4.3 La gestion de configuration 67
il existe des travaux notamment ceux de Vahid et al. [87] montrant que le pla-
cement/routage dynamique est possible sous certaines conditions par exemple en
réduisant l’espace des possibilités de placement/routage.
Code de haut niveau interprété L’utilisation d’un langage de haut niveau d’abstrac-
tion tel que Java permet la description de l’application à l’aide de cet unique lan-
gage.
Dans ce cas, il est nécessaire d’implanter sur la plate-forme matérielle une ma-
chine d’interprétation du langage (machine virtuelle), cela nécessite aussi l’ajout de
couches logicielles intermédiaires afin que la machine virtuelle soit supportée. Nous
avons schématisé ce cas par la figure 4.12. Les reconfigurations interviennent alors
au niveau fonctionnel par changement du code interprété, et non matériel.
Ensuite quelle que soit la nature du code choisi pour décrire les différentes configu-
rations des fonctions de traitements, il est nécessaire de garantir le comportement et le
fonctionnement des fonctions entres elles quelles que soit leurs configurations.
projet CAST définit de façon générale les interfaces d’un composant reconfigurable.
Fig. 4.13 – Représentation orientée objet d’une fonction reconfigurable (projet CAST)
Un point important dans la conception de ces composants est donc la nécessaire encap-
sulation des entités reconfigurables afin d’assurer l’indépendance des interfaces d’entrées
/ sorties par rapport aux changements de fonctionnalités des traitements.
Fig. 4.14 – Modélisation des applications et des ressources en Java (extrait de [89])
Model” est constitué de composants logiciels. Ces composants décrits comme des proxy
(cf. chapitre sur les architectures des couches logicielles) sont configurés afin de créer la
description des fonctions en bande de base. L’“Algorithm Model” comprend aussi la des-
cription de liens de communication entre ces composants. Chaque proxy est connecté à
une ressource matérielle via le modèle d’architecture (“Architecture Model”). Il est à no-
ter que la connectivité des composants de traitement, dans ce projet de même que dans
CAST et TRUST, est logicielle.
Les travaux des différents projets se retrouvent dans la littérature, par exemple ceux
de Moessner et al. [91] sur le détail de l’architecture de gestion de configuration (Configu-
ration Manager CM). Les travaux [92] définissent les procédures associés au contrôle de
reconfiguration (séquence d’initialisation, procédures de demande de reconfiguration).
E2 R est le projet européen le plus récent traitant de ces aspects, il s’appuie sur les
résultats des projets européens passés notamment CAST et TRUST. Dans E2 R les tra-
vaux sur la gestion de configuration sont étendus à l’ensemble des éléments des systèmes
RL pour une reconfiguration de bout en bout. La gestion de configuration globale de
E2 R est une plate-forme permettant la reconfiguration des éléments distribués dans les
parties cœur de réseau, points d’accès réseau et terminaux. Cette plate-forme de gestion
de configuration décide et prend en charge les actions de reconfiguration sur l’ensemble
du système. Dans les terminaux, le contrôle de configuration présenté dans [93] concerne
l’ensemble des couches OSI, applications, protocoles et modem.
Fig. 4.15 – Architecture logicielle des équipements terminaux radio proposée dans E2 R
Configuration Management Module (CMM) Cette entité est responsable des déci-
sions de configurations sur l’ensemble du terminal. D’une part le CMM commu-
nique avec les entités nommées “Configuration Control Module” (CCM) réparties
sur chaque sous partie du système pour distribuer les configurations. D’autre part,
le CMM est en relation avec le réseau par sa collaboration avec une entité nommée
“Reconfiguration Manager” (RCM).
Configuration Control Module (CCM) Il existe trois modules de contrôle de confi-
guration (CCM) pour la partie modem, la partie protocole, et la partie applica-
tion du terminal. Les CCM initient, contrôlent et exécutent les configurations dans
chaque sous-partie configurable du système. D’un côté le CCM est interfacé avec le
CMM pour échanger les informations de contrôle et les données de configuration,
de l’autre côté communique avec l’environnement d’exécution de chaque sous-partie
du système en fournissant ainsi des procédures de reconfiguration indépendantes de
la plate-forme. Les CCM interagissent avec les 2 niveaux de pilotes illustrés dans la
figure 4.15, les “logical device drivers” et les “physical device drivers”. Les premiers
fournissent une abstraction des spécificités des composants matériels s’appuyant sur
les services fournis par les seconds.
Les composants exécutés sur les ressources matérielles et dont la configuration
dépend du type de ressources sont nommés les “Configurable Execution Module”
(CEM). Les CEM sont les équivalents des BPC proposés dans TRUST.
Configurable Execution Module (CEM) Le CEM est un module matériel doté d’une
interface de configuration en lien avec les entités de contrôle de configuration. Un
CEM encapsule les blocs de traitement formant une fonction, ceci permet de les
intégrer dans le système reconfigurable. Sa représentation peut se rapporter au com-
posant reconfigurable illustré figure 4.13.
Nous avons vu à travers la présentation des principaux travaux autour de la gestion
de configuration que le contrôle des composants de traitement est réalisé en manipulant
des entités logicielles à travers des couches d’abstraction. La connectivité des composants
manipulés est donc assurée en logiciel par dessus ces couches d’abstraction. Nous avons
déjà noté précédemment le coût potentiellement élevé de ces couches logicielles auquel il
faut ajouter ceux liés à ce type d’architecture de gestion de configuration. Le SDR Forum
souligne d’ailleurs le fait que la complexité de la gestion de configuration des systèmes
SDR pourrait dépasser les capacités des terminaux avec alors la nécessité de déporter les
fonctions de gestion de configuration quelque part dans l’infrastructure des réseaux.
Afin de réduire les surcoûts en logiciel, d’autres travaux s’intéressent donc au contrôle
de configuration du point de vue matériel. Cette possibilité de gérer la reconfiguration des
composants de traitement sans y adjoindre individuellement des entités logicielles peut
permettre de réduire le coût du logiciel. De plus la conservation d’une connectivité directe
72 Architectures systèmes radio logicielle
A l’inverse, une architecture reposant sur un chemin de données unique, où les com-
posants de traitement sont reconfigurables, est proposée par Srikanteswara et al. [96].
Cette approche de chemin de données unique transportant les données de traitement et
de configuration implique l’encapsulation des données dans des trames de transport afin
d’en distinguer leur type. Ceci repose sur un modèle en couches illustré par la figure 4.16.
Chaque élément de traitement, appelé “Processing Element” (PE), doit être capable d’in-
terpréter les paquets de données (partie de contrôle de trame implantée en statique) pour
ensuite exploiter les données de traitement ou de configuration.
Conclusion
L’évolution des circuits reconfigurables vers des architectures de plus en plus orientées sur
un domaine applicatif est une nécéssité à laquelle les applications RL n’échapperont pas
malgré “l’idéal” du tout processeur généraliste. L’analyse des applications multi-standards
conduit à choisir des architectures hétérogènes qui offriront divers type de flexibilité pour
4.3 La gestion de configuration 73
C’est donc après la présentation de ces systèmes SDR, objet de ce chapitre, que nous
consacrerons le chapitre suivant à notre proposition d’architecture de gestion de configura-
tion répondant à la gestion des fonctions implantées sur plate-forme incluant des circuits
de logique reconfigurable. L’analyse de factorisation vue précédemment permet de réduire
le nombre de configurations. De même nous adoptons des méthodologies de conception
décrites au chapitre 6 utilisant la reconfiguration partielle, afin de limiter le nombre de
configurations et la mémoire de stockage des fichiers binaires volumineux (les bitstreams
de FPGA).
Chapitre 5
Sommaire
7.1 Gestion de configuration hiérarchique sur la plate-forme . . . 128
7.1.1 Portage de la structure de gestion de configuration sur la plate-
forme hétérogène . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.1.2 Implantation de la structure de gestion de configuration sur la
plate-forme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.2 Procédures et scénarios de reconfiguration sur la plate-forme 132
7.2.1 Initialisation de la plate-forme . . . . . . . . . . . . . . . . . . . 132
7.2.2 Reconfiguration de fonctions sur la plate-forme . . . . . . . . . . 133
7.2.3 Scénarios de reconfiguration des applications multistandard . . . 137
7.3 Implantation de la voie de traitement sur la plate-forme . . . 139
7.3.1 Architecture du chemin de traitement sur la plate-forme . . . . . 139
7.4 Exemples d’implantation de fonctions . . . . . . . . . . . . . . 142
7.4.1 Mise en constellation . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.4.2 Codeur convolutif . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.4.3 Filtre FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Introduction
Dans le précédent chapitre, nous avons dressé un état de l’art des systèmes RL en
s’intéressant plus particulièrement à trois parties essentielles de ces systèmes, les plates-
formes matérielles, les couches logicielles, et les architectures de gestion de configuration.
Nous avons notamment vu l’importance que la gestion de configuration prend dans le
fonctionnement des systèmes radio logicielle. Le choix des ressources matérielles, avec les
forts besoins de flexibilité qu’engendre la RL est un autre point clef de la définition de ces
systèmes. Nous proposons dans ce chapitre un modèle adressant ces deux parties essen-
tielles à la définition d’un système RL.
Le modèle fonctionnel abstrait a pour objectif de permettre le déploiement d’une applica-
tion configurable flot de données sur une plate-forme matérielle hétérogène. Nous propo-
sons un modèle dit fonctionnel dans le sens où il est indépendant de toute implantation
75
76 Un modèle d’architecture pour la radio logicielle
Afin d’éviter ces surcoûts, nous proposons de séparer les flux de données (configura-
tion et traitement) et ainsi assurer que chaque entité reconfigurable puisse être adressée
directement par une entité séparée de contrôle séparée de configuration. La partie haute
de la figure 5.1 illustre ce modèle basé sur la séparation de la voie de traitement et de la
voie de configuration.
5.1 Double chemin de données : configuration/traitement 77
bugs (“bug fixing”) ). Cette architecture fonctionnelle est donc établie indépendamment
des plates-formes matérielles, afin de s’adapter quelle que soit l’architecture matérielle
choisie.
Nous décrirons dans un premier temps les objectifs auxquels répond le modèle, par la
suite nous détaillerons le rôle de chaque niveau de gestion.
L3_CMU
Block Set
L3_CMU
Block Set
… L3_CMU
Block Set
HW/SW
Blocks
Library
Config. Management Level 3
configuration sont adressées par le L1 CM aux unités de gestion en charge des fonctions
à modifier. Les paramètres de configuration sont ensuite transmis aux unités de gestion
associées aux fonctions à reconfigurer.
Du point de vue du temps de configuration, il n’existe pas de contrainte temporelle de
reconfiguration lors d’un changement inter-standard. Une reconfiguration temps réel inter-
standard nécessite l’établissement de deux communications en même temps pendant une
certaine durée, alors l’option d’une duplication même partielle, est préférable. Par contre
pour les changements de configuration plus fins, par exemple intra-standard, il peut exis-
ter des contraintes temporelles comme par exemple le respect du temps trame.
Dans le cas d’une gestion de configuration par fonction par une structure distribuée,
le nombre de configurations à maintenir est le nombre CF C :
NF C = Cf i (5.2)
i
standards permettant d’assurer les échanges de données entre fonctions. Notre choix s’est
orienté sur un mécanisme de transmission asynchrone des données entre composants. Ce
mode d’échange des données permet de s’affranchir des problèmes de synchronisation dûs
aux différences de cadences de fonctionnement entre circuits. Dans ce composant sont
encapsulés, les blocs, formant la fonction de traitement. Ils sont représentés par le ni-
veau bloc dans la figure 5.5. Ces blocs ont un fonctionnement synchrone. Au final, la
chaı̂ne aura un fonctionnement de type GALS(1) [98] sur l’ensemble des ressources dispo-
nibles sur la plate-forme (GPP/DSP/FPGA). Le fonctionnement de type GALS donne
une indépendance des données vis-à-vis de la communication entre composants.
(1)
Globally Asynchronous Locally Synchronous est à l’origine un fonctionnement fait pour réduire la
consommation par interruption du signal d’horloge qui est un des principaux facteurs de consommation.
Ici le terme GALS est utilisé par commodité pour figurer le fonctionnement du transfert de données par
composant
86 Un modèle d’architecture pour la radio logicielle
composant vérifie la présence de données à son entrée, par l’intermédiaire du bloc “timing
data in”. Si la condition de consommation est vérifiée, alors le composant autorise le fonc-
tionnement du traitement synchrone. Les signaux de contrôle pour l’échange asynchrone
de données proviennent des blocs “timing data out” et “timing data in”. Ces signaux de
contrôle sont associés à des boı̂tes aux lettres permettant de vérifier la présence de données
en sortie et en entrée. Ces données sont stockées dans des FIFO. En fonction du nombre
de données produites ou consommées par une fonction par cycle, “timing data in” et “ti-
ming data out” sont adaptés afin de maintenir un fonctionnement standard des interfaces
de transmission de données “Adapt Tx Data” et “Adapt Rx data”. Par ces mécanismes,
le rythme de traitement de la chaı̂ne est automatiquement régulé.
5.3.2 Exemple
Un exemple illustrant l’intérêt de la distribution de la gestion rendant chaque fonction
du modem atteignable individuellement est le suivant. Lors d’une demande de change-
ment de mode en 802.11g pour augmenter le débit, la fonction de codage bit à symbole
est reconfigurée par exemple de QPSK à 16-QAM. Alors seul le L2 CMU associé à la
fonction à reconfigurer est invoqué. De plus dans ce cas simple nous supposons que seul
le bloc de traitement mise en constellation est à modifier. La figure 5.7 illustre donc la
mise en œuvre de la voie de gestion de configuration à travers le séquencement des ordres
de configuration entre les différentes unités de gestion de configuration. La situation de
changer plusieurs blocs de traitement revient à réaliser plusieurs échanges entre le L2 CM
et les L3 CMU. Les demandes de changement d’une seul partie des fonctions de la chaı̂ne
se présentent dans le cas de changements intra-standard ou de changements de modes. Il
est alors possible d’adresser individuellement les fonctions sans reconfigurer l’ensemble de
la chaı̂ne en adressant chaque L2 CMU concerné.
Fig. 5.7 – Séquencement des messages entre les unités de gestion : cas d’un bloc reconfiguré
Les échanges d’informations entre les niveaux L1 et L2, sont d’un faible volume, de
même entre les niveaux L2 et L3. Les données de reconfigurations envoyées par le niveau
L3 dépendent de l’implantation des blocs de traitements. La taille des données, très va-
riable, se situe donc entre des valeurs de quelques paramètres pour une fonction logicielle
paramétrable et un fichier binaire de configuration pour un FPGA.
88 Un modèle d’architecture pour la radio logicielle
Conclusion
L’un des éléments indispensables à la flexibilité à l’exécution des systèmes SDR est le
contrôle et la gestion de la configuration. La diversité des traitements en bande de base
nécessite l’introduction d’une architecture de gestion de configuration. Ce modèle pourra
s’appliquer aux fonctions des chaı̂nes d’émission et de réception, de même qu’il pourra
être étendu à la gestion de configuration d’autres standards car les besoins de gestion de
configuration sont similaires à l’émission et à la réception dans tous les standards, no-
tamment au niveau de la granularité de configuration. Les procédures de reconfiguration
5.3 Le modèle de la voie de traitement 89
lors d’un changement d’application (standard, mode, ...) sont définies dans nos études
suivant des scénarios. Une évolution de l’architecture de gestion de configuration en in-
cluant des règles d’optimisation de graphe d’exécution rendrait possible l’optimisation des
configurations en cours d’exécution suivant des remontées d’information provenant de di-
vers capteurs. Ce modèle de gestion de configuration RL évoluera ainsi vers un modèle de
gestion de configuration de radio intelligente. Ces études dépassent le cadre de ce travail
et sont poursuivies actuellement dans la thèse de L. Godard. Ces travaux ont fait l’objet
d’une publication [99] ou nous pensons que la structure de gestion hiérarchique se prête
particulièrement à cette évolution des systèmes RL vers la RI.
Alors que notre proposition “HDCM” adresse la reconfiguration par partie de la couche
physique des applications composées de composants hétérogènes, les architectures jusqu’à
maintenant proposées dans la littérature adressent une gestion de configuration de plus
haut niveau. Soit en ajoutant une couche d’abstraction logicielle afin de réaliser la gestion
de configuration de façon logicielle, soit en considérant le modem comme un module uni-
taire d’un système disposant de capacité de reconfiguration par module. Nous considérons
que l’approche “HDCM” est tout à fait adéquate pour gérer l’ensemble des couches d’un
terminal depuis la couche PHY jusqu’aux couches applicatives. Nous nous sommes ici
contentés de l’illustrer pour la partie modem qui est la partie la plus spécifique à la RL.
Introduction
Ce chapitre décrit la démarche que nous avons suivie pour l’intégration de la chaı̂ne
de traitement en bande de base sur une plate-forme hétérogène GPP/DSP/FPGA. La
définition de flots de conception d’applications pour plate-forme hétérogène n’a pas été
l’objectif de ce travail. Néanmoins nous avons mené des réflexions autour de la concep-
tion d’IP sur FPGA, notamment afin de nous permettre d’exploiter les caractéristiques
de reconfigurabilité qu’offrent ces composants. Nous n’avons de même pas utilisé d’outils
de co-conception pour déterminer le partitionnement logiciel/matériel. Les partitionne-
ments sont réalisés suivant des scénarios. Les langages de haut niveau tel que SystemC
ou SystemVerilog et les outils de co-conception associés ne permettent pas par exemple
d’exploiter les caractéristiques de reconfigurabilité avancées des FPGA telles que la re-
configuration partielle (RP). La RP est l’un de nos intérêts principaux et une mise en
œuvre de la PR dès 2003 [100] en utilisant les premiers flots. Néanmoins, nous avons mis
en oeuvre une démarche de conception qui nous a amenés à utiliser des outils et flots de
conception associés à chaque cible de la plate-forme. Nous avons vu dans le chapitre 4 que
la flexibilité d’un système SDR dépend de son architecture matérielle et logicielle. Notre
démarche répond à la problématique de la flexibilité de la couche physique des systèmes
SDR. Les différents types de flexibilité évoqués précédemment sont aussi indissociables des
méthodologies de conception utilisées. Nous verrons particulièrement ce point à travers la
conception d’IP reconfigurables sur FPGA.
Dans ce chapitre, nous décrirons les implications de la conception d’IP reconfigurables
sur FPGA et les améliorations de performances potentiellement apportées sur la reconfi-
guration dynamique. La réalisation d’IP reconfigurables sur FPGA implique l’adoption de
flots de conception particuliers que nous présenterons dans le paragraphe 6.3. Ceci nous
permettra entre autre de présenter l’étude d’une IP de filtrage de mise en forme de type
FIR, avant d’aborder dans le dernier chapitre sa réalisation sur la plate-forme.
93
94 Conception et intégration des applications SDR sur plate-forme reconfigurable
Nous nous sommes par contre intéressés à la conception de composants sur FPGA où
de nombreux problèmes restent posés.
Les composants logiciels exécutés sur les processeurs sont développées en utilisant les lan-
gages C/C++.
Les composants de traitement exécutés sur le FPGA sont développés en utilisant le langage
VHDL à l’exception des fonctions(1) exécutées sur le processeur embarqué (MicroBlaze)
du FPGA. Les composants implantés sur FPGA sont aussi appelés, fonction matérielle
ou IP matérielle.
(1)
Les fonctions de la chaı̂ne de traitement exécutées sur MicroBlaze sont de fonctionnement équivalents
aux fonctions logicielles développées en C sur processeur.
6.1 Intégration de l’application flot de données sur plate-forme hétérogène 95
• Dans le cas d’une fonction, * data out peut correspondre soit à une adresse de
variable interne, soit à une adresse d’un bus physique externe vers laquelle les
données produites sont écrites.
• Dans le cas d’une entité data out correspond à un bus de données.
[... ] Dans le cas d’une fonction logicielle, des arguments optionnels propres à la fonction
de traitement peuvent être passés en addition. Ceci assure aussi l’évolutivité de la
fonction d’encapsulation.
En cours de traitement, le changement de valeur des arguments d’une fonction peut mo-
difier le chemin de données, soit par le changement de mode de fonctionnement, soit par
changement de la source ou de la destination des données en traitement.
De la même manière qu’une fonction logicielle, une fonction matérielle est encapsulée
dans un composant matériel de type “GALS” représenté sur la figure 6.3. Nous avons
déjà décrit dans le chapitre précédent le rôle de ce composant “GALS” et de ses interfaces
timing.
Sur DSP, toutes les fonctions sont appelées successivement en testant si elles doivent trai-
ter des données, sinon les fonctions passent la main (“pooling”).
Sur un FPGA de type Virtex-II, la logique utilisée par cette partie est inférieure à 10
slices (hors utilisation de FIFO). Ceci représente un surcoût de surface faible lorsque le
traitement encapsulé utilise généralement des centaines ou des milliers de slices. Comme
le représente la figure 6.3, nous avons séparé les parties contrôle et traitement synchrone.
La partie “Control processing” est interfacée d’un côté avec le composant d’encapsulation
qui fournit les 4 signaux de contrôle du flot de données vers l’extérieur “data inReady”,
“data inBusy”, “data outReq”, “data outAck”. Dans le cas où des FIFO sont utilisées,
cette partie gère aussi les signaux de lecture et d’écriture dans les FIFO en fonction
des signaux issus du timing. La partie traitant les données est en fonctionnement sous
le contrôle principal du signal “ena” qui autorise le traitement. Pour le moment nous
n’avons pas couplé ce signal à celui d’un signal d’horloge de la fonction. Pour cette raison
nous parlons de fonctionnement de type GALS du point de vue du traitement des données.
Pour les IP dont la structure doit évoluer au cours du temps, la capacité de reconfigu-
ration des FPGA est utilisée et les IP sont alors appelées IP reconfigurables. Les autres
IP sont dites fixes. La reconfiguration est dynamique lorsque le système a la capacité de
reconfigurer une partie de ses ressources pendant l’exécution d’une application. Nous dis-
cutons plus en détails la notion de reconfiguration dynamique dans le paragraphe suivant.
Les tâches successives T2 et T3 se partagent les ressources. Il est donc nécessaire d’ef-
fectuer une sauvegarde des données après T2 et avant de reconfigurer pour passer à
T3 . Ceci est traduit, sur le chronogramme de la figure 6.5, par la prise en compte du
temps de reconfiguration dans le temps total d’exécution du traitement. Ce chro-
nogramme illustre les cas d’exécutions séquentielle et parallèle du traitement. Ce
type de reconfiguration avec dépendance de données est par exemple utilisé dans
une application de décodeur MIMO décrite dans [102](2) .
Il existe d’autres exemples, dans des architectures reconfigurables de traitement
d’image, les traitements sont complexes. Ils sont alors multiplexés sur un FPGA
pour être appliqués à une même image. C’est le cas par exemple de l’architecture
proposée dans le cadre du projet ARDOISE [103, 104].
Le cas no 1 peut se présenter lorsque le nombre de ressources nécessaires pour im-
planter un traitement est plus grand que le nombre de ressources offertes par le
circuit. Une partie des ressources est partagée dans le temps afin de réaliser le trai-
tement complet. Ceci peut aussi être une stratégie de conception pour utiliser des
circuits plus petits, donc moins coûteux et moins consommateurs d’énergie.
Reconfiguration dynamique sans dépendance de données : Dans le cas no 2 illustré
dans la figure 6.4, la zone reconfigurable “RC area” est partagée entre deux trai-
tements distincts. La reconfiguration est utilisée pour effectuer un changement de
contexte de l’application. Il n’y a pas de sauvegarde de données à assurer avant la
reconfiguration car les données à traiter entre les deux configurations sont distinctes.
Ce cas de reconfiguration intervient par exemple lors d’un changement de service
dans l’application. Un exemple est donné dans [12] pour le changement d’une fonc-
tion de mise en constellation dans une chaı̂ne de transmission. Le chronogramme de
la figure 6.6 est associé à ce cas d’utilisation de la reconfiguration. Ce chronogramme
(2)
Ce travail est réalisé dans le cadre de la thèse de H. Wang à Supélec, campus de Rennes
6.1 Intégration de l’application flot de données sur plate-forme hétérogène 99
Le temps de reconfiguration
Les architectures reconfigurables de type grain fin, avec comme principal exemple les
FPGA à plusieurs millions de portes logiques à mémoire de configuration (SRAM ou
RAM), sont a priori peu performantes en terme de temps de reconfiguration. En effet,
il faut plusieurs millions de cycles d’horloge pour effectuer une configuration totale d’un
FPGA. En premier lieu, le type de plan mémoire disponible affecte directement les per-
formances de reconfiguration. Dans [61] K. Compton et al. font état de plusieurs types de
plans mémoire.
Les mémoires de configuration à plans multiples permettent un pré-chargement des con-
textes. Le contexte actif correspond à un plan, les autres plans mémoire inactifs sont alors
disponibles pour être rechargés parallèlement à l’exécution. Le changement de configura-
tion est réalisé par basculement d’un plan mémoire à l’autre en un cycle d’horloge. Le
problème dans ce cas est la multiplication des ressources de stockage de configuration
impliquant une augmentation de la consommation statique.
Il existe ensuite les mémoires de configuration à un seul contexte. Ces mémoires sont
moins performantes vis-à-vis des mémoires multi-contextes. Mais ce type de plan est
moins consommateur en ressources mémoires.
Une autre alternative est l’utilisation de plan mémoire partiellement reconfigurable. Cette
100 Conception et intégration des applications SDR sur plate-forme reconfigurable
capacité est notamment disponible sur les FPGA Xilinx de la famille Virtex, à partir de
la série Virtex-E. Entre 2 configurations il est possible qu’une partie des ressources reste
identique, alors la reconfiguration partielle représente le moyen de réduire significative-
ment le temps de reconfiguration par le chargement de la seule partie variable entre les
configurations. La contrainte ici est de connaı̂tre les parties à configurer et celles restant
inchangées. La diminution de la taille des bitstreams passe par des approches de concep-
tion privilégiant la réutilisation de ressources que nous aborderons dans les paragraphes
6.3. Ces approches de conception sont rendues possible par la capacité de reconfiguration
partielle des FPGA. Enfin cette capacité de reconfiguration partielle est mise en œuvre à
travers des flots de conception également décrits dans les prochains paragraphes.
La réduction du temps de reconfiguration est une préoccupation majeure car un proces-
seur en charge du chargement des bitstreams reste inexploité pour d’autres traitements
durant les chargements. Les techniques aidant à la réduction du temps de configuration
ont fait l’objet de plusieurs études. Les techniques de compression de bitstream [105],
[106] ou les techniques de “configuration caching” [107] permettent de réduire le temps
de reconfiguration.
Il existe aussi la technique de “configuration prefetching” [108] [109] qui permet d’exécuter
la reconfiguration en même temps que du traitement.
Le temps de configuration dépend de la taille du bitstream bien sûr, mais aussi du débit
de l’interface de configuration. Sur un FPGA Virtex-II, que nous avons principalement
utilisé, l’interface de configuration fonctionne à une fréquence de 50 MHz avec des données
de 8 bits. Sur les nouvelles générations de FPGA telles que les Virtex-4, l’interface de
configuration peut fonctionner jusqu’à une fréquence de 100 MHz avec des mots de 32
bits. La vitesse de configuration peut ainsi être augmentée par 8.
Sur le Virtex-II 2000 dont nous disposons, nous avons généré des tailles de bitstreams
variables. La valeur maximale et la valeur minimale de taille de bitstream que nous avons
atteintes sont reportées dans le tableau 6.1 ci-dessous. Tous les temps de reconfiguration
intermédiaires sont possibles, en fonction du nombre de ressources à reconfigurer.
Le temps de configuration est aussi à mettre en rapport avec les besoins applicatifs et
la cadence de traitement à laquelle il doit être exécuté.
2D-soft Nous appelons 2D-soft, les plans mémoires 1D permettant de réaliser des régions
reconfigurables de hauteur non égale à des colonnes entières. Ceci permet de partager
des colonnes d’éléments logiques entre plusieurs régions reconfigurables et statiques.
Cette caractéristique est accessible par exemple sur les FPGA Virtex -II/ -II Pro
pourtant dit FPGA reconfigurables par colonne (1D). Nous avons donc appelé ce
type de plan mémoire 2D-soft, car cette caractéristique de reconfiguration de zones
rectangulaires des plans mémoire 1D, dépend du flot de conception et des outils
logiciels mis en œuvre. De plus, dans ce cas la taille du bitstream partiel dépend
bien de la caractéristique physique et donc 1D du plan mémoire. La taille du bits-
tream varie donc seulement en fonction du nombre de colonnes d’éléments logiques
utilisés, et non pas en fonction du nombres d’éléments logiques contenus dans la
zone rectangulaire comme c’est le cas avec les plans mémoire à accès matriciel (plan
2D).
2D-Bloc Nous pouvons distinguer le plan mémoire 2D-Bloc. Les colonnes de configu-
ration sont divisées en sous blocs, ce qui peut être vu comme une architecture à
mi-chemin entre les plans 1D et 2D. Ceci permet d’optimiser la taille du bitstream
et le temps de configuration par rapport au plan mémoire 1D dans les cas de régions
reconfigurables dessinées sur une partie non entière de colonne. Ce type de mémoire
de configuration se trouve dans les FPGA Xilinx de la famille Virtex -4 et Virtex
-5. Ceci semble aussi être un compromis intéressant entre le 1D et le 2D, en effet
peu d’applications nécessitent la création de zones reconfigurables de forme autre
que rectangulaire ou regroupant un nombre très limité d’éléments logiques.
2D Avec un plan mémoire 2D physique, l’accès aux éléments mémoire est matriciel. Les
bitstreams sont de taille proportionnelle au nombre d’éléments logiques à configurer.
Ce type de plan mémoire permet d’obtenir la plus grande flexibilité de reconfigura-
tion du plan logique et aussi la meilleure optimisation du temps de reconfiguration.
Ce type de plan mémoire est disponible par exemple sur les FPGA d’Atmel AT40K.
Fig. 6.7 – Evolution des tailles de bitstream partiel suivant la mémoire de configuration
6.1 Intégration de l’application flot de données sur plate-forme hétérogène 103
Dans les FPGA des séries Virtex-E, Virtex-II/II Pro, le plan mémoire est structuré
en colonnes comme l’illustre la figure 6.8. Les structures de la mémoire et des bitstreams
sont détaillées dans une note d’application Xilinx [111].
Une frame est l’élément unitaire de configuration. Une colonne de CLB est par exemple
configurable par 48 frames. Cependant, nous avons remarqué par nos expériences que les
éléments effectivement configurés au chargement d’un bitstream sont les éléments dont la
configuration est différente entre les 2 contextes. Les éléments restant inchangés entre 2
contextes ne sont pas reconfigurés. Il est donc bien possible de placer des zones reconfigu-
rables de forme rectangulaire sur les FPGA de type Virtex -II moyennant l’utilisation de
flots de conception particuliers. Nous reviendrons plus en détails sur ces flots de concep-
tion mis en place pour les FPGA Virtex, permettant d’exploiter la caractéristique de
reconfiguration 2D-soft.
La reconfiguration partielle est aujourd’hui exploitée dans diverses applications. Le
projet ADRIATIC par exemple s’est intéressé à développer une méthodologie de concep-
tion, décrite dans [112], et à exploiter notamment la reconfigurabilité partielle des FPGA.
Pour cela les fonctions n’ont pas été implantées d’un seul bloc, ceci limitant l’efficacité de
la reconfiguration, mais sont scindées en sous-blocs. Les sous blocs désignés communs sont
fixes, les autres sont reconfigurables. Cette méthodologie de conception a été appliquée
à un détecteur WCDMA implanté sur un Virtex-II Pro [113]. La zone dynamiquement
reconfigurable du FPGA est alternativement utilisée par 2 contextes. Un premier contexte
est formé du sous bloc d’estimation de canal du détecteur WCDMA. Le second contexte
est formé des sous blocs, filtre adaptatif, “combiner” et “correlater” du détecteur. Cette
approche a permis de réduire la surface nécessaires à l’implantation des fonctions par
utilisation de la reconfiguration (multiplexage temporel).
Nous présentons dans la prochaine section une discussion sur les approches de concep-
tion d’IP reconfigurables sur cible FPGA. Nous nous sommes particulièrement intéressés
aux implications de l’approche de factorisation de traitement et opérateurs communs
évoqués au chapitre 3.
Afin de réaliser des IP reconfigurables il est nécessaire d’adopter des flots de conception
104 Conception et intégration des applications SDR sur plate-forme reconfigurable
Une IP paramétrable est représentée schématiquement sur la figure 6.9.a. Il est à noter
que l’IP paramétrable peut aussi être l’implantation d’une fonction commune telle qu’elle
a été définie par H. Rhiemeier [114]. La flexibilité de l’IP est donnée par le changement
de valeur des paramètres. Cette flexibilité augmente si la partie opérative peut répondre
à une grande dynamique de données avec par exemple des registres et des opérateurs
arithmétiques sur 32 bits. L’utilisation d’opérateurs paramétrables du type ALU permet-
tant de réalisés plusieurs types d’opération d’addition et de soustraction augmente la
flexibilité de ce type d’architecture. La partie contrôle donne aussi la flexibilité à l’IP et
doit permettre à une grande variété des paramètres applicatifs d’être pris en compte. Le
contrôle doit permettre de gérer le paramétrage de la partie opérative.
A l’opposé, sur la figure 6.9.c est représentée une IP spécialisée exploitant la granularité
fine des ressources logiques du FPGA. Cette approche offre la possibilité de concevoir des
architectures dédiées à chaque fonction. Dans ce cas, la partie opérative est dimensionnée
pour traiter un type de données. Tous les opérateurs instanciés sont utilisés pendant le
traitement. La partie contrôle est limitée à un séquencement unique des données d’entrée
et des opérateurs. Dans ce cas la flexibilité de l’IP vient uniquement du fait que l’IP a
la propriété d’être globalement reconfigurable. En d’autres termes ceci correspond sim-
plement à instancier l’IP dans une région reconfigurable du FPGA. Un changement de
paramètres au niveau fonctionnel implique donc de reconfigurer totalement l’IP.
La figure 6.9.b schématise les IP dites génériques dont la conception se situe à mi-chemin
entre les solutions entièrement paramétrables n’exploitant pas la capacité de reconfigura-
tion du FPGA, et la solution des IP spécialisées nécessitant la reconfiguration complète
à chaque changement fonctionnel. La conception de ces IP génériques est caractérisée
par une partie opérative permettant de répondre à de nombreux besoins. Ainsi la par-
tie opérative est réutilisable à l’exécution dans plusieurs contextes fonctionnels. Certains
opérateurs peuvent aussi être reconfigurables pour adapter l’architecture de l’IP aux be-
soins applicatifs. La partie contrôle est conçue comme dans le cas d’une IP dédiée soit
pour chaque contexte fonctionnel, soit avec une capacité de gestion d’un nombre limité
de paramètres. Ceci afin de limiter les ressources physiques consommées par la partie
contrôle. Les changements fonctionnels sont alors réaliser par reconfiguration de la seule
partie contrôle de l’IP.
Nous voyons que la capacité de reconfiguration partielle peut être mise en œuvre à
différents niveaux de granularité dans les designs (3) implantés sur un FPGA. Les parties
reconfigurables des designs sont encadrées en rouge dans la figure 6.9. Nous verrons à
travers l’étude d’une IP de filtrage au paragraphe 6.4 et à travers d’autres exemples d’im-
plantation au chapitre 7, les proportions de complexité entre contrôle et traitement dans
les IP afin de mesurer l’impact d’une telle approche.
Nous sommes conscients que les trois familles d’architectures décrites ci-dessus ne repré-
sentent pas une étude exhaustive d’exploration architecturale sur les IP flexibles. Néanmoins
la présentation de ces trois familles d’IP flexibles va nous permettre de mettre en balance
simultanément trois approches de conception sous le critère de la flexibilité et de discuter
des compromis de conception autour des IP reconfigurables.
(3)
le mot design est utilisé afin de définir une architecture intégrée sur un composant.
106 Conception et intégration des applications SDR sur plate-forme reconfigurable
La complexité d’une IP détermine la surface occupée une fois placée et routée sur
le FPGA. Dans le cas d’une IP paramétrable, l’utilisation d’opérateurs sur 32 bits ainsi
que la conception de parties de contrôle complexes permettant de paramétrer l’exécution
sont très consommatrices en ressources logiques en conception sur FPGA. La surface et
donc la consommation des IP paramétrables sont plus élevées que les IP dimensionnées
exactement pour exécuter une fonction comme les IP spécialisées. En remarquant que le
contrôle est très consommateur en ressources dans les designs FPGA, la conception d’IP
génériques avec des parties opératives réutilisables, mais des parties contrôles dédiées per-
met de réduire la complexité globale de l’IP par rapport aux IP paramétrables.
La consommation devrait être le critère prédominant dans la conception d’IP pour des
systèmes embarqués (4) . Dans la conception d’IP reconfigurables, le critère de consomma-
tion globale d’une IP doit inclure non seulement la consommation énergétique lors de
l’exécution mais aussi la consommation de chaque reconfiguration. L’énergie dépensée
lors d’une reconfiguration est proportionnelle au temps de reconfiguration donc plus le
bitstream est grand plus le coût de reconfiguration est élevé.
(4)
Pour cette raison nous avons mené avec David Elléouet, (Thèse [115] du LESTER Lorient et
IETR/INSA Rennes) dont les travaux portent sur l’estimation de consommation au niveau système des
FPGA, une étude conjointe sur la consommation de la reconfiguration des FPGA.
108 Conception et intégration des applications SDR sur plate-forme reconfigurable
Nous avons étendu l’utilisation de la méthode par différence afin de générer des bits-
treams partiels de modules complets comme l’illustre la figure 6.14. En combinant le flot
Modular Design, afin de pouvoir placer des contraintes de surface, décrites dans [119], sur
les modules placés individuellement, et en utilisant la méthode de génération de bitstream
par différence, nous proposons un flot que nous appelons MoDiff-Based Partial Reconfigu-
112 Conception et intégration des applications SDR sur plate-forme reconfigurable
ration (5) . Il n’est pas nécessaire d’utiliser des Bus Macro avec ce flot. En revanche l’uti-
lisation de wrapper décrit au paragraphe A.1 pour assurer le routage des interconnexions
d’un module reconfigurable permet d’assurer qu’il n’y aura pas de différence de placement
routage dans la zone ne changeant pas de configuration. Cette méthode a l’avantage de
permettre la création de zones reconfigurables de n’importe quelle forme rectangulaire et
non pas seulement en colonnes entières de CLB. Ce flot est disponible sur n’importe quelle
famille de FPGA, sans attendre l’évolution des outils de conception ni la disponibilité des
Bus Macro.
(5)
Nous avons choisi le nom MoDiff-Based PR par contraction de nom de flot Modular-Based et
Difference-Based Partial Reconfiguration
(6)
A partir de ISE Fundation v5.2i, sur les Virtex-II/-II Pro/-4
6.3 Flots de conception d’IP reconfigurables sur FPGA 113
Fig. 6.15 – Création du bitstream partiel d’une Macro : Méthode “Macro PR Difference-
Based Design Flow”
Ainsi les éléments logiques à modifier sont identifiés à haut niveau. Nous décrivons de
cette façon les différents changements de configuration de ces macros au niveau système,
en VHDL, et non plus après l’étape de placement routage. Cela peut répondre à certains
cas d’utilisation de type b,c de la figure 6.12.
Cette approche de l’utilisation de la génération de bitstreams par différence est illustrée
figure 6.15. Dans ce cas les bitstreams générés ne contiennent aucune information de
routage, la macro les ayant fixées, les bitstreams représentent donc des contextes absolus
et non plus des changements relatifs entre deux contextes.
Les descriptions du niveau le plus élevé et des IP sont synthétisées avec un outil de
synthèse (par exemple XST Xilinx Synthesis Tool) avant d’être transcrites à l’aide de
6.3 Flots de conception d’IP reconfigurables sur FPGA 115
PlanAhead. PlanAhead garde les niveaux de hiérarchie des descriptions VHDL. A l’étape
de transcription, les parties reconfigurables des IP sont donc extraites afin d’être placées
dans des zones reconfigurables RPR en vue du placement routage suivant les contraintes
de surface définies.
Il est à noter que PlanAhead permet d’automatiser la suite du flot de conception jusqu’à
la création automatique de tous les bitstreams partiels et totaux.
Fig. 6.17 – Création du bitstream partiel d’un module : Méthode “PR Design Flow”
Fig. 6.18 – BUFT-Based et LUT Based Bus Macro sur FPGA Virtex-II
6.3 Flots de conception d’IP reconfigurables sur FPGA 117
Une nouvelle génération de Bus Macro représentée dans le figure 6.18 est proposée
par Xilinx. Ces Bus Macro sont basés sur des LUT et sont mono-directionnelles (“Left-
ToRight” et “RightToLeft”). Ils sont déclinés en plusieurs versions dont notamment une
version 4 bits et une version 8 bits. Nous avons utilisé ces Bus Macro fournis pour les cibles
Virtex-II/-II Pro/-4. Il est à noter que sur les FPGA Virtex-4 d’une part il n’existe plus
de BUFT, et d’autre part que Xilinx a créé des versions “Bottom2Top” et “Top2Bottom”
de Bus Macro comme l’illustre la figure 6.19. De notre côté, nous avons développé les ver-
sions de Bus Macro Bottom2Top et Top2Bottom fonctionnant pour les cibles Virtex-II.
Les versions LUT-based Bus Macro améliorent la flexibilité de la reconfiguration, par la
densité d’intégration plus forte offerte par les LUT comparées au BUFT et par la dis-
ponibilité de déclinaisons horizontales et verticales de ces interfaces. Par exemple dans
un FPGA Virtex-II la densité de LUT par CLB est le double de celle des BUFT comme
l’indique le tableau 6.2. De plus, les possibilités de routage pour atteindre les LUT sont
plus élevées que celles offertes pour atteindre les BUFT-based BM.
Fig. 6.19 – Horizontal et Vertical LUT Based Bus Macro sur FPGA Virtex-II
Nous avons aussi mis en œuvre dans le cadre du travail effectué en collaboration avec
l’Universitat Politècnica de Catalunya (UPC), décrit au paragraphe A.1, une solution d’in-
terconnexion d’une zone reconfigurable dans le cas où celle-ci présente un grand nombre
de signaux d’entrées/sorties. Dans ce cas, l’instanciation de Bus Macro est fastidieuse et
coûteuse en ressources. Nous proposons une solution de wrapper basés sur des LUT. Ces
wrapper s sont décrits sous forme de macro dans laquelle sont instanciés les LUT. Une
solution de wrapper est aussi proposée dans [121] à la place des Bus Macro basés sur des
BUFT. Ces wrapper s utilisent les ressources logiques des CLB et aussi les ressources de
routage à travers les “switch matrix” adjacentes aux CLB. La conception de ces interfaces
repose donc à la fois sur l’utilisation des outils classiques ISE pour les ressources logiques
mais aussi sur un outil, Jroute [122], pour la manipulation des ressources de routage du
FPGA. Or cet outil, le seul outil orienté sur les ressources de routage, est basé sur JBits
118 Conception et intégration des applications SDR sur plate-forme reconfigurable
[123, 124, 125, 126], expérimental il n’est pas diffusé, et ne supporte pas toutes les familles
de FPGA. Ceci représente donc les fortes limitations de cette proposition.
Fig. 6.20 – Macro placée et routée sur une colonne de CLB de Virtex-II
Les macro créées sont de type RPM “Relationally Placed Macro”. Nous décrivons ce
type de macro en VHDL par instanciation directe de primitives FPGA. Les primitives dis-
ponibles pour réaliser des macros sont les registres, ROM, RAM, RAMD, LUT, MUXCY,
XORCY, MULT AND, SRL16. Une macro est réalisée en créant des contraintes de pla-
cement relatives sur les primitives (RLOC) [119]. La macro est ensuite placée de façon
absolue, comme n’importe quel module à l’étape de “floorplanning”. Toutes les configu-
rations sont décrites au niveau VHDL. La description sous forme de macro et le flot de
conception modulaire garantissent un placement routage identique à la macro dans toutes
les configurations. Les bitstreams partiels peuvent donc être générés pour chaque confi-
guration par la méthode par différence et sont de taille minimale.
>for i = 0 to N - 1
> sliceRowIndex(i) = i mod 2 + 2 * (i/4)
> sliceColumnIndex(i) = (i/2) mod 2
>Endfor
figure 6.20. Dans le cas où une seule colonne de CLB est utilisée la taille du bitstream
partiel de configuration est minimale.
Nous pouvons illustrer l’utilisation de la reconfiguration pour réduire la complexité
matérielle par rapport à des solutions paramétrables en donnant l’exemple de la fonction
simple de multiplexage 2x1 figure 6.22. Alors qu’une implantation paramétrable utilise
des LUT trois entrées, l’implantation reconfigurable par le remplacement du signal de
sélection par la reconfiguration permet d’utiliser deux configurations de LUT deux entrées
(cf. figure 6.22).
Dans les FPGA les LUT sont à 4 entrées (LUT4), il n’y a pas de gain en terme de res-
sources logiques dans le cas cité précédemment, mais un gain en ressource de routage. Le
gain en ressources logiques est réalisé sur des multiplexeurs de plus grandes tailles comme
l’illustre le tableau 6.3. Dans ce tableau, la complexité est donnée sous forme d’une LUT
à N entrées avec N = M + log2 (M ) et M représente le nombre de bits d’entrées du mul-
tiplexeur, log2 (M ) le nombre de bits de sélection du multiplexeur. Les nombres de LUT4
de Virtex-II sont donnés par les rapports de synthèse sous XST.
Paramétrable Reconfigurable
MUX
Complexité Nb LUT4 Complexité Nb LUT4 &
matérielle de Virtex-II matérielle Nb config. V-II
MUX 2x1 1 LUT3 1 LUT4 1 LUT2 1 LUT4 & 2 cfg.
MUX 3x1 1 LUT5 2 LUT4 1 LUT3 1 LUT4 & 3 cfg.
MUX 4x1 1 LUT6 2 LUT4 1 LUT4 1 LUT4 & 4 cfg.
MUX 8x1 1 LUT11 4 LUT4 2 LUT4 2 LUT4 & 8 cfg.
MUX 16x1 1 LUT20 8 LUT4 4 LUT4 4 LUT4 & 16 config.
Le propos de cette étude n’est pas de comparer les performances de différentes archi-
tectures de filtres FIR, de nombreuses études sont depuis longtemps disponibles comme
nous l’avons souligné précédemment. Nous souhaitons ici illustrer à travers un filtre FIR
donné, les différentes implantations possibles en IP reconfigurables. L’architecture du filtre
que nous avons choisie est un filtre de structure canonique possédant 4 taps cascadés per-
mettant de réaliser des longueurs jusqu’à 32 taps. L’architecture du filtre est par ailleurs
détaillée dans le prochain chapitre.
Le filtre est décrit en VHDL comme le composant que nous avons vu figure 6.3. Les res-
sources logiques nécessaire à l’implantation(7) de ce FIR sont données dans le tableau
6.4. Nous pouvons remarquer que la partie contrôle de ce composant représente 58% de
ressources en slices utilisés dans l’IP. Cet exemple montre bien que le contrôle est très
consommateur de ressources dans les implantations FPGA.
(7)
La description VHDL a été synthétisée pour FPGA Virtex-II en utilisant XST [132] sous ISE Fundation
v6.3i.
122 Conception et intégration des applications SDR sur plate-forme reconfigurable
Le premier schéma 6.23.a est le cas d’une implantation sous forme d’une IP entièrement
reconfigurable pouvant figurer comme un exemple d’IP spécialisée. Dans ce cas, quel que
soit le paramètre à changer dans la fonction de filtrage, l’IP est entièrement reconfigurée.
Cette implantation peut être réalisé par le flot de conception classique “Module-based
PR”.
Dans le second cas, 6.23.b, les ROM sont identifiées comme une macro reconfigurable. Cet
exemple permet d’illustrer le cas d’une IP qui serait générique. Cela permet de changer
les coefficients du filtre par reconfiguration du contenu des ROM sans avoir à utiliser de
ressources supplémentaires pour gérer le chargement des données par valeurs. Les jeux de
coefficients des filtres sont donc contenus dans des bitstreams générés par le flot “MoDiff-
PR”. Dans ce cas, aucune zone n’est définie à la conception comme reconfigurable. Les
ROM sont conçues sous forme d’une macro afin d’en fixer l’emplacement lors du placement
routage de l’IP.
sont rapportés dans le tableau 6.5. Ces résultats nous amènent à plusieurs constatations.
L’IP FIR implantée de façon entièrement reconfigurable occupe une surface de 22LCLB ∗
6CCLB . La taille du bitstream associé est directement liée au nombre des 6 colonnes de
CLB nécessaire à l’implantation de l’IP.
L’adaptation du filtre par changement des valeurs de coefficients, en utilisant la reconfi-
guration pour changer le contenu des ROM, est effectuée avec des bitstreams de taille très
réduite de 2 ko donc un très faible surcoût en terme de temps de reconfiguration.
Virtex-II IP FR IP SR IP macro R.
Taille de la zone reconfigu- 22L ∗ 6C 22L ∗ 2C 4 BRAM
rable (en Li ∗ Col de CLB)
Taux d’occupation en slices de 81,3% 81,2% /
la zone RP
Taille bitstream partiel sur 54,2 ko 18,7 ko 2 ko
xc2v1000
Taille bitstream partiel sur 74.7 ko 25.7 ko 2 ko
xc2v2000
privilégiée, le contrôle représente une partie plus grande des ressources consommées. Afin
de réduire le nombre de branchements, de paramètres à gérer de façon variable, l’utilisation
d’IP semi-reconfigurables où la partie contrôle n’est pas paramétrable mais reconfigurable
permet de réduire le nombre de ressources utilisées puisque la capacité de reconfiguration
est intrinsèque au FPGA.
Conclusion
Ce chapitre apporte nos réflexions sur les méthodologies de conception concernant l’ar-
chitecture des composants de traitement reconfigurables pour les applications de chaı̂nes
de communications, dans une optique d’une amélioration de la reconfigurabilité. L’adop-
tion des méthodologies de conception décrites dans ce chapitre 6 est un moyen de réduire
les coûts liés à la reconfiguration. La reconfiguration partielle de FPGA est notamment
adoptée afin de limiter la surcharge imposée par la reconfiguration en terme de temps
d’adaptation, de mémoire occupée ou même de bande occupée en cas de téléchargements
via l’interface air (Over-The-Air-Reconfigurtion OTAR).
Afin de résumer les notions essentielles vues dans ce chapitre nous pouvons dire que la
notion de reconfiguration dynamique permet d’exécuter des traitements en partageant les
ressources physiques reconfigurables. La notion de reconfiguration partielle étend celle de
la reconfiguration dynamique avec un partitionnement des applications de façon à ressor-
tir les parties présentant des communités à la fois fonctionnellement et physiquement. La
transition entre configurations est finalement accomplie en changeant les différences entre
ces configurations. Nous avons vu à travers nos expériences que les flots de conception
jouent un rôle important pour tirer profit des capacités de reconfiguration des FPGA. Au
delà des performances de reconfiguration des FPGA qui sont dépendantes de la technolo-
gie comme nous avons pu le suivre ces dernières années avec l’évolution des FPGA et des
outils de conception, nos approches de conception d’IP reconfigurables visent à apporter
principalement une flexibilité aux applications multistandard. Elles sont validées par des
implémentations sur FPGA de fonctions de traitement du signal présentées dans le cha-
pitre 7.
Nous avons aperçu que dans la zone de conception appelée “reconfiguration partielle
de composant” de la figure 6.10 les solutions architecturales sont très variées, nous en
donnerons les exemples dans la partie 7 avec l’implantation de composants flexibles de
traitement. Nous avons apporté en outre une méthodologie afin de rendre possibles les
6.4 Etude de cas : la fonction de filtrage FIR 125
implantations de solutions originales d’IP reconfigurable comme par exemple les IP semi-
reconfigurables. Nous pensons que cela augmente très significativement les solutions archi-
tecturales offertes par la reconfiguration partielle des FPGA. Mais nous sommes conscients
de ne pas avoir répondu de façon exhaustive à la question des IP flexibles par une ap-
proche formelle de leurs conception. Des architectures originales de composants sont encore
à découvrir dans cet espace, néanmoins il existe des contraintes de réalisation difficiles à
contourner et qui peuvent limiter la conception.
A travers, les différentes méthodologies de conception sur FPGA proposées dans ce cha-
pitre, nous avons aussi présenté, les différents niveaux de granularité de reconfiguration
atteignable par ces approches. En effet, la reconfiguration peut être mise en œuvre sui-
vant les besoins et les contraintes au niveau des opérateurs logiques, par exemple sur des
multiplexeurs, à des niveaux de granularité plus gros par la réalisation d’une IP semi-
reconfigurable et au niveau fonction par une IP totalement reconfigurable.
Enfin pour élargir notre réflexion sur la conception dans le domaine de la RL, il est
difficile d’envisager qu’une méthodologie ou qu’un flot intégré à un outil puisse répondre
à l’ensemble des contraintes que pose la conception de tels systèmes, tant les standards
sont multiples et les plates-formes diverses. De plus, il faut tenir compte de la longueur
du cycle de développement d’un outil pour qu’il atteigne sa maturité, devienne stable et
robuste, face à l’évolution rapide des composants. Afin d’être performants, les outils et
méthodologies ne peuvent répondre que de façon ciblée et partielle à la problématique
générale. Pour ces raisons, le flot de conception d’applications SDR est actuellement-et
sans doute encore pour longtemps, une combinaison d’étapes de conception qui fait appel
à de nombreux outils adresse chacun de manière efficace une étape de la conception.
Chapitre 7
Sommaire
A.1 Conception d’interface pour Objet P-HAL partiellement re-
configurable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
A.2 Étude de consommation de la reconfiguration . . . . . . . . . 163
Introduction
Dans ce dernier chapitre, nous nous intéressons à la plate-forme radio logicielle que nous
avons mise en œuvre. La plate-forme matérielle est hétérogène et comporte un processeur
GPP, un DSP et un FPGA. Cette plate-forme s’approche en terme de variété d’exécution
offerte, des besoins des classes de traitements exprimés dans la section 3.2.2. En cela la
plate-forme est représentative de ce que sera un système SDR.
Suivant l’analyse algorithmique des fonctions multistandard développées dans le chapitre
3, nous proposons dans ce chapitre des implantations de fonctions multistandard de traite-
ment en bande de base. Ces implantations nous permettent aussi de valider les différentes
approches de conception proposées dans le chapitre 6. De plus, les traitements sont im-
plantés sous forme d’une chaı̂ne de traitement comme nous l’avons décrit dans le para-
graphe 6.1. Le fonctionnement de cette chaı̂ne sur notre plate-forme nous permet de valider
notre approche de conception d’application flot de données de type “GALS” portée sur
des ressources matérielles hétérogènes.
Nous décrivons aussi, dans un premier temps, l’adaptation à la plate-forme matérielle du
modèle de gestion de configuration hiérarchique proposé dans le chapitre 5.
127
128 Réalisation : plate-forme radio logicielle et implantation
L1 CM
Le L1 CM est un composant logiciel indépendant du matériel, dont l’instance sur un
système est unique. Le module matériel sur lequel le L1 CM est implanté devient le module
maı̂tre de la plate-forme. Ce module est alors nommé HOST. Le L1 CM se situe entre
l’entité de gestion de service applicatif utilisateur et les unités de gestion de configuration
de niveau 2, (suivant les standards et les services, l’entité de service applicatif utilisateur
noté “User Application Manager” peut être située dans des couches supérieures, la couche
MAC(1) ou la couche application utilisateur).
Le L1 CM est l’unité centrale de gestion de configuration pour l’ensemble de la plate-
forme pendant son fonctionnement. Le L1 CM a un rôle de gestion de configuration de
haut niveau des composants de traitement.
(1)
Couche liaison de données “Medium Access Control” (couche Layer2 dans le modèle OSI)
7.1 Gestion de configuration hiérarchique sur la plate-forme 129
L2 CMU
Nous avons vu lors de la présentation du modèle fonctionnel de gestion hiérarchique la
possibilité qu’un L2 CMU soit en charge d’un groupe de fonctions au lieu de gérer une
fonction constituée de sous-blocs de traitement. Ce groupement élève donc le niveau de
granularité des entités gérées par le L2 CMU. Dans ce cas, il en est de même concernant
les L3 CMU. Ceci a deux effets principaux. Le premier est de réduire la flexibilité de confi-
guration de l’application, car le nombre d’entités à gérer est plus faible. Ceci découle de
l’augmentation de la granularité des entités. La diminution du nombre d’entités à gérer en-
traı̂ne la diminution du nombre de L2 CMU à déployer. La seconde conséquence est donc
la réduction de la complexité de mise en oeuvre de la structure de gestion dynamique.
Suite à la découpe en trois catégories de traitement proposée au chapitre 3.2.2, nous pou-
vons pousser le raisonnement en réduisant jusqu’à 3 le nombre de L2 CMU à mettre en
œuvre. Chaque catégorie de traitement s’exécute sur une cible matérielle différente.
Un L2 CMU devient donc, dans ce cas, l’unité de gestion de configuration d’un module
matériel et assure l’adaptation des demandes de configurations émises par le L1 CM. Nous
avons choisi, cette solution pour le déploiement de la structure de gestion sur la plate-
forme en faisant le choix de réduire la complexité d’implantation de la gestion hiérarchique.
Ceci étant, il est envisageable pour certaines fonctions de conserver un L2 CMU dédié à
une fonction. Ceci se justifie pour des fonctions complexes et présentes dans un grand
nombre d’applications. La fonction doit alors posséder une grande flexibilité donnée par
une gestion de configuration en sous-blocs fonctionnels afin de s’adapter à chacune des
applications.
Dans le cas de l’implantation réalisée ici, qui est une sous-partie restreinte d’un système
d’émission multistandard, le nombre de L2 CMU instancié est de 3. Un L2 CMU est im-
planté sur chaque module matériel de la plate-forme.
Ces unités de gestion de configuration sont responsables de la configuration des fonctions
de traitement mises en œuvre sur chaque module. Les L2 CMU ont deux fonctionnalités
principales. Le rôle du L2 CMU est de répartir les paramètres de configuration de chaque
fonction aux L3 CMU associés à ces fonctions. Le L2 CMU est, de plus, en charge de la
configuration du chemin de données de traitement (processing datapath). Ce chemin de
données est configuré par les L2 CMU à l’aide des adresses de chaque composant. (Une
interface d’adaptation du format de données peut être mise en place par le L2 CMU entre
deux composants de traitement.)
Le L2 CMU initie les procédures d’insertion et de suppression de fonctions sur le module
dont il est en charge. Un L2 CMU gère la modification du chemin de données qu’implique
la modification de l’architecture du chemin de données sur le composant.
Le type de changement de contexte est décidé par le L2 CMU, en fonction des paramètres
de configuration et en relation avec la capacité de reconfiguration de l’instance du com-
posant (par paramètre, par reconfiguration).
130 Réalisation : plate-forme radio logicielle et implantation
L3 CMU
Nous avons précédemment justifié notre choix du regroupement des fonctions, afin de
réduire le nombre d’instances de L2 CMU. Ceci a pour effet d’augmenter le niveau de
granularité des entités gérées par les L3 CMU.
Ensuite sur une plate-forme hétérogène, deux cas de reconfiguration partielle du chemin de
données sont possibles. Un premier cas où la fonction reste sur le même module matériel.
Un second cas où la fonction change de module. Les procédures de gestion de configuration
à travers la structure hiérarchique correspondant à ces deux cas sont décrites ci-dessous.
Les descriptions suivantes sont données pour le changement de paramètres d’une fonction,
un changement de service peut concerner plusieurs fonctions.
134 Réalisation : plate-forme radio logicielle et implantation
L1 CM
Notification de la demande : le L1 CM reçoit les demandes de changement de service
de l’utilisateur. En fonction de la nature du changement et de la liste des fonctions de
traitement le L1 CM détermine vers quel L2 CMU envoyer un ordre de changement.
La consultation de la liste de fonction permet de connaı̂tre le L2 CMU en charge de la
fonction à changer. Une fois le changement de fonction effectué, la liste des fonctions
actives et les paramètres utilisés seront mis à jour sur réception d’un acquittement
du L2 CMU.
Envoi trame de commande : une trame de commande (Type 1 fig. 7.6) envoyée par le
L1 CM contient l’adresse du L2 CMU concerné par la reconfiguration, l’identifiant
de la fonction et la valeur des nouveaux paramètres de la fonction.
L2 CMU
Identification : identification par le niveau L2 CMU dans la trame de commande en-
voyée par le L1 CM du champ de l’adresse logique du L2 CMU. Dans le cas où un
bus d’adresse est disponible entre les niveaux L1 et L2, l’envoi de la trame peut être
direct, par adressage physique.
Réception : le L2 CMU responsable de la fonction en question reçoit la trame de com-
mande envoyée par le L1 CM et interprète les champs de la trame avec l’identifica-
tion de la fonction de configuration.
Envoi paramètres : les nouveaux paramètres sont envoyés au L3 CMU en charge du
changement effectif de la fonction.
7.2 Procédures et scénarios de reconfiguration sur la plate-forme 135
L3 CMU
Réception paramètres : en fonction des nouveaux paramètres envoyés par le L2 CM
et la nature de l’implantation de la fonction, le L3 CMU va effectuer le changement
de configuration.
Contrôle de la reconfiguration : Le L3 CMU effectue le changement de contexte de
la fonction en contrôlant l’état de la fonction. Dans le cas d’un IP HW le L3 CMU
par un signal reconf req stoppe la fonction. En fin de reconfiguration le L3 CMU
donne l’acquittement de configuration au L2 CMU retransmis ensuite au L1 CMU
pour la mise à jour de la liste de fonction.
Changement effectif de fonction : Si la fonction est un composant paramétrable,
alors le changement de contexte est un chargement de paramètres. Si la fonction cor-
respond à un composant reconfigurable, alors le changement de contexte est réalisé
par chargement de la nouvelle configuration (bitstream).
L1 CM
Notification de la demande : la notification par l’utilisateur de demande est identique
à celle du cas n˚1. Dans ce cas les nouveaux paramètres ne correspondent pas à ceux
gérés par le L2 CMU de la fonction active. Le L1 CM prend la décision de changer
la fonction de L2 CMU. Le L1 CM doit donc activer sur un L2 CMU la fonction
dont les paramètres sont pris en charge et faire une demande de mode transparent
au L2 CMU d’origine.
136 Réalisation : plate-forme radio logicielle et implantation
Envoi trames de commande : deux trames de commande désignant les L2 CMU con-
cernés par la reconfiguration sont envoyées. Une première trame tr a est destinée au
module dont une fonction est désactivée. La trame tr b est destinée au module sur
lequel la fonction est activée. La trame tr a contient l’adresse de la fonction passant
en mode transparent. La trame tr b contient l’adresse de la fonction passant en
mode actif et les nouveaux paramètres de la fonction.
L2 CMU
Modification du chemin de traitement : chaque L2 CMU modifie sur le module dont
il est en charge le chemin de données pour assurer la connectivité de la fonction
déplacée. Le L2 CMU est associé à une table de routage qui maintient l’adressage
logique entre les fonctions.
Autres procédures : les autres procédures prises en charge à ce niveau sont semblables
à celles décrites dans le premier cas.
L3 CMU Les procédures mises en place au niveau L3 ne changent pas entre ce cas et
le premier.
Fig. 7.6 – Trame (Type 1) pour l’échange des informations de gestion configuration entre
L1 et L2
Cette trame est dimensionnée pour des L2 CMU gérant jusqu’à 16 fonctions. Il est à
noter qu’actuellement il existe 13 fonctions au maximum dans le modèle de chaı̂ne unifiée
7.2 Procédures et scénarios de reconfiguration sur la plate-forme 137
dont la gestion est répartie sur plusieurs L2 CMU. Le nombre maximum de paramètres
par fonction est de 8 paramètres codés sur 4 bits. La taille maximale théorique de cette
trame est de 584 bits. Cette taille de trame est difficilement atteignable, elle signifierait
que 16 fonctions à 8 paramètres doivent être reconfigurées pour un changement de service.
Ce qui correspondrait éventuellement à un changement de standard exécuté sur un seul
module matériel. A l’inverse, lorsqu’une seule fonction à 4 paramètres est à changer sur un
module, la taille de la trame de type 1 est de 28 bits. Ceci correspond à l’envoi d’un seul
mot de configuration sur un bus 32 bits. Ceci est une faible surcharge de la bande passante.
Outre les procédures de changement de configurations locales que nous avons détaillées
ci-dessus, la structure de gestion de configuration pourra être sollicitée pour le chargement
de nouvelles configurations.
Il s’agit de chargements à distance utilisés pour l’ajout de nouvelles configurations, la
mise à jour ou la correction de fonctionnalité. Dans de tels cas la liste des fonctions de la
librairie de configuration du L1 CM doit être étendue et contenir le code correspondant
à la nouvelle fonctionnalité téléchargée. Cette procédure pourra être prise en charge par
le L1 CM qui devra mettre à jour la hiérarchie de gestion de configuration. Ces nouvelles
configurations peuvent être de différents types, profil de plate-forme, nouvelles fonction-
nalités, nouvelles configurations d’une fonction, nouveaux paramètres d’une fonction.
Nous allons dans le prochain paragraphe décrire les architectures permettant de donner
la flexibilité nécessaire à la réalisation des différents scénarios décrits ci-dessus.
Le FPGA offre une grande liberté de conception pour définir un chemin de données
correspondant à des liaisons physiques ou dans le processeur embarqué à des adressages
mémoires. Les goulots d’étranglement se situent sur les bus physiques disponibles entre
les différents modules matériels. Sur la plate-forme une seule liaison, appelée ComPort
(CP), est disponible entre le GPP et le FPGA. Ce bus est donc partagé entre la voie de
traitement et la voie de configuration pour la transmission des données entre le GPP et le
FPGA. De même, il existe un seul bus (EMIF) entre le FPGA et le DSP et il n’y a pas de
liaison directe entre le GPP et le DSP, par conséquent toutes les données transmises entre
GPP et DSP passent par le FPGA. Ces bus inter-modules sont les principales limitations
de la plate-forme notamment au niveau des débits du CP. Les liens uniques de commu-
nication entre modules et notamment entre le HOST et le FPGA avec le CP nécessitent
l’ajout d’un contrôle (avec ajout d’un en-tête de trame) pour distinguer les deux types
de données transmises sur ce bus. Ce contrôle est non nécessaire dans le cas d’une plate-
forme matérielle disposant de bus d’adresse distincts pour le transfert des deux types
de données transitant entre modules matériels. Nous avons proposé dans [49] le modèle
structurel abstrait d’architecture de plate-forme s’accordant à la structure de gestion de
configuration afin de respecter la séparation physique des types de données. Cependant
“l’overhead” introduit par le mot d’en-tête ajouté dans le cadre de cette implantation est
faible par rapport au volume de données transmises en mode traitement.
Le composant de traitement défini au chapitre 6 dans la figure 6.3 possède des in-
terfaces d’adaptation afin que les données soient formatées sur 32 bits. La RSB possède
donc uniquement des port d’entrées/sorties définis sur 32 bits. Ainsi les composants sont
interconnectables entre eux indifféremment, que le traitement soit réalisé sur processeur
ou sous forme d’une IP matérielle. La figure 7.10 illustre deux configurations de la RSB
pour le passage de la fonction 1 d’une exécution matérielle à logicielle.
142 Réalisation : plate-forme radio logicielle et implantation
donne les ressources utilisées seulement par la partie codage bit à symbole de l’IP mapper.
Fig. 7.11 – Fonction de mise en constellation sous forme d’IP totalement reconfigurable
Partie codage Bit Symb BPSK Diff QPSK 8PSK 16-QAM 64-QAM
Paramétrable (Slices) 41 Slices
Reconfigurable (Slices) 4 4 5 6 6 7
L’avantage de l’IP paramétrable est le temps de reconfiguration qui est nul pour passer
d’un mode à l’autre de la fonction. L’inconvénient de l’IP paramétrable en radio logicielle
144 Réalisation : plate-forme radio logicielle et implantation
est qu’elle n’est pas évolutive. Les six configurations incluses au moment de la conception
sont les seules possibles. Alors qu’il est toujours possible d’ajouter de nouvelles configu-
rations sur une IP reconfigurable (par exemple π/4 − 8P SK,π/4 − QP SK, 128-QAM
...).
Il est donc nécessaire d’adopter une architecture de codeur flexible afin de permettre
tous les types de codage. La longueur de codage k détermine la longueur de la ligne de re-
gistre à décalage linéaire représentée par la “delayline” dans la figure 7.13. Nous pouvons
remarquer à l’aide du tableau des polynômes Pi (cf. tab.B.13) que k est toujours inférieur
ou égal à 8 dans les cas considérés. Le nombre de sorties du codeur est déterminé par le
nombre de polynômes utilisés.
Afin de réaliser un codeur universel de la figure 7.13 sur FPGA, nous pouvons donc
fixer la longueur de la “delayline” à 8 registres (9 entrées X sur le bloc “Polynomial de-
7.4 Exemples d’implantation de fonctions 145
Nous pouvons remarquer dans le tableau 7.3 que des LUT2 sont nécessaires dans le
cas paramétrable et des LUT1 pour l’IP reconfigurable, mais ceci n’a pas d’influence sur
le nombre de slices utilisés car seul des LUT4 sont disponibles sur les FPGA Virtex-II.
Afin de minimiser le coût de la reconfiguration de la macro, il est nécessaire que la
macro soit pré-placée dans le minimum de colonnes de CLB. Les instances de LUT1 sont
donc placées les unes par rapport aux autres verticalement. Une macro placée et routée
de ce type est illustrée par la figure 6.20. La taille de la macro RPM résultante avec 54
LUT1 à placer est de 7LCLB ∗ 1CCLB .
Le FPGA étant choisi comme cible définitive, nous avons aussi exploité les possibi-
lités intrinsèques qu’offre le FPGA concernant les éléments de calcul. En effet, la partie
opérative utilise 4 multiplieurs câblés MULT18x18 du FPGA. Les registres à décalages
utilisés pour stocker les échantillons d’entrées sont les registres de type SRL16 [137] (Shift
Register LUT). Les implantations de filtres FIR exploitant les SRL16 suivant différentes
manières pour le stockage des échantillons, des coefficients a fait l’objet de plusieurs tra-
vaux, dont par exemple [138] dans le cas d’un filtre à architecture parallèle où les SRL
sont utilisés en sorties du filtre.
Dans la partie opérative du filtre, les slices sont donc utilisés pour instancier les re-
gistres à décalage de type SRL16 et aussi les additionneurs des opérateurs MAC. Les
coefficients du filtre sont stockés dans des blocs RAM configurés en ROM. La partie
7.4 Exemples d’implantation de fonctions 147
contrôle du filtre n’a donc pas à gérer l’adressage en écriture de blocs RAM pour le chan-
gement de valeurs des coefficients du filtre. Le changement des coefficients est néanmoins
possible par reconfiguration du contenu des ROM. Les reconfigurations sont effectuées par
le L3 CMU du FIR en relation avec le contrôleur de configuration par chargement d’un
bitstream. Les bitstreams contenant un jeu de coefficients ont une taille fixe de 2 ko, le
changement de coefficients est donc réalisable en 40 µs.
Ceci amène à la même réflexion que dans le cas du codeur convolutif. Le contrôle des
coefficients, est réalisé entre le L3 CMU et l’IP sans besoin d’ajout de logique de contrôle
avec bus de données et d’adressage de RAM pour le passage de nouvelles valeurs de coef-
ficients du filtre.
La partie contrôle gère donc les lectures des coefficients du filtre dans les ROM, et des
échantillons dans les SRL16. La partie contrôle gère de plus deux phases d’utilisation de
l’opérateur FIR 4TAP. La phase d’initialisation pendant laquelle les premiers échantillons
reçus sont chargés dans les SRL ; pendant cette phase aucun résultat n’est produit. La
seconde phase est celle de traitement, pendant laquelle les valeurs de sorties sont calculées
en fonction du paramètre de longueur du filtre et de sur-échantillonnage. Ces paramètres
ne sont pas modifiables par valeurs, ceci augmenterait considérablement la complexité de
la machine d’état de contrôle du FIR. Par conséquent, ces paramètres sont changés par
reconfiguration de la partie contrôle du filtre FIR. Cette partie contrôle utilise de plus un
bloc RAM configuré en FIFO pour le stockage des données produites par le FIR. Cette
FIFO joue le rôle de l’interface d’adaptation de sortie du composant GALS. En fonction
du taux de sur-échantillonnage, le nombre de données en sortie varie pour un échantillon
consommé à l’entrée.
P. James-Roxby et al. comparent [139, 140] l’utilisation de ROM et de RAM implantées
dans des slices. Dans l’application (un réseau de neurones) présentée dans [139, 140]
l’utilisation de ROM permet de réduire le nombre de slices (de 20%), et d’augmenter la
fréquence de traitement. Cette implantation utilise un outil appelé JBits [125, 126] qui
permet d’accéder à travers une API java aux ressources bas niveau du FPGA.
Conclusion
Les résultats présentés dans ce chapitre ainsi que le précédent nous ont permis de valider
les concepts proposés dans les deux précédentes parties de cet ouvrage.
En particulier, ce chapitre a présenté dans une démarche de conception de système RL, la
réalisation sur une plate-forme matérielle hétérogène d’applications reconfigurables de trai-
tement flot de données. Nous avons vu à travers la description du portage de la structure
de gestion de configuration que dans ce modèle les deux niveaux hiérarchiques supérieurs
et leurs échanges de données de configuration sont indépendants de l’implantation des
fonctions de traitements. Ce modèle s’adapte à une architecture physique hétérogène qui
n’a pas été dimensionnée à l’origine pour recevoir le modèle, cela indique bien que l’ap-
proche hiérarchique distribuée s’applique à la gestion de configuration d’applications RL
exécutées sur plate-forme hétérogène.
L’encapsulation des fonctions de traitement dans un composant standard “GALS” nous
permet de rapidement intégrer les fonctionnalités dans une chaı̂ne complète de traite-
ment déployée sur des cibles hétérogènes sans souci d’interconnexion, aussi bien au niveau
148 Réalisation : plate-forme radio logicielle et implantation
rythme qu’au niveau nature du circuit de traitement (DSP, GPP, FPGA, ...).
Sur FPGA, trois exemples d’IP reconfigurables, sur les cinq fonctions identifiées comme
communes lors de l’analyse des trois standards effectuée au chapitre 3, ont été décrites
dans ce chapitre. A travers ces trois exemples nous avons illustré l’intérêt des différentes
approches de conception d’IP reconfigurables que nous avons présentées au chapitre 6.
Leurs implantations nous ont permis de mettre en œuvre les différents flots de conception
décrits dans ce chapitre. Dans les cas de l’IP codeur convolutif et du FIR, mettant en jeu
les méthodologies de conception les plus avancées d’IP semi-reconfigurables, les descrip-
tions de haut niveau des IP sont génériques. Lors du placement routage certaines valeurs
sont fixées (par exemple pour l’IP codeur, longueur et taux). Les autres paramètres sont
ensuite variables par reconfiguration dynamique comme celui qui détermine les polynômes
générateurs.
Conclusion
Devant un paysage des radiocommunications dans lequel foisonne une grande diversité
de standards, les techniques radio logicielle deviennent indispensables aux opérateurs de
réseaux et aux équipementiers pour étudier et proposer à l’avenir des systèmes de transmis-
sion génériques. La notion de reconfigurabilité introduite dans toutes les parties (couches
physiques, piles protocolaires, applications) des systèmes (réseaux, terminaux) RL est donc
fondamentale. La plate-forme matérielle reconfigurable pour l’exécution d’une couche phy-
sique multistandard est le segment du système RL présentant le plus de contraintes par
rapport à la reconfiguration : réactivité, occupation de ressources. La réponse ne réside
pas dans un processeur généraliste puissant supportant l’ensemble des traitements. La
conception d’architectures optimisées se définira par la maı̂trise d’un ensemble de do-
maines pluridisciplinaires de recherche et de technologies émergentes que cible le domaine
de la RL.
Ce travail initiant cette thématique de recherche au sein de l’équipe SCEE, nous avons
voulu proposer dans cet ouvrage une synthèse des différentes techniques relatives à la
conception d’une plate-forme reconfigurable RL, à savoir l’optimisation algorithmique des
traitements multistandard, les architectures matérielles reconfigurables, les architectures
logicielles et de gestion de configuration.
A travers un choix de trois standards représentatifs de la diversité du paysage des radio-
communications, nous avons présenté une approche de conception basée sur une analyse
des applications pour aboutir à la définition d’une architecture de traitement reconfigu-
rable sur plate-forme hétérogène.
Réponse à la problématique
La caractéristique singulière apportée par un système RL réel par rapport à d’autres
systèmes reconfigurables est la gestion de configuration. Nous avons souligné au cours de
ce document l’importance primordiale de la gestion de configuration en RL, sans laquelle
la reconfigurabilité potentielle d’un système ne peut être exploitée en cours de fonction-
nement, pour répondre aux demandes de changements applicatifs. La proposition dans
le chapitre 5, d’une structure de gestion de configuration répond à cette problématique
présentée dans l’introduction. En effet, nous avons pris en compte à la fois les besoins
de changements de contextes applicatifs (les diverses granularités de reconfiguration de
la chaı̂ne) et l’hétérogénéité des cibles configurables par la définition d’une gestion de
configuration hiérarchique et distribuée. Nous avons introduit au niveau de la couche
physique la capacité de reconfiguration partielle de la chaı̂ne de traitement et la gestion
152 Conclusions et perspectives
Résultats
Une concrétisation du travail sur la conception et la gestion de la reconfiguration dy-
namique sur plate-forme hétérogène est la sélection de l’équipe SCEE, depuis 2005, par
Xilinx comme ”Selected Customer” afin d’évaluer les nouveaux outils et flots de concep-
tion FPGA de Xilinx.
Nos travaux de modélisation de la gestion de configuration de plates-formes RL dynami-
quement reconfigurables ont été récompensés au SDR Forum en 2006 par un prix outstan-
ding paper award. Au niveau national, nos approches de conception d’IP reconfigurable
pour les applications radio logicielle a reçu le prix du concours 2006 de conception organisé
par Xilinx et le CNFM. Enfin, la réalisation sur plate-forme hétérogène d’une application
dynamiquement et partiellement reconfigurable, issue des nos travaux de thèse est l’objet
d’une démonstration présentée dans le cadre d’un audit du projet E2 R phase II.
Publications internationales
Jean-Philippe Delahaye, Guy Gogniat, Christian Roland, Pierre Bomel, “Software Radio
and Dynamic Reconfiguration on a DSP/FPGA platform”, Frequenz Journal of Tele-
communications, pages 152-159, N˚58, 5-6/2004.
Hongzhi Wang, Jean-Philippe Delahaye, Pierre Leray, Jacques Palicot, “Managing dyna-
mical reconfiguration on a MIMO Decoder”, 14th Reconfigurable Architectures Workshop,
26-27 Mars 2007, Long Beach, California, USA.
Jean-Philippe Delahaye, Jacques Palicot, Christophe Moy, Pierre Leray, “Partial Reconfi-
guration of FPGAs for Dynamical Reconfiguration of a Software Radio Platform”, (paper
submitted to) 16th IST Mobile & Wireless Communications Summit 2007, Budapest (Hun-
gary), 1-5 July 2007.
Amor Nafkha, Renaud Seguier, Jacques Palicot, Christophe Moy, Jean-Philippe Dela-
haye, “A Reconfigurable Base-Band Transmitter for Adaptive Coding”, (paper submitted
to) 16th IST Mobile & Wireless Communications Summit 2007, Budapest (Hungary), 1-5
July 2007.
Jean-Philippe Delahaye, Pierre Leray, Christophe Moy, Jacques Palicot, “Managing Dy-
namic Partial Reconfiguration on Heterogeneous SDR Platform”, SDR Forum Technical
Conference, Anaheim (USA), novembre 2005.
Cette publication a reçu le prix “Outstanding Paper Award” du SDR Forum Technical
Committe Chair, november 2006.
Jean-Philippe Delahaye, Guy Gogniat, Christian Roland, Pierre Bomel, “Software Ra-
dio and Dynamic Reconfiguration on a DSP/FPGA platform”, 3rd Karlsruhe Workshop
on Software Radios, Karlsruhe (Germany), 17-18 mars 2004.
Publications nationales
Hongzhi Wang, Pierre Leray, Jacques Palicot et Jean-Philippe Delahaye, Utilisation de
la reconfiguration dynamique partielle dans l’implémentation d’un décodeur MIMO V-
BLAST, (article soumis au) 21e colloque GRETSI sur le traitement du signal et des
images, Troyes, France, 11-13 septembre 2007.
158 Conclusions et perspectives
Jean-Philippe Delahaye, Jacques Palicot, Pierre Leray, “Un Modèle Hiérarchique pour
les Architectures Reconfigurables en Radio Logicielle”, 20e colloque GRETSI sur le traite-
ment du signal et des images, Louvain-la-Neuve (Belgique), 6-9 septembre 2005.
Communications orales
Jean-Philippe Delahaye, “Radio logicielle et Reconfiguration dynamique sur une plate-
forme DSP/FPGA”, Séminaire ETSN du 10 mars 2004, Supélec, campus de Rennes.
161
162 Travaux issus de collaborations
Sur les FPGA de faible capacité, il est implanté un seul objet par FPGA. Sur les
FPGA de plus grande taille, deux objets se partagent une interface P-HAL commune
comme l’illustre la figure A.1. Initialement, lorsqu’un objet était changé en cours de trai-
tement, le FPGA accueillant l’objet et sa partie P-HAL était totalement reconfiguré. Or
la partie du P-HAL implantée sur FPGA est constituée par les interfaces autour de l’objet
et sont illustrées dans la figure A.1. Elles peuvent être adaptées pour rester inchangées
d’une implantation d’objet à l’autre. Ceci nous a permis d’envisager le chargement uni-
quement de l’objet par reconfiguration partielle du FPGA. L’adaptation des interfaces a
été réalisée avec la conception de wrapper se plaçant entre l’objet partiellement reconfigu-
rable et les services P-HAL restant en partie statique du FPGA. Les wrapper s sous formes
de macros sont décrits dans le chapitre 6 sur les méthodologies. Ces wrapper s instanciant
des LUT1 pour garantir le routage des signaux externes des objets ont été développés
pendant cette collaboration. La solution des wrapper s a été retenu face au Bus Macro
car les objets implantés sur FPGA possèdent de nombreux signaux. Les wrapper s per-
mettent de diviser par 2 le nombre de CLB consommés pour fixer le routage des signaux
externes des objets. De plus, la description les wrapper s est réalisée en VHDL comme des
A.2 Étude de consommation de la reconfiguration 163
Tab. A.1 – Affectation d’une qualité de service suivant le type d’architecture de la FFT.
Les standards
165
166 Les standards
B.1 GSM
B.2 UMTS
Fig. B.1 – Transport channels to physical channel mapping in the UMTS/FDD uplink
PN codes
longueur 256 4-512 38400 ou 256 38400
(chips)
Durée 66.67µs 1.04µs − 133.34µs 10ms ou 66.67µs 10ms
Nb 1 PCg et = SF 16,777,216 512 PC et
codes 16 SCh UL : 4..256 15 SC for
DL : 4..512 each PC
Etalement Noi Yesj No No
Usage To enable UE to UL : to separate physical data Separation of Separation
locate and synchro and control data from same UE UE of sectors
to the cells’ main DL : to separate connection
control channels to different UE in a same cell
B.3 WLAN
Partitionnement
Les bits encodés sont partitionnés “Partitioning” en blocs de longueurs finies de taille
NCBP S afin que l’opération d’entrelacement soit effectuée par blocs.
Avec NBP SC représentant le nombre de bits codés par sous porteuses (“Coded Bit Per
Sub Carrier”)
B.3 WLAN 171
Entrelacement
Les données sont entrelacées “Interleaving” par blocs dont la taille correspond au nombre
de bits dans un symbole OFDM.
La permutation est définie en 2 étapes, la première assurant que les bits adjacents ne sont
pas “mappés” dans des sous porteuses adjacentes. La seconde assure que les bits sont
mappés alternativement sur les LSB et MSB de la constellation. La première permutation
est une permutation par bloc, écriture en ligne de longueur 3 ∗ NBP SC bits des NCBP S bit
d’un symbole. Le nombre de ligne est ainsi égal à 18. Puis lecture des 3 ∗ NCBP S colonnes.
Les colonnes impaires subissent une permutation rotative intra vecteur.
Avec NCBP S représentant le nombres de bits codés par symbole (“Coded Bits Per Sym-
bol”)
Mise en constellation
Chaque sous porteuse est modulée suivant le débit souhaité par les “mapping” BPSK,
QPSK, 16-QAM, 64-QAM. Les bits sont donc groupés par 1, 2 4, ou 6 et convertis par
un code Gray suivant la constellation choisie. Les valeurs de sorties, D, sont normalisées
par un facteur Km od suivant la modulation choisie.
D = (I + jQ)Km od
(B.2)
Filtrage
La fonction de “Windowing” consiste en une multiplication du signal OFDM par une
fenêtre ayant pour rôle de limiter le spectre d’émission. Cette fonction simple dans le
cas de présent peut aussi être remplacée par une fonction de filtrage plus complexe dans
d’autres systèmes OFDM. Dans ce cas le filtrage a lieu dans le domaine temporel par
convolution. Une implémentation pour 802.11 de la fonction de “windowing” pour une
symbole de durée T = 4µs et des intervalles de transition de TTR=100 ns avec une
vitesse d’échantillonnage de 20 Msps est W T [n] = (1, n[1; 79]; 0.5, n[0], [79]; 0sinon)
Tab. B.14 – modulations, mise en constellations utilisées dans les systèmes de radio
communications
Annexe C
Architectures systèmes
175
176 Architectures systèmes
La figure C.2 illustre ce modèle et les relations entre ces différents éléments. Les ap-
plications (“waveform”) utilisent les services fournis par la plate-forme, contrôlés par une
architecture de management.
Fig. C.2 – Vue UML globale de l’architecture SDR proposée par le SDR Forum
Les 4 éléments du modèle sont empruntés aux concepts formulés dans “Principles of
TINA” [144] en 1995 et adaptés par le SDR Forum aux applications civiles de la radio
C.2 L’architecture du SCA 177
Le Core Framework Le CF est une partie essentielle du SCA permettant de définir les
applications indépendamment des spécificités du système. Les interfaces et services
du CF fournissent une abstraction des couches logicielles et matérielles inférieures.
Le CF comprend les interfaces de bases des composants (Hw/Sw) fournies aux appli-
cations, les interfaces de contrôle pour contrôler le système, les interfaces aux services
fournis par les systèmes. Le CF comprend également des fichiers (XML) de profil
décrivant les propriétés des ressources matérielles (Device Profile) et des composants
logiciels (Software Profile). Les fichiers de profils décrivent les caractéristiques des
ressources, fonctionnalité, emplacement, connectivité, et autres paramètres spécifiques
à décrire le composant. Toutes les interfaces du CF sont définies dans un langage
IDL.
CORBA Ce standard de communication édité par l’OMG est présenté dans son fonc-
tionnement et ses concepts dans livre le [145]. CORBA est la version orientée objet
d’une technologie plus ancienne appelée RPC (Remote Procedure Call). CORBA
est désigné comme la couche middleware dans le sens où c’est utilisé entre plusieurs
logiciels hétérogène pour les faire communiquer. CORBA est aussi un middleware
distribué, ce qui permet à 2 applications de pouvoir communiquer ensemble lors-
qu’elles sont exécutées sur des processeurs distincts et de différents types, sur des
systèmes d’exploitations différents et indépendamment des langages dans lesquels
elle sont développées. Pour cela, un CORBA Interface Design Langage (IDL) spécifie
complètement toutes les interfaces des objets indépendamment des processeurs et
des langages spécifiques.
CORBA est donc utilisé dans le SCA pour acheminer les messages entre différents
objets dans un environnement de traitement distribué.
C.3 Les limitations de l’approche SCA 179
De même l’encapsulation des données dans CORBA peut-être très pénalisant pour les
taux de transfert. Selon cette étude l’overhead d’encapsulation mesuré peut représenter
jusqu’à 46% de la taille d’un paquet à transmettre dans le cas de pacquets de petites
tailles. Ces temps de latence sont illustrés dans les tableaux ci-dessous dont les chiffres
180 Architectures systèmes
sont donnés pour un ORB CORBA C++ exécuté sur un processeur Pentium cadencé à
266Mhz embarqué sur une carte PC104.
interfaces et la compatibilité avec une couche logicielle n’est pas recherchée. Ceci réduit
le nombre de ressources allouées à la mise en compatibilité des plates-formes. L’ajout
de processeurs généralistes, pour créer des ponts entre CORBA et les circuits spécialisés
n’est pas nécessaire afin de prendre en charge ces circuits. De plus, les auteurs estiment
aussi que le développement des plates-formes matérielles doit rester propriétaire. Et le
développement de drivers spécifiques est considéré comme le moyen de garantir le maxi-
mum de performance d’une plate-forme en opposition avec l’approche CORBA.
C.5.2 DSP
Les DSP ont des architectures de type Harvard. Les bus de données et d’adresses sont
séparés. Ils sont orientés traitement du signal à virgule fixe ou à virgule flottante. Les
jeux d’instruction réduits sont spécialisés (SIMD) “Single Instruction Multiple” Data sont
généralement constitués au moins d’unités de calcul MAC en cascade ou parallélisées.
La description des applications peut-être réalisée avec des langages de programmation
de haut-niveau par exemple C/C++, et des compilateurs dédiés aux DSP permettent
d’exploiter les jeux d’instructions spécifiques.
C.5.3 ASIP
L’architecture type de processeur est spécialisée pour optimiser l’exécution d’une classe
application comme par exemple LISA [150, 151, 152] issu des travaux de l’université de
Aix-La-Chapelle. Les ASIP peuvent avoir des architectures proches des DSP ou des GPP
suivant les applications. Pour les traitements en bande de base les ASIP ont des chemins
de traitement de données spécialisés, par exemple la famille de coeur de DSP CEVA-X
[153] dont l’architecture est une combinaison SIMD et VLIW proposant l’accélération des
opérations Add-Compare-Select pour l’algorithme de Virterbi. En particulier, le coeur
CEVA-X1622 vise les applications radio 3G/3.5G/HSDPA et RL. La génération auto-
matique des compilateurs pour ASIP est un élément essentiel pour exploiter toutes les
182 Architectures systèmes
performances de ces circuits avec des langages de description haut niveau. Aujourd’hui,
des environnements de développement de compilateurs existent tel que Cosy [154].
La figure C.4 montre les relations entre la partie fixe de traitement (F), la structure
reconfigurable (V), les entrées / sorties, la partie de contrôle et l’homme (gestionnaire des
configurations) !
La figure C.5 montre les photos des différentes parties du système : fig. C.5.a les
modules reconfigurables, fig. C.5.b la carte mère et les fils de câblages de la carte mère
sur fig. C.5.c. L’auteur est montré en fig. C.5.d utilisant un oscilloscope pour observer et
superviser l’activité du système.
C.5.4.1 FPGA
Les FPGA sont des architectures reconfigurables à grain fin, les FPGA étaient initialement
utilisés comme circuit de prototypage d’applications ou glu logique. Depuis leur apparition
au début des années 1980, les performances en consommation et la puissance de calcul des
circuits FPGA ont considérablement évolué. De plus des avantages comme un cycle de
développement et de mise sur le marché des applications plus court que l’ASIC, font des
FPGA une solution de plus en plus retenue dans les systèmes manufacturés. Le succès des
FPGA est montré par leur utilisation dans de nombreux systèmes : défense, aérospatial,
imagerie médicale, télécommunications, reconnaissance de parole, cryptographie. Il existe
donc de nombreux produits, mais le marché des FPGA de grande capacité est toujours
dominé par deux fabricants Xilinx et Altera. Depuis quelques années, les FPGA à plu-
sieurs millions de portes possèdent des blocs de mémoire RAM, des multiplieurs câblés,
rendent possible la conception de systèmes sur puce, SoPC, en embarquant des coeurs de
processeurs cablés comme le IBM PowerPC 405 dans les Virtex -II Pro, ou des coeurs de
processeurs logiciels comme les NIOS et NIOS II chez Altera, PicoBlaze et MicroBlaze
chez Xilinx, ou l’open source Lattice Mico8.
Les principaux acteurs sont :
– ATMEL, avec la famille de FPGA AT40K dont la capacité va jusqu’à 50 000
éléments logiques cadencés à 100 MHz, est la seule famille de FPGA offrant une
reconfigurabilité partielle au niveau élément logique. En 1998, le projet ARDOISE
[104] initié au sein du GDR ISIS, a choisi ces FPGA afin d’évaluer des architectures
de traitement d’images utilisant ces propriétés.
– Altera dont les FPGA les plus performants sont la famille Stratix et Stratix II,
manufacturé en technologie 90nm donne des capacités jusqu’à 180 000 éléments lo-
giques. Ces FPGA intègrent des blocs RAM, des multiplieurs câblés 18*18, pouvant
former des blocs DSP cadencés jusqu’à 450Mhz.
– Lattice Semiconductor avec les FPGA LatticeSC est le troisième fabricant après
Altera et Xilinx à produire des FPGA en technologie 90nm. Le nombre d’éléments lo-
giques offerts atteint 115 000 avec des signaux d’horloge globale cadencés à 700Mhz.
– Xilinx probablement leader sur le marché des FPGA est très impliqué dans le do-
maine de la radio logicielle. Xilinx est par exemple le premier, en partenariat avec
ISR technologies, à proposer depuis 2006 un kit de développement SDR complet lo-
giciel et matériel compatible JTRS basé sur les FPGA Virtex 4 et la couche logicielle
SCA du JTRS. Xilinx est aussi le premier à offrir des FPGA de grande capacité
offrant une reconfigurabilité partielle par colonne à partir de la famille Virtex, Vir-
tex -E puis sur les Virtex -II et Virtex -II Pro ainsi que sur les FPGA “low-cost”
Spartan -III. Les générations plus récentes sont fabriquées en technologie 90 nm
pour les Virtex 4. Ces FPGA ont des capacités jusqu’à 200 000 éléments logiques.
Le changement technologique à 65 nm au passage à Virtex 5, Xilinx a annoncé que
la capacité atteindra 330 000 éléments logiques.
184 Architectures systèmes
Le Virtex-II est le FPGA sur la plate-forme Sundance utilisée. Les détails de l’archi-
tecture du Virtex-II sont illustrés par la figure C.6 inspirée par les spécifications complètes
disponibles dans [155].
Fig. C.6 – Détails de l’architecture des FPGA Xilinx famille Virtex-II [155]
La carte mère utilisée est la SMT310Q C.7, elle permet d’accueillir 4 modules au for-
mat TIM (Texas Instrument Module).
Les principales interfaces de communications entre la carte mère et le Host (PC) sont le
“Global Bus” sur 32 bits (un débit max. de 100 Mbytes/s @ 33MHz PCI clock) et le “Host
CommPort” sur 8 bits d’un débit maximal théorique de 10 Mbytes/s.
La carte fille SMT365 est une carte DSP TMS320C6416 TI à virgule fixe cadencée à 600
MHz. L’architecture de cette carte fille est illustrée figure C.8. Cette carte dispose de ca-
pacité mémoire de type ZBTRAM cadencé à 133 MHz d’une capacité de 8 Mbytes. Nous
pouvons aussi remarquer que cette carte comporte un FPGA Xilinx Virtex-II XC2V2000-4
en package FF896. Sur cette carte le FPGA est dédié à fournir les interfaces de communica-
tions entre le DSP et le Host. Nous avons utilisé ce FPGA, en modifiant sa configuration
C.6 Description de la plate-forme de prototypage 185
Buffered External
JTAG connector
7
JTAG
Reset Header
HOST 8-bit
comport 6 ports 6 ports 6 ports
6 ports
Connection
COMPORT CONNECTION MATRIX
control
HOST
SDB
8-bit 8-bit 8-bit 8-bit
16-bit
Buffered
Comport
McBSP/Utopia/GPIO
(all non-TIM I/O pins)
4 LEDs &
JTAG Header FPGA Controller 4 I/O pins
Virtex-II, FF896
XC2V1000E-4 - XC2V2000E-4 DSP
432-624 I/O Pins 600MHz 'C6416
1.5V Core 104 I/O pins - EMIFA 525 pins - 1.4V Oscillators
2 x Sundance High- 3.3V I/O
speed Bus (SHB) 120 I/O Pins; 32-bit Data
60-way Samtec QSH
5V<>3V3 level translator 4/8/16Mbytes ZBTRAM
(4 x 512k/1M/2M x16
4x Comm-Port/SDL
133MHz)
Global Bus
EMIFA
187
188 table des figures
191
192 liste des tableaux
[1] Joseph Mitola, « The software Radio architecture ». IEEE Communications Ma-
gazine, vol. 33, pages 26–38, May 1995.
[2] Informations sur End-to End Reconfigurability Project, IST IP E2 R project
phase 2, « http ://e2r2.motlabs.com ».
[3] D. Greifendorf, J. Stammen, S. Sappok, M. Van Ackeren et P. Jung, « A novel
hardware design paradigm for mobile ’software defined radio’ terminals ». In IEEE
Seventh International Symposium on Spread Spectrum Techniques and Applications,
vol. 3, pages 828–831, 2002.
[4] Jacques Palicot et Christian Roland, « La radio logicielle : enjeux, contraintes et
perspectives ». In Revue de l’Électricité et de l’Électronique, vol. 11, décembre 2001.
[5] R.I. Lackey et D.W. Upmal, « Speakeasy : the military software radio ». IEEE
Communications Magazine, vol. 33, no 5, pages 56–61, May 1995.
[6] Peter G. Cook et Wayne Bonser, « Architectural overview of the SPEAKeasy
system ». In IEEE Journal on Selected Areas in Communications, vol. 17, pages 650–
661, April 1999.
[7] US Department of Defense, « Programmable Modular Communications System
(PMCS), Guidance Document ». Rapport, July 1997.
[8] Byron Tarver, Eric Christensen, Annamarie Miller et Elisa R. Wing, « Di-
gital Modular Radio (DMR) as a Maritime/Fixed Joint Tactical Radio System
(JTRS) ». In IEEE Military Communications Conference, MILCOM, Communi-
cations for Network-Centric Operations : Creating the Information Force, vol. 1,
pages 163–167, 2001.
[9] Vanu G. Bose, Alok B. Shah et Michael Ismert, « Software Radios for Wireless
Networking. ». In INFOCOM, pages 1030–1036, 1998.
[10] Thierry Turletti, H. Bentzen et D. Tennenhouse, « Towards the software rea-
lization of a gsm base station ». In IEEE/JSAC, Special Issue on Software Radios,
April 1999.
[11] « SDR Forum, Accelerating the proliferation of software defined radio technologies ».
http ://www.sdrforum.org.
[12] Jean-Philippe Delahaye, Guy Gogniat, Christian Roland et Pierre Bomel,
« Software Radio and Dynamic Reconfiguration on a DSP/FPGA Platform ». In
Proc. 3rd Workshop on Software Radios, (Karlsruhe, Germany), pages 143–151,
March 2004.
193
194 bibliographie
[29] 3GPP, « Physical Layer on the Radio Path : General Description ». Rapport, 3GPP,
2000.
[30] 3GPP, « Channel coding : coding, reordering and partitioning, and interleaving ».
Rapport, 3GPP, 2001.
[31] 3GPP, « Modulation : differential encoding, and modulation ». Rapport, 3GPP,
2001.
[32] Alfredo Linz et Alan Hendrickson, « Efficient implementation of an I-Q GMSK
modulator ». IEEE Transactions on Circuits and Systems II : Analog and Digital
Signal Processing, vol. 43, no 1, pages 14–23, January 1996.
[33] Harri Holma et Anti Toskala, « WCDMA fo UMTS : Radio Access For Third
Generation Mobile Communications ». In John Wiley & Sons, 2000.
[34] 3GPP, « Multiplexing and Channel Coding (FDD) ». Rapport, 3GPP, 2001.
[35] 3GPP, « Physical Channel and Mapping of Transport Channels onto Physical Chan-
nels (FDD) ». Rapport, 3GPP, 2001.
[36] 3GPP, « Spreading and Modulation (FDD) ». Rapport, 3GPP, 2001.
[37] 3GPP, « UE Radio transmission and Reception (FDD) ». Rapport, 3GPP, 2001.
[38] IEEE, « Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specification ». Rapport, IEEE, 1997.
[39] IEEE, « Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specifications. Amendment 1 High-speed Physical Layer in the 5Ghz Band ». Rap-
port, IEEE, 1999.
[40] IEEE, « Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specifications ; Amendment 4 Further Higher Data Rate Extension in the 2.4Ghz
Band ». Rapport, IEEE, 2003.
[41] Anne Wiesler et Friedrich Jondral, « A software radio for second- and third-
generation mobile systems ». IEEE Transactions on Vehicular Technology, vol. 51,
no 4, pages 738–748, July 2002.
[42] Anne Wiesler, H. Schober, R. Machauer et Friedrich Jondral, « Software
radio structure for UMTS and second generation mobile communication systems ».
In 50th IEEE Vehicular Technology Conference (VTC), vol. 2, pages 939–942, Sep-
tember 1999.
[43] Arnd-Ragnar Rhiemeier, « Benefits and limits of parameterised channel coding for
software radio ». In Proc. 2nd Workshop on Software Radios, (Karlsruhe, Germany),
pages 107–112, March 2002.
[44] J. Cavallaro et M. Vaya, « VITURBO : A Reconfigurable Architecture for Viterbi
and Turbo Decoding ». In IEEE International Conference on Acoustics, Speech, and
Signal Processing (ICASSP), vol. 2, (Hong Kong, China), April 2003.
[45] Jacques Palicot et Christian Roland, « FFT a basic Function for a Reconfigurable
receiver ». In Proc. 10th International Conference on Telecommunications, (Papeete,
Tahiti), pages 898–902, Febuary 2003.
[46] Ali Al Ghouwayel, Yves Louet et Jacques Palicot, « A reconfigurable archi-
tecture for the FFT operator in a software radio context ». In IEEE International
Symposium on Circuits and Systems, ISCAS, May 2006.
196 bibliographie
[47] Multi-Mode Radio IST MuMor, « D3.2 Methodology Evaluation Report ». Rap-
port, March 2003.
[48] Virgilio Rodriguez, Christophe Moy et Jacques Palicot, « An optimal architec-
ture for a multi-standard reconfigurable radio : A network theory re-formulation ».
In The 17th Annual IEEE International Symposium on Personal, Indoor and Mobile
Radio Communications (PIMRC’06), (Helsinki, Finland), 11-14 September 2006.
[49] Jean-Philippe Delahaye, Pierre Leray, Christophe Moy et Jacques Palicot,
« Managing Dynamic Partial Reconfiguration on Heterogeneous SDR Platform ».
In SDR Forum Technical Conference, (Anaheim, USA), November 2005.
[50] E. Sereni, G. Baruffa, F. Frescura et P. Antognoni, « A Software Reconfi-
gurable Architecture for 3G and Wireless Systems ». In Proceedings of 3G Wireless
2002, Febuary 2002.
[51] Jurgen Helmschmidt, Eberhard Schüler, Prashant Rao, Sergio Rossi, Serge
di Matteo et Rainer Bonitz, « Reconfigurable Signal Processing in Wireless Ter-
minal ». In Proc. Design, Automation, and Test in Europe (DATE), (Munich, Ger-
many), pages 20244–20249, 2003.
[52] Energy-Aware SYstem on-chip design of the HIPERLAN/2 standard,
« http ://easy.intranet.gr/ ». Rapport, 2004.
[53] Xavier Revés, Vuk Marojevic et Antoni Gelonch, « Run-time and development
framework for heterogenous hardware Radios ». Rapport, Barcelona, Spain, Sep-
tember 2004.
[54] Sandbridge Technologies. www.sandbridgetech.com.
[55] C. John Glossner, Mayan Moudgill, Daniel Iancu, Gary Nacer, Sanjay Jin-
turkar, Stuart Stanley, Michael Samori, Tanuj Raja, Michael J. Schulte et
Stamatis Vassiliadis, « Future wireless convergence platforms ». In CODES+ISSS
(Petru Eles, Axel Jantsch et Reinaldo A. Bergamaschi (eds.)), pages 7–12,
ACM, 2005.
[56] Intrinsity, www.intrinsity.com.
[57] C. Maxfield, Reconfiguring Chip Design. EEDesign, http ://www.eedesign.com/,
September 2002.
[58] J. Brakensiek, B. Oelkrug, M. Bucker, D. Uffmann, A. Droge et M. Daria-
nian, « Software Radio Approach for Reconfigurable Multi Standard Radios ». In
The 13th Annual IEEE International Symposium on Personal, Indoor and Mobile
Radio Communications (PIMRC’02), pages 110–114, september 2002.
[59] P. M. Heysters, H. Bouma, J. Smit, G. J. M. Smit et P. J. M. Havinga, « A re-
configurable function array architecture for 3G and 4G wireless terminals ». In World
Wireless Congress, San Francisco, California, (Cupertino, California), pages 399–
405, Delson Group, May 2002.
[60] Hiroshi Harada, Yukiyoshi Kamio et Masayuki Fujise, « Multimode Software
Radio System by Parameter Controlled and Telecommunication Component Block
Embedded Digital Signal Processing Hardware ». EICE TRANSACTIONS on Com-
munications, vol. E83-B, no 6, pages 217–1228, 2000.
[61] Katherine Compton et Scott Hauck, « Reconfigurable Computing : A Survey of
Systems and Software ». ACM Computing Surveys.
bibliographie 197
[76] Mark Cummings et S. Haruyama, « FPGA in the Software Radio ». IEEE Com-
munications Magazine, vol. 37, no 2, pages 108–112, 1999.
[77] David M. Pearson, « SDR (systems defined radio) : how do we get there from
here ? ». In MILCOM, Military Communications Conference, Communications for
Network-Centric Operations : Creating the Information Force, Proceedings, vol. 1,
pages 571–575, October 2001.
[78] JTRS, « SCA Software Communications Architecture, (SCA v2.2) ». Rapport.
[79] Alistair Munro, « Mobile middleware for the reconfigurable software radio ». IEEE
Communications Magazine, vol. 38, pages 152–161, August 2000.
[80] (OMG) Object Modelling Group, http ://www.omg.org.
[81] Vincent Nollet, Paul Coene, Diederik Verkest, Serge Vernalde et Rudy Lau-
wereins, « Designing an Operating System for a Heterogeneous Reconfigurable
So. ». in IPDPS [157], page 174.
[82] Byron Tarver, Eric Christensen et Annamarie Miller, « Software defined ra-
dios (SDR) platform and application programming interfaces (API) ». In IEEE Mili-
tary Communications Conference, MILCOM, Communications for Network-Centric
Operations : Creating the Information Force, vol. 1, pages 153–157, 2001.
[83] Lee Pucker et Geoff Holt, « Extending the SCA core framework inside the modem
architecture of a software defined radio ». IEEE Communications Magazine, vol. 42,
no 3, pages 21–25, 2004.
[84] D. Dohse et al., « Successfully Introducing CORBA into the Signal Processing
Chain of a Software Defined Radio ». In COST Journal, pages 32–37, January 2003.
[85] D. Murotake, « Use of Switched Fabrics ». In Implementation of Software Defined
Radio Smart Antenna and Interference Cancellation Signal Processing SDR Forum
proc., vol. 2, November 2002.
[86] Xavier Revés, Vuk Marojevic, Ramon Ferrús et Antoni Gelonch, « FPGA’s
Middleware for Software Defined Radio Applications. ». In FPL (Tero Rissa, Steven
J. E. Wilton et Philip Heng Wai Leong (eds.)), pages 598–601, IEEE Proceedings
of the 2005 International Conference on Field Programmable Logic and Applications
(FPL), Tampere, Finland, August 24-26, 2005.
[87] Roman Lysecky, Frank Vahid et Sheldon X.-D. Tan, « Dynamic FPGA Rou-
ting for Just-in-Time Compilation ». In Proceedings of the 41th Design Automation
Conference, DAC, 2004.
[88] Apostolos A. Kountouris et Christophe Moy, « Reconfiguration in Software Ra-
dio Systems ». In Proc. 2nd Workshop on Software Radios, (Karlsruhe, Germany),
March 2002.
[89] Gyula Rábai, Sándor Imre, József Kovács et Péter Kacsuk, « Resource Manage-
ment in Software Radio Architectures ». In Proc. 2nd Workshop on Software Radios,
(Karlsruhe, Germany), March 2002.
[90] Mehul Mehta et M. Wesseling, « Adaptive baseband sub-system for TRUST ».
In The 11th IEEE International Symposium on Personal, Indoor and Mobile Radio
Communications, , (PIMRC), vol. 1, pages 29–33, 2000.
bibliographie 199
[119] Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124, Constraints Guide.
http ://www.xilinx.com.
[120] Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124, Libraries Guide.
http ://www.xilinx.com.
[121] Cameron Patterson, « A Dynamic Module Server for Embedded Platform FP-
GAs. ». In Engineering of Reconfigurable Systems and Algorithms (Toomas P. Plaks
(ed.)), pages 31–40, CSREA Press Proceedings of the International Conference on
Engineering of Reconfigurable Systems and Algorithms, Las Vegas, Nevada, USA,
June 23 - 26, 2003.
[122] Eric Keller, « JRoute : A Run-Time Routing API for FPGA Hardware. ». In
IPDPS Workshops (José D. P. Rolim (ed.)), vol. 1800 of Lecture Notes in Computer
Science, pages 874–881, Springer Proceedings of Parallel and Distributed Processing,
IPDPS 2000 Workshops, Cancun, Mexico, May 1-5, 2000.
[123] Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124, JBits SDK, Febuary 2001.
http ://www.xilinx.com/products/software/jbits/.
[124] Cameron Patterson et Steven A. Guccione, « JBits” Design Abstractions ».
In FCCM ’01 : Proceedings of the the 9th Annual IEEE Symposium on Field-
Programmable Custom Computing Machines, (Washington, DC, USA), pages 251–
252, IEEE Computer Society, 2001.
[125] Steven A. Guccione et Delon Levi, « XBI : a Java-based interface to FPGA hard-
ware ». In Proc. SPIE Vol. 3526, Configurable Computing : Technology and Appli-
cations (John Schewel (ed.)), pages 97–102, October 1998.
[126] Steven A. Guccione, Delon Levi et Prasanna Sundararajan, « JBits : A Java-
based Interface for Reconfigurable Computing ». In 2nd Annual Military and Aeros-
pace Applications of Programmable Devices and Technologies Conference (MAPLD),
September 1999.
[127] Francisco Fons, Mariano Fons, Enrique Cantó et Mariano López, « Trigonome-
tric computing embedded in a dynamically reconfigurable cordic system-on-chip ».
In International Workshop on Applied Reconfigurable Computing, (ARC’2006),
March 2006.
[128] Steve Young, Peter Alfke, Colm Fewer, Scott McMillan, Brandon Blodget
et Delon Levi, « A High I/O Reconfigurable Crossbar Switch ». In 11th IEEE Sym-
posium on Field-Programmable Custom Computing Machines (FCCM 2003), (Los
Alamitos, CA, USA), page 3, 2003.
[129] J. Valls, M.M. Peiro, T. Sansaloni et E. Boemo, « A study about FPGA-
based digital filters ». In IEEE Workshop on Signal Processing Systems, SIPS 98,
pages 192–201, 8-10 October 1998.
[130] Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124, Virtex-4 User Guide, September
2004. http ://www.xilinx.com.
[131] Yeong-Jae Oh, Hanho Lee et Chong-Ho Lee, « Dynamic Partial Reconfigurable
FIR Filter ». In International Workshop on Applied Reconfigurable Computing, ARC
2006, pages 30–35, March 2006.
[132] Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124, XST User Guide, (Xilinx Syn-
thesis Tool). http ://www.xilinx.com.
202 bibliographie
[133] Xilinx, « Virtex FPGA Series Configuration and Readback ». Rapport, Xilinx, Inc.,
2100 Logic Drive, San Jose, CA 95124, 2002. Application Note 138.
[134] Brandon Blodget, Scott McMillan et Patrick Lysaght, « A Lightweight Ap-
proach for Embedded Reconfiguration of FPGAs ». In DATE, pages 10399–10401,
Design, Automation and Test in Europe Conference and Exposition (DATE 2003),
Munich, Germany, 3-7 March, 2003.
[135] Brandon Blodget, Philip James-Roxby, Eric Keller, Scott McMillan et Pra-
sanna Sundararajan, « A Self-reconfiguring Platform ». In FPL (Peter Y. K.
Cheung, George A. Constantinides et José T. de Sousa (eds.)), vol. 2778 of
Lecture Notes in Computer Science, pages 565–574, Springer Proceedings of Field
Programmable Logic and Application, 13th International Conference, (FPL 2003),
Lisbon, Portugal, September 1-3,, 2003.
[136] Michael Ullmann, Michael Hübner, Björn Grimm et Jürgen Becker, « An FPGA
Run-Time System for Dynamical On-Demand Reconfiguration. ». In IPDPS, IEEE
Computer Society, 26-30 April 2004.
[137] Maria George et Peter Alfke, Linear Feedback Shift Registers in Virtex Devices.
Xilinx, Inc., 2100 Logic Drive, San Jose, CA 95124, March 2000. Application Note
210.
[138] A. Benkrid, K. Benkrid et D. Crookes, « Design and Implementation of Novel
FIR Filter Architecture for Efficient Signal Boundary Handling on Xilinx VIRTEX
FPGAs ». ISVLSI, page 222, 2004.
[139] Philip James-Roxby et Brandon J. Blodget, « A study of high-performance re-
configurable constant coefficient multiplier implementations ». In SPIE proceedings
series (SPIE proc. ser.) International Society for Optical Engineering proceedings
series, vol. 4693, pages 150–161, 2002.
[140] Philip James-Roxby et Brandon J. Blodget, « A study of high-performance re-
configurable constant coefficient multiplier implementations ». In IEEE Symposium
on Field-Programmable Custom Computing Machines (FCCM), pages 335–336, 17-
19 April 2002.
[141] « Network of Excellence in Wireless Communications ». http ://newcom.ismb.it/.
[142] David Elleouet, Nathalie Julien et Dominique Houzet, « An FPGA Run-Time
System for Dynamical On-Demand Reconfiguration. ». In 20th International Pa-
rallel and Distributed Processing Symposium (IPDPS 2006), CD-ROM / Abstracts
Proceedings, 25-29 April 2006, Rhodes Island, Greece, IEEE Computer Society, 2006.
[143] Juergen Becker, Michael Huebner et Michael Ullmann, « Power Estimation
and Power Measurement of Xilinx Virtex FPGAs : Trade-Offs and Limitations ». In
SBCCI ’03 : Proceedings of the 16th symposium on Integrated circuits and systems
design, (Washington, DC, USA), page 283, IEEE Computer Society, 2003.
[144] TINA Consortium, « Principles of TINA, (Telecommunications Information Net-
work Architecture) ». Rapport, 1995.
[145] Ciaran McHale, « CORBA Explained Simply ». Rapport, October 2004.
[146] J. Bertrand, J.W. Cruz, B. Majkrzak et T. Rossano, « CORBA delays in a
software-defined radio ». IEEE Communications Magazine, vol. 40, no 2, pages 152–
155, 2002.
bibliographie 203
[147] SDR Forum, « API Position Paper System Interface Working Group ». Rapport,
2003.
[148] SDR Forum, « Request for Information - Hardware Abstraction Layer ». Rapport,
2004.
[149] Shiao-Li Tsao, Chia-Ching Lin, Chin-Lien Chiu, Hung-Lin Chou et Min-Chiao
Wang, « Design and implementation of software framework for software defined
radio system ». In IEEE 56th Vehicular Technology Conference, Proceedings, vol. 4,
pages 2395–2399, September 2002.
[150] Stefan Pees, Andreas Hoffmann, Vojin Zivojnovic et Heinrich Meyr, « LISA
- Machine Description Language for Cycle-Accurate Models of Programmable DSP
Architectures. ». In DAC, pages 933–938, 1999.
[151] Andreas Hoffmann, Oliver Schliebusch, Achim Nohl, Gunnar Braun, Oliver
Wahlen et Heinrich Meyr, « A Methodology for the Design of Application Specific
Instruction Set Processors (ASIP) using the Machine Description Language LISA. ».
In ICCAD, pages 625–630, 2001.
[152] Oliver Schliebusch, Andreas Hoffmann, Achim Nohl, Gunnar Braun et Hein-
rich Meyr, « Architecture Implementation Using the Machine Description Language
LISA. ». In ASP-DAC, pages 239–244, IEEE Proceedings of the ASPDAC 2002 /
VLSI Design 2002, Bangalore, India, 7-11 January, 2002.
[153] CEVA DSP, http ://www.ceva-dsp.com/.
[154] ACE CoSy, http ://www.ace.nl/compiler/cosy-technology.html.
[155] Xilinx, Xilinx Virtex-II Platform FPGAs : Complete Data Sheet. Xi-
linx, Inc., 2100 Logic Drive, San Jose, CA 95124, 2005. http ://di-
rect.xilinx.com/bvdocs/publications/ds031.pdf.
[156] 8th IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM
2000), 17-19 April 2000, Napa Valley, CA, Proceedings, IEEE Computer Society,
2000.
[157] 17th International Parallel and Distributed Processing Symposium (IPDPS 2003),
22-26 April 2003, Nice, France, CD-ROM/Abstracts Proceedings, IEEE Computer
Society, 2003.