224
LABORATOIRE ‘I C A R E’ EA 3050 Ingénierie des Communications en informAtique, Réseaux et Electronique sans fil Laboratoire de Recherche ‘ICARE’ EA 3050 I.U.T de Blagnac - 1, Place Georges Brassens – BP 60073 31 703 Blagnac cedex Tél. : + 33 (0) 5 62 74 75 75 Fax : + 33 (0) 5 62 74 75 87 Léonard de Vinci M. P. FRAISSE Maître de Conférences-HDR à l’Université de Montpellier II Examinateurs : M. A. CAZARRE Professeur à l’Université de Toulouse III MEMOIRE de THESE DOCTORAT de L’UNIVERSITE de TOULOUSE II Ecole Doctorale ‘Génie Electrique, Electronique et Télécommunication’ Spécialité : Electronique Présenté par Madame Céline GUILLEMINOT Maître ès Sciences ‘ÉTUDE ET INTÉGRATION NUMÉRIQUE D’UN SYSTÈME MULTICAPTEURS AMRC DE TÉLÉCOMMUNICATION BASÉ SUR UN PROTOTYPE VIRTUEL UTILISANT LE LANGAGE DE HAUT NIVEAU VHDL-AMS’ __________ Soutenue le 01 décembre 2005 devant le jury composé de : Rapporteurs : M. JB BEGUERET Maître de Conférences-HDR à l’Université de Bordeaux I M. T. VAL Professeur à l’Université de Toulouse II Directeur : M. JJ MERCIER Professeur à l’Université de Toulouse II Co-directeur : M. L. ANDRIEUX Maître de Conférences à l’Université de Toulouse II Invité : M. E. CAMPO Maître de Conférences – HDR à l’Université de Toulouse II

83240798 These Celine

Embed Size (px)

Citation preview

Page 1: 83240798 These Celine

LABORATOIRE ‘I C A R E’ EA 3050

Ingénierie des Communications en informAtique, Réseaux et Electronique sans fil

Laboratoire de Recherche ‘ICARE’ EA 3050 I.U.T de Blagnac - 1, Place Georges Brassens – BP 60073 31 703 Blagnac cedex

Tél. : + 33 (0) 5 62 74 75 75 Fax : + 33 (0) 5 62 74 75 87

Léonard de Vinci M. P. FRAISSE Maître de Conférences-HDR à l’Université de Montpellier II

Examinateurs : M. A. CAZARRE Professeur à l’Université de Toulouse III

MEMOIRE de THESE

DOCTORAT de L’UNIVERSITE de TOULOUSE II

Ecole Doctorale

‘Génie Electrique, Electronique et Télécommunication’

Spécialité : Electronique

Présenté par Madame Céline GUILLEMINOT

Maître ès Sciences ‘ÉTUDE ET INTÉGRATION NUMÉRIQUE D’UN SYSTÈME MULTICAPTEURS

AMRC DE TÉLÉCOMMUNICATION BASÉ SUR UN PROTOTYPE VIRTUEL

UTILISANT LE LANGAGE DE HAUT NIVEAU VHDL-AMS’

__________

Soutenue le 01 décembre 2005 devant le jury composé de : Rapporteurs : M. JB BEGUERET Maître de Conférences-HDR à l’Université de Bordeaux I

M. T. VAL Professeur à l’Université de Toulouse II Directeur : M. JJ MERCIER Professeur à l’Université de Toulouse II Co-directeur : M. L. ANDRIEUX Maître de Conférences à l’Université de Toulouse II Invité : M. E. CAMPO Maître de Conférences – HDR à l’Université de Toulouse II

Page 2: 83240798 These Celine

SOMMAIRE

-I-

TABLE DES MATIERES INTRODUCTION GENERALE ............................................................................................ 1 I CHAPITRE I : Problématique de la conception système............................................. 7 I.1 Etat de l’art de la conception système............................................................................ 9

I.1.1 La conception système dans le contexte industriel .................................................... 9 I.1.1.1 Enjeux et constatations....................................................................................... 9 I.1.1.2 Méthodologie « classique » du développement ............................................... 12

I.1.1.2.1 Flot de conception traditionnelle.............................................................. 12 I.1.1.2.2 Cycle de conception en V......................................................................... 13 I.1.1.2.3 Vérification et prototypage....................................................................... 15

I.1.2 Le prototypage virtuel .............................................................................................. 16 I.1.3 Les méthodologies de conception actuelles ............................................................. 17

I.1.3.1 Les changements de paradigmes ...................................................................... 17 I.1.3.2 Evolution des coûts [ITRS03] .......................................................................... 18 I.1.3.3 Le prototypage virtuel par le CODESIGN....................................................... 20

I.2 Solution technologiques actuelles ................................................................................ 20 I.2.1 Les cibles de conception existantes [ROBE02] ....................................................... 21

I.2.1.1 Les ASICs ........................................................................................................ 21 I.2.1.1.1 Les circuits semi-spécifiques ou ASIC pré-diffusés ................................ 21 I.2.1.1.2 Les circuits spécifiques ou ASIC pré-caractérisés ................................... 21

I.2.1.2 Les FPGA......................................................................................................... 21 I.2.1.3 Les DSP............................................................................................................ 22 I.2.1.4 Les SoCs........................................................................................................... 23

I.2.2 Le marché actuel des composants ............................................................................ 23 I.2.2.1 Famille de circuits et applications.................................................................... 23 I.2.2.2 Architecture des composants programmables.................................................. 25

I.3 Comparaison des langages et outils de conception ...................................................... 25 I.3.1 Introduction .............................................................................................................. 25 I.3.2 Les outils issus du milieu logiciel ............................................................................ 26 I.3.3 Les outils issus du milieu CAO................................................................................ 27

I.3.3.1 Simulateur Analogique..................................................................................... 27 I.3.3.2 Simulateur numérique ...................................................................................... 28

I.3.3.2.1 Le VERILOG : Historique et description ................................................ 28 I.3.3.2.2 VHDL : Historique et description ............................................................ 29

I.3.3.3 Les simulateurs mixtes ..................................................................................... 29 I.3.3.3.1 Description d’un langage propriétaire MAST.......................................... 30 I.3.3.3.2 Description d’un langage normé : VHDL-AMS...................................... 30 I.3.3.3.3 Les Outils supportant la simulation mixte en VHDL-AMS..................... 30

I.3.3.3.3.1 historique.............................................................................................. 30 I.3.3.3.3.2 Les outils à interface graphique ........................................................... 31 I.3.3.3.3.3 Comparaison des différents outils........................................................ 31

I.3.3.4 Méthodologies et outil de conception retenus.................................................. 32 I.3.3.4.1 Méthodologie m1 avec un langage propriétaire ....................................... 33 I.3.3.4.2 Méthodologie m2 avec VHDL-AMS....................................................... 34 I.3.3.4.3 Comparaison des deux méthodologies..................................................... 34

I.4 Bilan ............................................................................................................................. 35

Page 3: 83240798 These Celine

SOMMAIRE

-II-

II CHAPITRE II Vers la conception d’un système de télécommunications à étalement de spectre................................................................................................................................. 37 II.1 Présentation du cahier des charges............................................................................... 39 II.2 Les systèmes de communication existants ................................................................... 39

II.2.1 Communications Radiofréquences dans les bandes 433 & 868 MHz. ................ 40 II.2.2 Les réseaux personnels sans fil (WPAN : Wireless Personnal Area Network) ... 40

II.2.2.1 Bluetooth [ELHO05]........................................................................................ 40 II.2.2.2 Ultra Wide Band [BLIN04][BRAC05] ............................................................ 40 II.2.2.3 ZigBee .............................................................................................................. 41

II.2.3 Les réseaux locaux sans fil (WLAN : Wireless Local Area Network) ................ 41 II.2.3.1 La norme 802.11 .............................................................................................. 41 II.2.3.2 Le standard HiperLAN II [BAUD02] .............................................................. 42

II.2.4 Les réseaux métropolitains sans fil (WMAN : Wireless Metropolitan Area Network) et les réseaux étendus (WWAN : Wireless Wide Area Network) ....................... 42

II.2.4.1 WiMax.............................................................................................................. 42 II.2.4.2 MBWA............................................................................................................. 42 II.2.4.3 Les réseaux mobiles (WWAN) ........................................................................ 42

II.2.5 Contraintes du milieu clos.................................................................................... 43 II.2.5.1 Les interférences radio ..................................................................................... 43 II.2.5.2 Le nombre d’utilisateurs................................................................................... 43

II.2.6 Comparatif des technologies de réseaux sans fil.................................................. 43 II.3 Description des éléments d’une chaîne de communication numérique ....................... 44

II.3.1 Chaîne de communication.................................................................................... 45 II.3.2 Le codage en ligne................................................................................................ 45 II.3.3 Choix d’une modulation numérique..................................................................... 46

II.3.3.1 Quelques définitions utiles ............................................................................... 46 II.3.3.1.1 Débit binaire............................................................................................. 46 II.3.3.1.2 Taux d’erreur sur les bits.......................................................................... 46 II.3.3.1.3 L’efficacité spectrale ................................................................................ 47 II.3.3.1.4 Définition de l’efficacité en puissance Eb/No.......................................... 47 II.3.3.1.5 La simplicité de réalisation ...................................................................... 48

II.3.3.2 Modulation retenue .......................................................................................... 48 II.3.4 Le Canal ............................................................................................................... 49

II.3.4.1 Le canal AWGN............................................................................................... 49 II.3.4.2 Le canal multi-trajets........................................................................................ 50

II.3.5 Les méthodes d’accès........................................................................................... 51 II.3.5.1 Définition des méthodes d’accès...................................................................... 52

II.3.5.1.1 Le FDMA ................................................................................................. 52 II.3.5.1.2 Le TDMA................................................................................................. 52 II.3.5.1.3 Le CDMA................................................................................................. 53

II.3.5.2 Critère de choix sur les méthodes d’accès ....................................................... 54 II.3.6 L’étalement de spectre ......................................................................................... 54

II.3.6.1 Principe............................................................................................................. 54 II.3.6.2 L’étalement de spectre par séquence directe.................................................... 56

II.3.6.2.1 Le principe de l’étalement de spectre par séquence directe ..................... 56 II.3.6.2.2 Les séquences pseudo-aléatoires.............................................................. 56 II.3.6.2.3 L’étalement à l’émission .......................................................................... 58 II.3.6.2.4 Le désétalement par corrélation ............................................................... 60

II.4 Caractéristiques retenues pour le système désiré ......................................................... 61

Page 4: 83240798 These Celine

SOMMAIRE

-III-

II.5 Description fonctionnelle des fonctions à modéliser ................................................... 63 II.5.1 Principe de la modulation différentielle ............................................................... 64 II.5.2 Modélisation du générateur de PN Code.............................................................. 64

II.5.2.1 Principe de la génération des M –séquences.................................................... 64 II.5.2.2 Simulation sous le logiciel SABER ................................................................. 65

II.5.3 Modélisation de la fonction corrélation ............................................................... 68 II.5.3.1 Corrélation à l’émission ................................................................................... 68 II.5.3.2 Corrélation à la réception ................................................................................. 69

II.5.4 Modélisation de l’organe de synchronisation....................................................... 70 II.5.4.1 Problématique de la synchronisation d’un organe à étalement de spectre....... 70 II.5.4.2 Principes de mise en œuvre de la fonction acquisition .................................... 71

II.5.4.2.1 Mise en œuvre de la fonction d’acquisition ............................................. 72 II.5.4.2.1.1 L’acquisition par corrélation .............................................................. 72 II.5.4.2.1.2 L’acquisition par filtrage adapté......................................................... 73 II.5.4.2.1.3 L’organe de décision .......................................................................... 74

II.5.4.2.2 Les principaux organes d’acquisition....................................................... 74 II.5.4.2.2.1 Détecteur du maximum de vraisemblance.......................................... 74 II.5.4.2.2.2 SERIE ................................................................................................. 75

II.5.4.2.2.2.a La structure Single Dwell time .................................................... 76 II.5.4.2.2.2.b Multiple Dwell time..................................................................... 76

II.5.4.2.2.3 RASE : Rapid Acquisition by Sequential Estimation ........................ 77 II.5.4.3 Etude /comparaison théoriques des boucles de poursuite ................................ 78

II.5.4.3.1 DLL Cohérente......................................................................................... 79 II.5.4.3.2 La DLL Non Cohérente............................................................................ 80 II.5.4.3.3 La TDL (The Tau Dither Loop) ............................................................... 80 II.5.4.3.4 Comparatif des différents modèles de boucles de poursuite .................... 82

II.5.4.4 Choix de l’organe de synchronisation.............................................................. 83 II.5.4.4.1 Simulation de l’organe SERIE ................................................................. 83 II.5.4.4.2 Organe RASE........................................................................................... 85

II.5.4.5 Comparaison des boucles ................................................................................. 86 II.5.4.5.1 Gain en traitement .................................................................................... 86 II.5.4.5.2 Temps d’acquisition ................................................................................. 87 II.5.4.5.3 Conclusion sur le choix des organes de synchronisation ......................... 88

II.6 Conclusion.................................................................................................................... 88 III CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau........................................................................................................... 91 III.1 Introduction .................................................................................................................. 93 III.2 Le langage VHDL-AMS .............................................................................................. 94

III.2.1 Historique ............................................................................................................. 94 III.2.2 Choix de ce langage ............................................................................................. 94 III.2.3 Description du langage [VACH02][HERV02] .................................................... 94

III.2.3.1 Le langage VHDL ........................................................................................ 94 III.2.3.1.1 Les différentes descriptions possibles ...................................................... 94 III.2.3.1.2 La structure fondamentale d’un modèle VHDL....................................... 95 III.2.3.1.3 Les signaux............................................................................................... 96 III.2.3.1.4 Le processus ............................................................................................. 96

III.2.3.2 Le langage VHDL-AMS .............................................................................. 98 III.2.3.2.1 Description du langage............................................................................. 98

Page 5: 83240798 These Celine

SOMMAIRE

-IV-

III.2.3.2.2 Les différentes classes d’objets ................................................................ 99 III.2.3.2.2.1 Terminal et nature ............................................................................. 99 III.2.3.2.2.2 Les quantités...................................................................................... 99 III.2.3.2.2.3 Le critère de solvabilité ................................................................... 100

III.3 Codage en langage VHDL-AMS de l’émetteur/récepteur ......................................... 100 III.3.1 Fonctions à implanter et caractéristiques ........................................................... 100 III.3.2 Les étages numériques ....................................................................................... 103

III.3.2.1 Description de l’émetteur ........................................................................... 103 III.3.2.1.1 Générateur de PN-Code ......................................................................... 103 III.3.2.1.2 Encodeur................................................................................................. 105 III.3.2.1.3 Fonction « Multiplieur » ........................................................................ 105 III.3.2.1.4 Résultats de simulation........................................................................... 106

III.3.2.2 Description du récepteur ............................................................................ 107 III.3.2.2.1 Récepteur sans synchronisation ............................................................. 107

III.3.2.2.1.1 Désétalement en réception .............................................................. 108 III.3.2.2.1.2 Test de donnée................................................................................. 109 III.3.2.2.1.3 Décodeur différentiel....................................................................... 110 III.3.2.2.1.4 Résultats de simulations .................................................................. 111

III.3.2.2.2 Synchronisation...................................................................................... 112 III.3.2.2.3 L’organe de poursuite (DLL) ................................................................. 112

III.3.2.2.3.1 Le Discriminateur............................................................................ 113 III.3.2.2.3.2 Le Filtre numérique......................................................................... 115 III.3.2.2.3.3 L’oscillateur numérique controlé en tension................................... 119 III.3.2.2.3.4 Le Générateur de PN-Code du récepteur ........................................ 122

III.3.2.2.4 Synchronisation à N branches ................................................................ 123 III.3.2.2.4.1 L’organe de sélection ...................................................................... 124 III.3.2.2.4.2 Le générateur de PN-Code adapté à la synchronisation N branches. 126 III.3.2.2.4.3 Résultats de simulation du récepteur en bande de base .................. 127

III.3.3 Description des parties analogiques ................................................................... 128 III.3.3.1 Description des parties radio-fréquences ................................................... 128

III.3.3.1.1 La modulation et démodulation BSPK................................................... 128 III.3.3.1.1.1 La modulation BPSK ...................................................................... 128 III.3.3.1.1.2 La démodulation BPSK................................................................... 129

III.3.3.1.2 Les Filtres analogiques........................................................................... 130 III.3.3.1.2.1 Choix des paramètres des filtres analogiques ................................. 130 III.3.3.1.2.2 Description des filtres implantés en VHDL-AMS .......................... 130

III.3.3.2 Le canal AWGN (Additif White Gaussian Noise)..................................... 130 III.3.3.2.1 Génération d’un bruit blanc Gaussien.................................................... 131 III.3.3.2.2 Le délai dans le canal ............................................................................. 132 III.3.3.2.3 Implantation d’un rapport signal sur bruit paramétrable........................ 133

III.3.4 Description du Convertisseur Analogique / Numérique .................................... 135 III.4 Résultats de simulation............................................................................................... 135

III.4.1 Simulation de la fonction d’autocorrélation....................................................... 135 III.4.2 Simulation de la chaîne complète Emetteur/Récepteur...................................... 136

IV CHAPITRE 4 : Etude et développement de la maquette Emetteur-Récepteur . 139 IV.1 Introduction ................................................................................................................ 141 IV.2 Cible d’implantation................................................................................................... 141

Page 6: 83240798 These Celine

SOMMAIRE

-V-

IV.2.1 Description du FPGA......................................................................................... 142 IV.2.2 Le logiciel de commande Quartus II .................................................................. 143 IV.2.3 Etapes d’implantation......................................................................................... 143

IV.3 Les modules périphériques spécifiques développés................................................... 144 IV.3.1 Paramétrage du canal ......................................................................................... 145

IV.3.1.1 Le retard dans le canal................................................................................ 145 IV.3.1.2 Génération du bruit dans le canal ............................................................... 147

IV.3.2 Paramétrage du débit .......................................................................................... 148 IV.3.3 Module de calcul de TEB................................................................................... 148 IV.3.4 Interface logicielle.............................................................................................. 149

IV.4 Résultats de synthèse.................................................................................................. 150 IV.5 Evaluation des performances mesurées...................................................................... 151

IV.5.1 Test en milieu non bruité.................................................................................... 152 IV.5.1.1 Emetteur-récepteur Simple Branche .......................................................... 152

IV.5.1.1.1 Mesures pour différents longueurs de codes.......................................... 152 IV.5.1.1.2 Mesures pour différents délais ............................................................... 152

IV.5.1.2 Emetteur-récepteur avec synchronisation N branches ............................... 153 IV.5.2 Mesures en milieu bruité .................................................................................... 155

IV.6 Bilan ........................................................................................................................... 156 CONCLUSION ET PERSPECTIVES ............................................................................... 159 REFERENCES ..................................................................................................................... 163 ANNEXES............................................................................................................................. 170 ANNEXES 1 : Fichier Test Bench......................................................................................... 172 ANNEXE 2. Fonctions numériques de l’émetteur..........................Erreur ! Signet non défini. ANNEXES 3 . Fonctions transmission .................................................................................. 185 ANNEXE.4. Fonctions du récepteur...................................................................................... 189 GLOSSAIRE......................................................................................................................... 211

Page 7: 83240798 These Celine

SOMMAIRE

-VI-

Listes des figures Figure 0. 1 Exemple des besoins en communication sans fil en milieu clos.............................. 3

Figure I. 1. Evolution des bénéfices d’une entreprise en fonction de l’évolution dans le temps.................................................................................................................................................. 10 Figure I. 2. Evolution et prévision de la complexité en terme de conception et de technologie, selon le consortium de fabrication de puces SEMATECH [SEMAT] ...................................... 11 Figure I. 3. Coût total de conception pour une méthodologie RTL [ITRS03]. ........................ 11 Figure I. 4. Flot de conception d’un circuit intégré classique................................................. 12 Figure I. 5. Cycle de conception en V. ..................................................................................... 14 Figure I. 6. Effet de prototypage sur la conception d’un système monopuce. ......................... 16 Figure I. 7. Représentation des changements de paradigmes avec la complexité des composants [BORE99]............................................................................................................. 18 Figure I. 8. Impact des technologies de conception sur les coûts de production. ................... 19 Figure I. 9. Approche du CODESIGN pour la fabrication d’un prototype. ............................ 20 Figure I. 10. Principe de l’architecture d’un circuit FPGA [MLYN01].................................. 22 Figure I. 11. Intégration d’une carte électronique (exemple de fonction de carte mère)........ 23 Figure I. 12. Description générique d’un système embarqué .................................................. 25 Figure I. 13. Description du passage des modèles de Simulink en modèle VHDL. ................. 27 Figure I. 14. Description de la méthodologie de conception N°1 : m1 ................................... 33 Figure I. 15. Description de la méthodologie de conception N°2 : m2 ................................... 34

Figure II. 1. Représentation schématique d’un système multi-capteurs pour un environnement clos ........................................................................................................................................... 39 Figure II. 2. Principaux éléments d’une chaîne de transmission numérique. ......................... 45 Figure II. 3. Représentation des codes sources selon leur densité spectrale........................... 45 Figure II. 4. Exemple de valeurs de taux d’erreurs par bit. .................................................... 47 Figure II. 5. Modèle du canal AWGN ...................................................................................... 49 Figure II. 6. Représentation d’une distribution gaussienne..................................................... 50 Figure II. 7. Représentation du principe du canal multi-trajets .............................................. 51 Figure II. 8 .Représentation temps –fréquence du FDMA....................................................... 52 Figure II. 9. Représentation temps –fréquence du TDMA ....................................................... 53 Figure II. 10. Représentation temps / fréquence du CDMA..................................................... 53 Figure II. 11. Spectre du signal étalé en FH-SS. ..................................................................... 55 Figure II. 12. Spectre du signal étalé en DS-SS....................................................................... 55 Figure II. 13. Représentation schématique des principales fonctions ..................................... 56 Figure II. 14. Exemple d’un codage par étalement de spectre par séquence directe. ............. 57 Figure II. 15. Fonction d'auto corrélation pour N=15 (Ts=375ns, Tc=25ns). ....................... 58 Figure II. 16. Principe de l’étalement de spectre à l’émission. ............................................... 58 Figure II. 17. Densité spectrale de puissance du signal de donnée et du signal de donnée étalé (N=3)........................................................................................................................................ 60 Figure II. 18. Principe de la décorrélation à la réception....................................................... 60 Figure II. 19. Schéma de principe global du système Emetteur/Récepteur ............................. 62 Figure II. 20. Principe des fonctions à modéliser.................................................................... 63 Figure II. 21. Générateur de séquence rebouclé de type Galois. ............................................ 65 Figure II. 22.Générateur Galois avec les modules de configuration....................................... 66 Figure II. 23. Exemple d’un modèle de générateur de Galois. ................................................ 67 Figure II. 24. Modèle de l’émetteur avec le corrélateur.......................................................... 68 Figure II. 25. Principales formes d’ondes de l’émetteur avec le corrélateur.......................... 69

Page 8: 83240798 These Celine

SOMMAIRE

-VII-

Figure II. 26. Schéma de principe pour la corrélation numérique en réception. .................... 69 Figure II. 27. Principales formes d’ondes pour le corrélateur au niveau du récepteur.......... 70 Figure II. 28. Schéma de principe de l’organe « Acquisition/ poursuite ».............................. 71 Figure II. 29. Organigramme des différentes possibilités d’acquisition. ................................ 71 Figure II. 30. Synchronisation par corrélation........................................................................ 72 Figure II. 31. Synchronisation par filtrage adapté. ................................................................. 73 Figure II. 32. Représentation schématique de l’organe de décision. ...................................... 74 Figure II. 33. Principe d’un détecteur de vraisemblance. ....................................................... 75 Figure II. 34. Principe d’une détection par maximum de vraisemblance avec corrélateur. ... 75 Figure II. 35. Synchronisation SERIE simple branche. ........................................................... 76 Figure II. 36. Synchronisation SERIE N branches. ................................................................. 76 Figure II. 37. Principe de la synchronisation RASE................................................................ 77 Figure II. 38. Schéma de principe d’une boucle de poursuite. ................................................ 78 Figure II. 39. Schéma de principe de la DLL cohérente.......................................................... 79 Figure II. 40. Schéma de principe d’une DLL non cohérente.................................................. 80 Figure II. 41. Schéma de principe de la TDL........................................................................... 81 Figure II. 42. Modèle de la synchronisation SERIE. ............................................................... 84 Figure II. 43. Signaux en sortie des corrélateurs et signal de contrôle................................... 85 Figure II. 44. Schéma fonctionnel de la structure RASE. ........................................................ 85 Figure II. 45. Sortie du corrélateur pour un rapport SNR=-2,9 dB et un seuil de 1,5V.......... 86 Figure II. 46. Comparaison du gain en traitement pour les structures d’acquisition SERIE et RASE......................................................................................................................................... 87 Figure II. 47. Mesure du temps d’acquisition pour les 2 structures d’acquisition.................. 88

Figure III. 1. L’organisation d’un modèle VHDL.................................................................... 95 Figure III. 2. Structure d’un fichier VHDL.............................................................................. 97 Figure III. 3. Illustration de la quantité de branche pour le domaine électrique.................. 100 Figure III. 4. Synoptique du modèle de l’émetteur/ récepteur à étalement de spectre. ......... 101 Figure III. 5. Synoptique de codage du système émetteur/récepteur en VHDL-AMS............ 102 Figure III. 6. Schéma d’implantation de l’émetteur............................................................... 103 Figure III. 7. Schéma de principe du générateur de codes aléatoires ................................... 104 Figure III. 8. Organigramme du codage du générateur de PN-Code.................................... 104 Figure III. 9. Organigramme pour la fonction Encodeur différentiel ................................... 105 Figure III. 10. Résultats de simulation de l’organe Emetteur ............................................... 106 Figure III. 11. Schéma de l’implantation du récepteur simple branche. ............................... 107 Figure III. 12. Schéma de l’intégrateur/bloqueur.................................................................. 108 Figure III. 13. Organigramme de la fonction intégration/Blocage. ...................................... 109 Figure III. 14. Organigramme de la fonction test donnée. .................................................... 110 Figure III. 15. Organigramme du décodeur différentiel. ....................................................... 110 Figure III. 16. Résultats de simulation sous le logiciel ModelSim. ..................................... 111 Figure III. 17. Synoptique de la fonction Synchronisation simple (une branche). ................ 112 Figure III. 18. Synoptique de l’organe de poursuite.............................................................. 113 Figure III. 19. Simulation des principaux signaux de l’organe de poursuite sous ModelSim................................................................................................................................................. 114 Figure III. 20. Définition d’un filtrage numérique................................................................. 115 Figure III. 21. Structure du filtre de boucle numérique......................................................... 117 Figure III. 22. (a).Réponse impulsionnelle h(t) ..................................................................... 117 Figure III. 23. Processus pour le filtre numérique de la boucle à verrouillage de délai. ..... 118 Figure III. 24. Simulation d’un filtre numérique RII. ............................................................ 118 Figure III. 25. Schéma de principe pour l’oscillateur numérique contrôlé. .......................... 119

Page 9: 83240798 These Celine

SOMMAIRE

-VIII-

Figure III. 26. Evolution du registre du NCO pour deux valeurs d’entrée, dans le cas d’un registre de 4 bits. .................................................................................................................... 120 Figure III. 27. Représentation du bit de poids fort pour deux cas du mot W......................... 120 Figure III. 28. Organigramme de la fonction NCO. .............................................................. 121 Figure III. 29. Simulation de l’organe NCO en langage VHDL............................................ 122 Figure III. 30. Structure du générateur de PN-Code de récepteur........................................ 122 Figure III. 31. Représentation de la fonction d’autocorrélation pour chaque branche de synchronisation (Cas N=7) décalée d’un temps chip. ........................................................... 123 Figure III. 32. Structure du récepteur pour une synchronisation comptant N branches....... 124 Figure III. 33. Description du fonctionnement de l’organe sélection.................................... 125 Figure III. 34. Simulation de l’organe déphaseur et du nouveau générateur de PN-Code... 126 Figure III. 35. Organigramme du générateur de PN-Code pour une synchronisation N branches. ................................................................................................................................ 126 Figure III. 36. Simulation du récepteur dans le cas d’une synchronisation 15 branches. .... 127 Figure III. 37. Schéma global des étages radio-fréquences pour l’émission et la réception.128 Figure III. 38. Organigrammes de fonctions composant la modulation BPSK. .................... 128 Figure III. 39. Résultats de simulation du modulateur BPSK................................................ 129 Figure III. 40. Démodulateur BPSK utilisé à la réception. ................................................... 129 Figure III. 41. Résultats de simulation en sortie du démodulateur BPSK. ............................ 129 Figure III. 42. Description fonctionnelle du module du canal AWGN. ................................. 131 Figure III. 43. Organigramme de la génération d’un bruit blanc gaussien. ......................... 132 Figure III. 44. Densité de probabilité à l’aide du modèle VHDL-AMS et du modèle mathématique sous MATLAB. ................................................................................................ 132 Figure III. 45. Structure interne du canal AWGN paramétrable........................................... 133 Figure III. 46. Simulation des différents signaux du module « CANAL AWGN ». ................ 134 Figure III. 47. Représentation du bruit gaussien avec différents niveaux de bruits. ............. 134 Figure III. 48. Fonction d’autocorrélation théorique et simulée pour N=15........................ 136 Figure III. 49. Résultats de simulation des principaux signaux de l’émetteur/récepteur. ..... 137

Figure IV. 1. Carte de développement NIOS EXCALIBUR. .................................................. 142 Figure IV. 2. Méthodologie pour un FPGA de la famille ALTERA ....................................... 143 Figure IV. 3. Synoptique du système de tests du FPGA......................................................... 144 Figure IV. 4 : Représentation des différents délais commandés dans le canal. .................... 145 Figure IV. 5 : Schéma du bloc retard_canal.......................................................................... 146 Figure IV. 6: Description du composant altshift (a) et circuit associé(b) (Depth =8,with=0)................................................................................................................................................ 146 Figure IV. 7 : Chronogramme des signaux émetteur/récepteur avec retard programmable 147 Figure IV. 8. Circuit analogique réalisant la fonction bruit.................................................. 148 Figure IV. 9. Capture d’écran de l’interface graphique de commande FPGA. .................... 149 Figure IV. 10. Occupation en nombres de cellulles des principales fonctions de l’émetteur (a) et du récepteur (b). ................................................................................................................. 151 Figure IV. 11. Chronogrammes mesurés pour différentes longueurs de code N=7,N=15 et N= 31...................................................................................................................................... 152 Figure IV. 12. Chronogramme système corrélé dans le cas sel =11. .................................... 152 Figure IV. 13. Chronogramme système non corrélé. ............................................................. 153 Figure IV. 14. Représentation du temps d’accrochage(TA) et de la latence (TL). ................. 153 Figure IV. 15. Chronogramme des signaux de synchronisation (retard canal seul)............. 154 Figure IV. 16. Chronogramme du mot k_out pour un canal retardé de 8Tc. ........................ 154 Figure IV. 17. Visualisation des effets d’un niveau de bruit de 50mV en sortie du canal. .... 155 Figure IV. 18. Chronogramme du système avec une tension de bruit de 1V. ........................ 156

Page 10: 83240798 These Celine

SOMMAIRE

-IX-

Figure IV. 19. Mesure de TEB du récepteur simple implanté sur le FPGA. ......................... 156 Figure 0. 2 . Architecture en couches du modèle OSI........................................................... 162

Page 11: 83240798 These Celine

SOMMAIRE

-X-

Page 12: 83240798 These Celine

INTRODUCTION GENERALE

-1-

INTRODUCTION GENERALE

Page 13: 83240798 These Celine

INTRODUCTION GENERALE

-2-

Page 14: 83240798 These Celine

INTRODUCTION GENERALE

-3-

A l’heure actuelle, le marché des composants électroniques est de plus en plus complexe. En effet, les systèmes électroniques peuvent comprendre au sein d’une même puce aussi bien des technologies numériques et analogiques exigeant des arbitrages matériel–logiciel que des fonctions mécaniques, optiques ou biochimiques. Les concepteurs d’aujourd’hui doivent alors gérer des systèmes qui ne sont plus exclusivement électroniques, mais pluridisciplinaires. Les développeurs doivent donc concevoir des circuits hétérogènes (analogique-numérique, multiples domaines d’applications, matériel/logiciel…) qui demande un ensemble de compétences difficiles à réunir au sein d’une même équipe de concepteurs.

A ces difficultés de conception s’ajouteront les contraintes toujours plus fortes du marché actuel, qui poussent à réduire le temps de conception et de mise sur le marché. Ces constations impliquent la mise en œuvre de nouvelles technologies de conception permettant de fiabiliser et de diminuer le cycle de conception. Dès lors, industriels et laboratoires de recherche ont décidé de mener des recherches conjointes, qui ont vu l’émergence de plateformes de prototypage virtuel. Dans tous les domaines de l’industrie : aéronautique, automobile, électronique grand public, la prise en compte des critères de conception toujours plus nombreux impose de multiplier les angles de vision d’un produit. Les prix de conception de prototype, jusqu’alors réels, sont en effet considérables. Dès lors, les avantages du prototype virtuel sont évidents : les performances des simulations mixtes numérique-analogique et des outils graphiques permettent de produire un prototype virtuel dans des délais plus courts, et à un coût plus faible que celui du prototype réel.

Parallèlement, l’évolution de l’électronique numérique a permis ces dernières années une expansion rapide des télécommunications sans fil dans le domaine spatial ou dans la téléphonie mobile. Dernièrement, les besoins en systèmes fonctionnant dans les espaces clos ont beaucoup progressé (cf. Figure 0.1) ; la multiplication des systèmes électroniques au sein de l’habitat ou du véhicule automobile par exemple ont nécessité le développement de systèmes de communication adaptés pour relier les calculateurs, les capteurs et les actionneurs répartis dans un espace restreint. Ces systèmes permettent de limiter les câblages et par conséquent d’augmenter la souplesse d’utilisation.

Figure 0. 1 Exemple des besoins en communication sans fil en milieu clos.

Les travaux présentés dans ce mémoire s’inscrivent dans la volonté de développer un prototype mixte de communication sans fil. Son rôle est de surveiller, administrer et commander un espace clos basé sur un système multicapteurs. Le système de communication sera donc capable de transmettre aussi bien des données à faibles débits (inférieurs à quelques

Besoins et applications

Habitat Automobile Médecine

• Soins de première urgence • Surveillance à domicile

• Développement domotique • Téléphone • Centrale d’alarme • Industrie

Prototypage virtuel

• Communication vers Internet • Connaissance en temps réel de paramètres (pression des pneus , température moteur)

Page 15: 83240798 These Celine

INTRODUCTION GENERALE

-4-

kbit/s) de type capteur de température, de présence, que des données nécessitant de forts débits dans le cas d’une transmission de voix ou de données vidéo. La technique de communication qui a été retenue est celle par étalement de spectre par séquence directe (DS-SS) dont les propriétés apportent certains avantages pour un environnement clos. Des travaux antérieurs [BOUR00] [MELE01] ont permis, à l’aide du logiciel de simulation comportementale SABER de modéliser le système communicant. Une étude du modèle en environnement idéal a validé les différentes fonctions du système mixte. Par la suite, des travaux complémentaires ont permis une implantation ASIC des fonctions d’étalement et de désétalement seules.

Les travaux présentés dans ce mémoire constituent une continuité directe des travaux précédents. Notre souci est de répondre aux besoins actuels de la conception système par ordinateur, que sont l’optimisation, et la fiabilisation du produit au niveau de la conception assistée par ordinateur. Dans ce cadre, notre démarche de développement dans cette thèse repose sur une plateforme de prototypage virtuel utilisant un langage de haut niveau, permettant de décrire la conception de la totalité des circuits mixtes analogique-numérique tant en émission qu’en réception. Pour cela, nous avons axé nos recherches sur la description des fonctions analogiques –numériques en vue d’une intégration sur un circuit programmable.

Une première partie de ce mémoire présente les enjeux dans le milieu industriel de la conception. Nous décrirons tout d’abord les méthodologies classiques de développement et les différentes techniques de vérification en détaillant plus particulièrement celle par prototypage virtuel. Ces méthodes ne correspondant plus au marché, nous définirons les méthodologies de conception actuelles. Après avoir dressé l’état de la conception système, nous listerons les cibles matérielles de conception. Nous confronterons deux types de cibles en terme d’application et d’architecture, pour retenir celle qui correspond le mieux à la réalisation d’un prototype. Nous définirons alors l’outil logiciel de conception adéquat pour un système mixte.

La seconde partie de ce mémoire présente le cahier des charges du système multicapteurs. Après une étude sur les systèmes de communication existants, nous comparons les caractéristiques techniques d’une chaîne de communication numérique afin de justifier les solutions de modulations et de codage retenues pour la réalisation de notre système. Nous accorderons un intérêt particulier à la méthode d’accès au canal. Nous serons donc en mesure de proposer un schéma fonctionnel du modèle émetteur/récepteur. Une étude complémentaire fera état de diverses techniques de synchronisation et poursuite. Plus particulièrement, nous comparerons différentes architectures de synchronisation et poursuite en environnement bruité et nous en définirons leurs performances.

Après avoir établi l’architecture des différents organes de notre système de communication émetteur/récepteur, les étages numériques et analogiques sont présentés dans la troisième partie de ce mémoire. Pour cela, nous aurons à définir le langage de haut niveau HDL (High Description Language) pour le codage des fonctions numériques et analogiques. A partir de ce langage, nous présenterons les différents fonctions numériques et analogiques mises en jeu tant au niveau de l’émetteur que du récepteur : encodage, générateur de PN-Code, fonctions étalement/désétalement, organe de poursuite, boucle à verrouillage de délai, canal, modulation/démodulation. Les simulations fonctionnelles nous permettront de choisir la topologie des étages numériques et analogiques, et de fixer l’architecture finale de notre modèle.

Disposant alors des fichiers sources, la dernière partie de ce mémoire portera sur la réalisation d’une maquette émetteur/récepteur en bande de base. Nous définirons tout d’abord la cible de conception choisie et la procédure de conception pour un circuit FPGA. Nous

Page 16: 83240798 These Celine

INTRODUCTION GENERALE

-5-

présenterons le synoptique de notre platine de tests et développerons plus particulièrement les modules spécifiques associés. Après avoir indiqué les résultats de synthèse, nous évaluerons les performances en milieu idéal (non bruité) ainsi qu’en milieu bruité. Nous mesurerons plus particulièrement la latence de notre circuit en fonction des séquences du code d’étalement et le taux d’erreur sur le bit associé.

Page 17: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-6-

Page 18: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-7-

I CHAPITRE I : Problématique de la conception système Résumé Ce chapitre contient un état de l’art de la conception système et les solutions techniques actuelles. Pour comprendre la problématique de conception système, nous présentons dans ce chapitre les méthodologies de conception actuelles et le choix de l’outil de conception.

I.1 Etat de l’art de la conception système....................................................................................................... 9

I.1.1 La conception système dans le contexte industriel............................................................................... 9 I.1.2 Le prototypage virtuel........................................................................................................................ 16 I.1.3 Les méthodologies de conception actuelles ....................................................................................... 17

I.2 Solution technologiques actuelles........................................................................................................... 20 I.2.1 Les cibles de conception existantes [ROB02] .................................................................................... 21 I.2.2 Le marché actuel des composants...................................................................................................... 23

I.3 Comparaison des langages et outils de conception................................................................................. 25 I.3.1 Introduction ....................................................................................................................................... 25 I.3.2 Les outils issus du milieu logiciel....................................................................................................... 26 I.3.3 Les outils issus du milieu CAO........................................................................................................... 27

I.4 Bilan ....................................................................................................................................................... 35

Page 19: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-8-

Page 20: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-9-

I.1 Etat de l’art de la conception système

Dans ce premier chapitre, nous aborderons les différentes notions de la conception système. Pour cela nous avons articulé notre chapitre sur trois thèmes qui sont : la problématique de la conception système, la technologie et les outils de conception.

Ainsi une première partie s’attachera à mettre en avant les enjeux industriels actuels pour la conception de systèmes électroniques. Ces systèmes devenant de plus en plus complexes, nous verrons que de nouvelles méthodologies de conception ont été développées pour diminuer le cycle de conception habituel. Nous décrirons une des solutions, sur laquelle se sont focalisés les industriels, qui est le prototypage.

La deuxième partie sera dédiée à une étude sur les cibles de conception existantes que nous compléterons par une prospection de ces composants issus des différents constructeurs.

Une dernière partie présentera une étude sur les outils de conception permettant de justifier l’utilisation d’un langage pluridisciplinaire. Nous développerons ensuite deux méthodologies de conception pour des systèmes mixtes, l’une est basée sur un langage propriétaire et l’autre sur un langage issu de normalisation. Leur comparaison permettra de définir le langage le plus adapté à notre système de communication.

I.1.1 La conception système dans le contexte industriel

I.1.1.1 Enjeux et constatations Sans nous en rendre compte, nous utilisons actuellement tous de nombreux systèmes

embarqués. En effet de nos jours, ces systèmes électroniques ont été introduits dans de nombreux domaines d’applications tels que l’automobile, l’avionique, les systèmes multimédia, les appareils électroménagers ou bien des terminaux de communication sans fil. Les concepteurs doivent donc gérer les développements de systèmes électroniques embarqués multi-disciplinaires et multi-processeurs. Ainsi, depuis quelques années, le marché des composants électroniques est orienté vers des produits grand public qui combinent aussi bien la téléphonie que le multimédia : Téléphone mobile avec appareil photos, PDA (Personal Digital Assistants) avec systèmes GPS (Global Positioning System), jeux ou lecteurs vidéos … . Pour cet exemple les industriels devront bientôt être capable de réunir au sein d’un unique objet aussi bien les fonctions de téléphone, de navigateur internet, d’appareil photo numérique, d’écran couleur et de lecteurs multimédia. La complexité ne cesse d’augmenter pour la conception de ce genre de produit. La solution pour la combinaison de ces différentes fonctions se trouve dans un premier temps dans la technologie du transistor qui est la fondation du circuit. En effet, comme nous pouvons le constater sur le Tableau I. 1, l’évolution de la longueur de canal d’un transistor en technologie CMOS n’a cessé de diminuer depuis ces 8 dernières années [CHAN99].

1997 1998 1999 2002 Technologie du process 0,35µm 0,25µm 0,18µm 0,13µm Capacité d’intégration

sur silicium 200K -500K portes

logiques 1M-2M portes

logiques 4M -6M portes

logiques 10M -25M portes

logiques Temps de conception 18-12 mois 12 -10 mois 10- 8 mois 8-6 mois Applications typiques Téléphone portable,

PDA, DVD PDA sans Fil Application internet Contrôleur

interconnecté et intelligent

Coût de fabrication($) 1,5- 2,0 milliards 2,0 -3,0 milliards 3,0 -4,0 milliards > 4,0 milliards

Tableau I. 1.Evolution de la technologie d’intégration sur Silicium. [CHAN99]

Page 21: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-10-

Bien que la limite théorique pour la longueur de canal aurait été estimée à 0,5µm dans les années 80, nous voyons dans le Tableau I. 1 que cette prévision a été largement sous-estimée. La complexité des applications a donc engendré une augmentation de la capacité d’intégration des transistors sur une puce par une évolution de la technologie autorisant une diminution des dimensions de canal. L’autre difficulté auquelle doivent faire face actuellement les industriels c’est la concordance du produit de nouvelles technologies avec le marché économique. La notion de temps de mise sur le marché (Time to market) est devenue une contrainte importante lors de la conception d’un nouveau produit. C’est pourquoi il faut impérativement à l’heure actuelle réduire au maximum ce temps de mise sur le marché.

Figure I. 1. Evolution des bénéfices d’une entreprise en fonction de l’évolution dans le temps

L’exigence de diminuer ce temps de mise sur le marché a été répercutée sur le temps de conception qui, malgré l’augmentation de la technologie, est de plus en plus court. En effet ces temps de conception ont diminué de moitié sur ces 8 dernières années alors que la capacité d’intégration a été multipliée par 50. Au vu des prévisions de NTRS (National Technology Roadmap for Semiconductors) [NTRS], nous aurions théoriquement atteint de nos jours des centaines de millions de transistors par puce. Cependant, à l’heure actuelle ce potentiel d’intégration ne peut être exploité. En effet, il existe un fossé entre la conception (la complexité d’un projet en terme du nombre de transistor) et la technologie (complexité de réalisation en terme de capacité technologique d’intégration). Cette différence entre le nombre de portes à concevoir et le nombre de portes conçues est un phénomène identifié auprès des concepteurs comme étant le « Design Productivity Gap » ou le « Design Gap ».

Temps

Bénéfices

Durée de vie

Système produit en accord avec le marché

Système produit en décalage

Temps de mise sur le marché (Time to Market)

Page 22: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-11-

0,01

0,1

1

10

100

1000

1000019

8119

8319

8519

8719

8919

9119

9319

9519

9719

9920

0120

0320

0520

0720

09N

ombr

e de

Tra

nsis

tor p

ar p

uce

en M

illio

ns

TechnologieProductivité

Figure I. 2. Evolution et prévision de la complexité en terme de conception et de technologie, selon le

consortium de fabrication de puces SEMATECH [SEMA]

Comme le montre la Figure I. 2, à partir des années 90 la technologie a rattrapé, puis dépassé, la conception et ne cesse dès lors d’augmenter. Toutefois, cette rapide évolution de la technologie et de la complexité du circuit crée aussi un coût de fabrication (Tableau I. 1) croissant pour des méthodes classiques de conception.

$10 000

$100 000

$1 000 000

$10 000 000

$100 000 000

1985 1990 1995 2000 2005 2010 2015 2020

Années

Coû

t tot

al d

e co

ncep

tion

"Méthodologie RTL"

Figure I. 3. Coût total de conception pour une méthodologie RTL [ITRS03].

Ecart entre la conception et la technologie

Page 23: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-12-

La méthodologie de conception la plus développée au début des années 90 est une méthodologie de type RTL (Register Transfer Language) permettant la description d’un système comme un ensemble de registres et de relations logiques. Nous voyons (Figure I. 3) qu’en restant avec une conception de ce type, le coût de conception sera de plus en plus élevé puisque la technologie ne cesse d’évoluer. Pour être en concordance avec les applications du marché et les temps de plus en plus réduits il est donc nécessaire de développer de nouvelles méthodologies de conception. Dans le paragraphe suivant, nous rappelons le cycle de conception d’un produit industriel connu sous le nom de « Cycle de conception en V » et la méthodologie de conception traditionnelle dans le cas d’un développement de circuit intégré.

I.1.1.2 Méthodologie « classique » du développement

I.1.1.2.1 Flot de conception traditionnelle La conception d’un circuit est le plus souvent réalisée au niveau structurel ou RTL. En

effet, les outils de CAO (Conception Assisté par Ordinateur) ont leur point d’entrée à ce niveau pour implémenter la partie matérielle. Des méthodologies de type RTL ont donc été développées pour que la réalisation de puces de faible complexité soit la plus fiable possible avec un temps de conception réduit. La Figure I. 4 [MILP01] permet de décrire pour le niveau RTL, le flot de conception traditionnelle. Il s’agit d’une méthodologie classique dite de haut en bas (ou Top-Down) pour laquelle les différentes étapes sont présentées sur la figure suivante :

Figure I. 4. Flot de conception d’un circuit intégré classique

Le point de départ d’une conception de circuit intégré classique est le cahier des charges. Il consiste à définir les spécifications, à savoir :

les différentes fonctionnalités ; par exemple on recherche dans ce descriptif à définir le gabarit d’un filtre numérique.

A B

C D

E

F

G

Page 24: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-13-

ses performances ; pour notre exemple c’est la définition des différents paramètres du filtre numérique choisi.

les possibilités d’interfaçage.

les contraintes liées à la puce finale ; par exemple pour respecter la fréquence d’échantillonnage, il faudra limiter le nombre d’interconnexions.

La conception d’un circuit intégré classique se déroule par les étapes successives suivantes:

A. un développement structurel sera créé définissant les fonctionnalités du système.

B. une vérification fonctionnelle du code RTL produit est faite.

C. la description RTL de l’application est alors synthétisée en un fichier décrivant l’interconnexion des éléments aussi connu sous le nom de netlist.

D. une vérification temporelle est alors effectuée afin de vérifier si les performances souhaitées sont bien satisfaites. Lorsque c’est le cas, la netlist sert de base afin de réaliser la conception physique .

E. nous passons à l’étape suivante (aussi appelé Back-end) qui transforme le schéma logique de la netlist en un plan de masse physique.

F. le placement-routage des cellules est alors effectué. Il permet de placer (généralement grâce à un algorithme de routage) le plus judicieusement les cellules pour que le nombre des interconnexions soit optimisé.

G. Enfin la dernière vérification permet de prendre en compte les paramètres physiques liés à la puce. Une fois cette étape de vérification achevée, le layout du circuit est envoyé en fonderie pour la réalisation finale.

Toutes ces étapes nécessitent la collaboration de plusieurs équipes (au moins deux) de développement. Pour diminuer les coûts et les temps de conception de cette méthodologie de type RTL, une solution est de concevoir un prototype avant de lancer la fabrication en série du produit. Le cycle de conception habituellement utilisé en industrie est celui en V. Malgré la complexification des systèmes en industrie, ce cycle de conception n’a pas subi d’avancées majeures [SNAI04].

I.1.1.2.2 Cycle de conception en V Le cycle de conception en V permet aux différents groupes au sein du même projet

d’évoluer du « besoin » au « produit » suivant le cycle présenté sur la Figure I. 5.

Ce cycle se divise en deux branches distinctes :

La branche de gauche est communément appelée « Méthodologie descendante (top -down) » et a été décrite dans le cas particulier de la conception d’un circuit intégré dans le paragraphe précédent. La branche « analyse » généralise les différentes étapes (Figure I. 5) de la méthodologie RTL.

A partir d’un cahier des charges, une analyse fonctionnelle est effectuée qui permet un découpage en différentes fonctions. Par la suite, ces fonctions donneront lieu à des architectures distinctes. Une architecture est la structure fondamentale d’un système (ensemble des fonctions) qui permet de déterminer les constituants, les interfaces et les comportements des sous-fonctions. Une rétroaction entre les architectures et les fonctions est possible pour que les contraintes des fonctions développées soient respectées. Lorsque

Page 25: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-14-

l’architecture est décidée, les concepteurs analyseront chaque bloc unitaire (ou sous-fonction) et en détermineront l’architecture finale pour la conception d’un prototype.

Figure I. 5. Cycle de conception en V.

Parallèlement aux étapes précédemment présentées s’articule la branche « prototype », dont l’objectif est de s’assurer que les prototypes respectent toujours les spécifications. La vérification de ce système comporte différents points de tests montrés sur la Figure I. 5. Les points de tests et de vérification sont les suivants :

A. Vérification de la fonctionnalité pendant la phase de conception.

B. Vérification de l’implémentation de l’architecture.

C. Test unitaire.

D. Test architecture permettant de vérifier l’architecture du système.

E. Test d’intégration système permettant de vérifier l’intégration des composants.

F. Test opérationnel permettant de tester le système dans son environnement avant sa fabrication.

Le coût de ces vérifications est très élevé en termes de temps et d’investissement puisqu’on estime que 70% du temps de conception [EVAN03] est passé pour la vérification. Il est évident que la vérification du système doit être rigoureuse, car une erreur détectée après fabrication entraînerait un surcoût.

Cahier des charges

Prototype

Analyses fonctionnelles

Test opérationnel

Test unitaires

Test Architecture

Test d’intégration système

Conception Architecture

Conception détaillée (fonction unitaire)

Besoin Produit

Analyse Prototypes

Validation, Certification

Validation système

Validation Architecture (3)

(3)

(3)

Vérification fonctionnelle

Vérification implémentation

A

B

C

D

E

F

Page 26: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-15-

I.1.1.2.3 Vérification et prototypage Différentes techniques de vérification ayant des stratégies différentes existent

[SASON04] :

La vérification formelle permet de représenter les caractéristiques du système pour vérifier certaines propriétés. Deux types de vérifications formelles sont possibles :

- Soit un débogage de la spécification permettant de vérifier si la spécification est bien décrite et si tous les besoins sont bien inclus.

- Soit la vérification de l’implémentation vérifiant si la spécification est bien implémentée.

Une des difficultés d’utilisation de cette technique est qu’elle n’est applicable qu’aux systèmes simples à cause de la complexité du processus de vérification.

La simulation utilise des modèles de calcul sur ordinateur. Cette technique est basée sur la description d’un modèle pour l’analyse des systèmes. C’est le moyen le plus employé pour la vérification fonctionnelle. Différents types de simulations sont possibles : ils s’étendent de la simulation comportementale à la simulation très bas niveau (niveau layout).

L’émulation emploie des modèles physiques qui imitent le comportement du matériel. L’avantage de ce type de technique est sa vitesse d’exécution. Toutefois, il est difficile d’observer les signaux internes et donc les erreurs temporelles sont difficilement détectables. C’est pourquoi cette méthode est généralement employée après plusieurs étapes de simulations.

Le prototypage combine l’utilisation des différents modèles.

Comme le montre la Figure I. 6, le prototypage permet de diminuer les temps de conception. Lorsqu’il n’y a pas de prototypage (Cas a), il faut attendre la fabrication de la puce pour développer le logiciel et vérifier l’intégration logicielle/matérielle. Un prototype permet de diminuer ce temps de conception en pouvant avant la fabrication de la puce développer la partie logicielle et la vérification de l’intégration (Cas b). Nous pouvons réduire encore ce temps de conception en utilisant une plateforme reconfigurable (Cas c) et qui subira une légère modification d’architecture pour chaque nouvelle application.

Page 27: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-16-

Figure I. 6. Effet de prototypage sur la conception d’un système monopuce.

Plusieurs types de prototypage sont rencontrés [SASON04] :

Le prototypage virtuel.

Le prototypage matériel.

Le prototypage mixte.

Le prototypage virtuel se fait par simulation de tous les composants du système. Ces simulations [CLOU02] peuvent combiner différents niveaux d’abstractions (niveau fonctionnel, niveau architectural, niveau RTL …). L’inconvénient de ce type de prototype est sa vitesse car elle n’est pas aussi élevée que dans le cas d’un émulateur par exemple.

Le prototypage matériel quant à lui utilise les modèles physiques des composants pour la réalisation du système. L’implémentation de ce type de prototype utilise des composants reconfigurables ce qui implique de connaître la description RTL ou en termes de portes logiques de chaque composant.

Le prototypage mixte combine aussi bien de la simulation, que de l’émulation et de l’utilisation de composants réels. Son principal inconvénient est donc l’interconnexion entre la partie simulation et la partie émulation.

Notre choix pour notre système s’est porté sur le prototypage virtuel qui a l’avantage d’être flexible et de faible coût.

I.1.2 Le prototypage virtuel

Différentes raisons peuvent entraîner de faire appel au prototypage virtuel et cela peut intervenir à différents niveaux d’abstraction du cycle en V. Les objectifs peuvent être l’étude d’une conception d’un produit ou de l’amélioration du dispositif que ce soit en terme de conception (réduire le cycle ou fiabiliser le circuit) ou en terme de technologie (amélioration des performances techniques du système). Les études commencent naturellement à partir des spécifications et d’un recensement des dispositifs existants. A partir des spécifications, le

Page 28: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-17-

prototype virtuel peut demander plus ou moins de temps selon le niveau d’abstraction. Si par exemple, nous sommes à un niveau d’abstraction comportemental, la modélisation sera rapide dans la mesure où les étages sont représentés par leur fonction et non par leur description physique. Dans ce cas de niveau d’abstraction physique, les temps de conception sont augmentés puisque le développement intègre la technologie (physique du transistor par exemple). Dans tous les cas, les spécifications devront être établies en fonction du produit demandé et des dispositifs existants. En effet si la modélisation se fait sur la base de produits existants, les spécifications devront comprendre ses résultats réels. Par contre, les produits inexistants devront se baser sur les spécifications fonctionnelles.

L’implémentation d’un prototype virtuel [VALD98] peut se faire par simulation ou co-simulation (simulation avec plusieurs simulateurs). Nous pouvons dans ce type de prototypage faire cohabiter aussi bien des simulations de niveau RTL, que des simulations de niveau fonctionnel. L’avantage est sa flexibilité et son coût puisqu’il s’agit de simulation pouvant introduire des modèles de hauts niveaux. Le point faible de ce type de prototypage est qu’il est difficile de connecter un prototype virtuel avec l’environnement physique du système.

I.1.3 Les méthodologies de conception actuelles

I.1.3.1 Les changements de paradigmes La description des généralités sur le cycle de conception, a permis de montrer que ce

cycle prend beaucoup de temps alors qu’on demande à l’heure actuelle un temps de conception de plus en plus court. Nous allons donc introduire les nouvelles méthodologies employées. Pour lutter contre l’écart grandissant entre la productivité et la technologie, les laboratoires de recherche et les industries s’efforcent de mettre en œuvre de nouveaux paradigmes. De nos jours, pour répondre à une complexité croissante des fonctions à développer, les concepteurs doivent prendre en compte sur un même circuit des cœurs microprocesseurs, des mémoires, des fonctions spécifiques et des parties analogiques ou radiofréquences. C’est pourquoi, ces dernières années les changements de paradigme sont apparus :

Synthèse haut niveau, apparue dans les années 95, cette démarche de conception permet la réutilisation de composants au niveau portes logiques (association de transistors) puis la réutilisation des fonctions (assemblage de portes logiques) associés.

Codesign : En 1997, l’évolution des méthodologies se porte sur la conception conjointe des parties logicielles et des parties matérielles.

Utilisation d’IP (Intellectual Property) : le rapprochement des milieux logiciel et matériel a permis d’utiliser au niveau du silicium un concept bien connu dans le monde de la conception logicielle à savoir la réutilisation de composants préconçus aussi nommés « propriété intellectuelle ». Ce composant virtuel, lorsqu’il est correctement défini au niveau de description RTL, permet une intégration plus aisée donc un gain de temps de conception.

Plateforme où coexiste aussi bien du matériel que du logiciel.

Page 29: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-18-

La Figure I. 7 représente l’évolution de la capacité d’intégration des circuits au cours de ces dernières années, et montre l’influence de ces nouveaux paradigmes de conception sur la complexité grandissante.

Figure I. 7. Représentation des changements de paradigmes avec la complexité des composants [BORE99]

I.1.3.2 Evolution des coûts [ITRS03] Parallèlement aux quatre évolutions majeures (Synthèse haut niveau, Codesign, IP-Based

et Plateform-based) décrites dans le paragraphe précédent, les industriels se sont efforcés de réduire l’évolution des coûts (Figure I. 8.a) de production associée à l’augmentation de la complexité. Pour cela, nous avons répertorié sept actions visant à modérer les coûts et reportées leur influence sur la Figure I. 8.b.

Page 30: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-19-

Figure I. 8. Impact des technologies de conception sur les coûts de production.

Ces innovations [KAHN02] sont :

• « Le placement routage sur le site de développement du prototype ». Opération auparavant effectuée par le fondeur, les délais pouvaient atteindre une semaine. Depuis 1993, le placement routage est fait sur site avec des délais avoisinant désormais quelques heures. Ceci se traduit par une amélioration de l’ordre de 40 % de la productivité et 5 K portes par an et par concepteur.

• « L’ingénierie ». Cette méthodologie a permis de montrer qu’au lieu de diviser les travaux de conception en équipe d’experts (simulation et synthèse), une seule personne devra suivre la conception du circuit. Cette découverte a permis de réaliser une amélioration de productivité de 63% en 1995 soit 9 K portes par an et par concepteur.

• « Small block reuse » et « large block reuse ». Ces techniques permettent la réutilisation des blocs matériels et autorisent les premières grosses avancées de la productivité, atteignant + 340% dans le meilleur des cas soit 56K portes par an et par concepteur.

• « IC implementation tool set » est une automatisation du flot de conception RTL, par l’apparition de nouveau outil logiciel, qui a permis une amélioration de 63% pour la productivité.

• « Intelligent Test Bench » est une automatisation du flot de vérifications fonctionnelles (vu dans le cycle en V) qui inclut naturellement la vérification matérielle « IC implementation tool ». Cette technique a permis une augmentation de 37,5% pour atteindre 91K portes par an et concepteur.

• « Electronic System level methodology ». L’évolution de la complexité fait apparaître dans les années 2000, la nécessité de faire cohabiter aussi bien la partie matérielle que la partie logicielle. Nous tendons alors vers une description simultanée fonctionnelle/ architecturale.

• Very large Block Reuse. Ce paradigme à l’état naissant est l’évolution logique des fonctionnalités « Small block reuse et large block reuse », permettant de réutiliser en totalité des macro-fonctions. Cependant, des problèmes de compatibilité se posent principalement d’un point de vue logiciel.

(a)

(b)

Page 31: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-20-

I.1.3.3 Le prototypage virtuel par le CODESIGN Comme nous l’avons vu précédemment, le codesign a été l’un des paradigmes clé

permettant de lutter contre l’inflation des possibilités de production devant la capacité d’intégration (Design Gap (Figure I. 2)). Le codesign autorise une conception simultanée des environnements logiciel et matériel et ainsi de diminuer le temps de conception [CLOU01]. Les méthodologies proposées pour le codesign se différencient en fonction des choix stratégiques : le style de spécifications, le modèle de l’architecture cible et les étapes de synthèse. Différents modèles de description sont possibles pour le codesign [HAMO05] [VERM02] : soit un langage de description matérielle (VHDL ou Verilog), soit de logiciel (C ou assembleur) soit dans un langage de description au niveau système (SDL, StateCharts, CSP, SpecCharts, etc…). La conception conjointe matérielle ou logicielle peut être vue de la manière suivante:

Figure I. 9. Approche du CODESIGN pour la fabrication d’un prototype.

Cette approche typique du codesign commence par décrire à partir d’un langage de spécifications le niveau système afin de réaliser le découpage logiciel/matériel. La répartition des environnements étant réalisée, une synthèse de communication entre ces deux environnements doit être effectuée. Chaque environnement accompli sa propre synthèse pour arriver jusqu’à la conception du prototype. Le découpage des parties logicielles et matérielles dépend des outils de co-simulation utilisés et des contraintes (coûts de simulation, flexibilité….).

I.2 Solution technologiques actuelles

Les paragraphes précédents nous ont permis d’établir l’évolution de la conception système, et de montrer les actions menées afin de combler le « design gap » défini précédemment. L’objet de la partie qui suit est de faire l’état de l’art des cibles de réalisation numériques existantes, en essayant de dégager un compromis temps de développement/coût /capacité d’intégration idéal lors du développement final d’un prototype virtuel.

Page 32: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-21-

I.2.1 Les cibles de conception existantes [ROBE02]

Différentes solutions s’offrent au concepteur afin de réaliser le circuit numérique final : les circuits développés spécifiquement pour une application (ASIC’s), les circuits matriciels programmables FPGA et enfin les circuits à microprocesseur DSP. Nous allons présenter brièvement chaque type de circuit, afin de dégager un comparatif et les situer en terme de compromis coût/temps de développement/rapidité. Nous terminerons enfin sur une courte étude de marché.

I.2.1.1 Les ASICs Un ASIC (Application-Specific Integrated Circuit) est un circuit intégré à application

spécifique. Il est classé en 2 catégories :

Le circuit semi-spécifique (certaines étapes ont été faites avant la conception de fabrication) et le circuit spécifique (toutes les étapes de fabrication seront réalisées après la conception).

I.2.1.1.1 Les circuits semi-spécifiques ou ASIC pré-diffusés Avant même la conception, l’utilisateur fixe le nombre de portes et de plots

d’entrée/sortie. Les réseaux de transistors sont alors programmés et interconnectés par l’utilisateur et les dernières étapes de fabrication sont effectuées par le fondeur. Ce type de circuit se caractérise par une forte densité d’intégration, mais n’a aucune flexibilité car sa topologie est fixée avant la conception.

I.2.1.1.2 Les circuits spécifiques ou ASIC pré-caractérisés Les ASICs pré-caractérisés ont été beaucoup développés dans les années 90 lors de la

phase « placement / routage sur site » qui a vu l’évolution des outils de synthèse (cf Chapitre 1-§I.1.3.2). Ces circuits sont conçus à partir de cellules prédéfinies dans une bibliothèque propre à chaque fabricant et chaque technologie. Les concepteurs utilisent des éléments de la bibliothèque constructeur ce qui permet aux fondeurs d’automatiser l’étape finale de synthèse logique. L’existence de ces bibliothèques permet un gain de temps conséquent grâce à la notion de réutilisation. De plus, compte tenu des capacités d’intégration actuelles, permet de concevoir des systèmes sur puces (System On Chip ou SOC). Les ASICs présentent l’avantage d’une forte capacité d’intégration (jusqu’à 20 Millions de portes) et une faible consommation par fonction utilisée, et un faible coût unitaire. Par contre les coûts de développement sont élevés, dans la mesure où ils incluent les coûts de fabrication :

Le coût unitaire du masque qui augmente en fonction de la technologie cible choisie.

Le coût de conception lié aux équipes de développements et aux logiciels de CAO utilisés.

C’est pourquoi le temps de développement est généralement élevé, et la flexibilité quasi-nulle. Au vu des constats précédemment cités (temps de développement élevé et coût) le projet de prototypage basé sur un ASIC pré-caractérisé devient de moins en moins rentable.

I.2.1.2 Les FPGA Les FPGA (Field Programmable Gate Array) font partie de la famille de composants

programmables électriquement. A l’origine basés sur un réseau de matrices de portes élémentaires ET et OU (Program Array Logic ou PAL), ces circuits programmables sont

Page 33: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-22-

devenus au milieu des années 90 des circuits plus complexes grâce à l’intégration de ressources spécifiques dédiées, associées à de la mémoire interne et à des entrées/sorties flexibles [DUTE02][BROW96].

Figure I. 10. Principe de l’architecture d’un circuit FPGA [MLYN01]

Un FPGA est un circuit dont l’architecture correspond à une matrice de portes logiques séparées par des réseaux d’interconnexion. Ils existent deux types de FPGA : les non reprogrammables (technologie de type anti-fusible) et les reprogrammables (technologies de type SRAM ou Flash).

La programmation de ce type de composant se fait à l’aide d’un langage de type matériel (VHDL ou Verilog) sur une platine de programmation. La tendance actuelle pour ces circuits est la possibilité de réaliser des systèmes sur puce (ou SoC) en utilisant des « composants virtuels » et de concevoir ainsi des blocs de propriété intellectuelle (Intellectual Property ou IP) qui sont par exemple des fonctions VHDL/Verilog génériques réutilisables.

Le FPGA offre une souplesse de conception grâce à sa facilité d’utilisation et sa facilité de programmation (et reprogrammation). Contrairement à un circuit ASIC, pour lequel le concepteur maîtrise totalement le placement routage au niveau transistor, le FPGA n’autorise pas cette opération qui s’effectue de manière transparente pour le développeur. Pour une application visant la mise sur le marché d’une forte qualité des produits, le circuit spécifique est la solution faîble coût. Par contre, dans le cas d’un développement ponctuel, le FPGA est nettement plus avantageux. C’est pourquoi ce composant est plus adapté pour la mise au point de prototypes et accessible à un plus grand nombre d’utilisateur que l’ASIC.

I.2.1.3 Les DSP Un DSP (Digital Signal Processing) est un type particulier de microprocesseur,

équivalent à un circuit intégré programmable en langage C ou assembleur. Il comporte essentiellement des unités arithmétiques dédiées et optimisées pour des calculs rapides. Ces fonctions sont destinées à le rendre particulièrement performant dans le domaine du traitement numérique du signal. Comme un microprocesseur classique, un DSP est mis en œuvre en lui associant de la mémoire (RAM, ROM) et des périphériques. Un DSP typique a plutôt vocation à servir dans des systèmes de traitements autonomes. Il se présente donc généralement sous la forme d’un microcontrôleur intégrant, selon les marques et les gammes des constructeurs, de la mémoire, des timers, des ports série synchrones rapides, des contrôleurs DMA, des ports d’E/S divers. Ces dernières années, les techniques à base de processeurs de traitement du signal ont été largement employées pour la conception d’émetteurs-récepteurs de communication évolués, trouvant leur champ d’application dans la détection, l’égalisation, la démodulation, les synthétiseurs de fréquence.

Matrice de connexion programmable

Bloc logique programmable

Matrice d’interrupteur programmable

Page 34: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-23-

I.2.1.4 Les SoCs D’après Gartner Dataquest (Société d’étude de marché) [GARTWW] un SoC est défini

comme un composant d’au moins cent milles portes et comprenant un noyau programmable (processeur ou DSP) et de la mémoire (de type RAM et/ou ROM).

Figure I. 11. Intégration d’une carte électronique (exemple de fonction de carte mère)

Plus concrètement, la tendance actuelle est d’intégrer sur une même puce de silicium aussi bien des fonctions numériques que des fonctions logicielles (processeur, interfaçage …). La Figure I. 11 illustre les possibilités d’intégration en terme de fonction d’une carte mère d’un ordinateur personnel sur une seule puce, sur laquelle nous voyons cohabiter le microprocesseur, les mémoires avec les fonctions classiques associées. Le composant virtuel (l’autre nom donné au SoC) est souvent commercialisé par des sociétés spécialisées qui fournissent les blocs IP pouvant être sous forme matérielle (masque par exemple) ou sous forme logicielle (modèle VHDL). Des prévisions d’évolution, de ce type de technologie, faites par l’IRTS [IRTS03] prévoient l’augmentation du nombre de transistors par un facteur 50. On pourrait atteindre en 2008 le nombre de 500 millions de transistors sur un même SoC. Les principaux avantages de ce type de composant sont sa capacité d’intégration, la conception d’une plateforme commune entre le milieu logiciel et le milieu matériel et sa consommation réduite. C’est pourquoi de nombreuses d’études portent sur la co-simulation et son implémentation en SoCs.

I.2.2 Le marché actuel des composants

I.2.2.1 Famille de circuits et applications Nous terminerons cette étude par une comparaison de ces composants issus des différents

constructeurs. Les ASICs pré-caractérisés ne sont pas présentés dans cette comparaison puisque la technologie et les performances dépendent directement de l’application. Cette comparaison a pour but de présenter les produits actuels afin de dresser un état de l’art des performances associées [XILIWW] [ALTEWW] [ACTEWW] [TEXWW] [ANOLWW].

Page 35: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-24-

Constructeurs et composants

Tech

nolo

gie

Fréq

uenc

e d’

horlo

ge

max

imum

Tens

ion

Alim

enta

tion

Mém

oire

(kB

) SR

AM

Cel

lule

s ou

inst

ruct

ions

App

licat

ions

Div

ers

FPGA Virtex 4 (XILINX)

0,9µm 450MHz 1,2 V 864 à 9936

6144 à 89088

Circuits logiques (Famille LX) Application SoC (Famille FX) Application DSP(Famille SX)

CPU : PPC405 (G1) Fx seulement

Stratix II (ALTERA)

0,9µm 500MHz 1,2V 419 à 9383

6240 à 71760

Applications logiques SoC (NiosII) Application DSP

Hardcopy II : Migration sur ASIC d’une architecture sur STRATIX II

ProASIC3 (ACTEL)

0,13µm (Flash)

350MHz 1,5V SRAM 0 à 144 FROM 1

30k à 3M

Applications logiques pour les systèmes aéronautiques et spatiaux

Composants intrinsèquement immunisé au SEU (Single Event Upset)

DSP 1200 à 8000 MIPS

Virgule fixe : téléphonie, Système multicanal , Biométrie

C6000 (Texas Instrument)

0,18µm 1GHz 1,1V à 1,9V

64 et 2048

600 à 1800 MIPS

Virgule flottante : Haute précision comme traitement d’image ou instrumentation

Compiler C pour optimiser les performances

Blackfin (Analog Devices)

0,18µm 400 à 750 MHz

0,8V à 1,6V

RAM 52 kB et 308 kB

TNT et appareil photos numériques.

RISC 32 Bits

Tableau I. 2. Comparaison des dernières technologies des FPGA et du DSP.

Nous observons tout d’abord une cible d’applications différentes entre les différentes familles de composants programmables. Les applications visées par les constructeurs de FPGA sont principalement la programmation d’applications dédiées aux fonctions logiques et à des applications de type SoC. Les applications touchées par les DSP sont la téléphonie, la biométrie ou l’imagerie, donc des applications nécessitant des performances de processeurs plus élevées comparées aux applications FPGA. Toutefois, les technologies récentes des FPGA (Virtex 4 (Famille SX) et Stratix II) disposent de nouvelles architectures à technologie mixte, à base de FPGA et de DSP, permettant des capacités de calcul massives et comprenant des systèmes d’entrées/sorties haut débit. De plus, nous pouvons noter que le FPGA du constructeur ACTEL a orienté sa technologie pour lutter contre les SEU (fortes contraintes du domaine aéronautique et spatiales) ce qui explique que sa technologie (au niveau longueur du canal) soit moins avancée que pour les constructeurs ALTERA et XILINX. Pour les applications logiques qui correspondent à notre système, le FPGA semble pour l’instant le meilleur choix.

Pour continuer notre comparaison entre ces composants, nous exposerons la différence architecturale entre un FPGA et un processeur.

Page 36: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-25-

I.2.2.2 Architecture des composants programmables La Figure I. 12, donne en exemple une architecture type pour un système embarqué avec

monoprocesseur (System On Package ou SoP) où on peut identifier les composants décrits précédemment (FPGA, SoC ou DSP).

Figure I. 12. Description générique d’un système embarqué

Si la cible est une solution système (SoP) ou une solution SoC, le composant FGPA communique seul avec l’extérieur et échange les informations avec le processeur et les sous-systèmes via un bus de communication rapide. Dans le cas d’une solution FPGA, le système est isolé et ne nécessite aucune interface de communication.

Cette étude nous montre que pour la conception d’un prototype, le FPGA apparaît comme la solution à retenir. En effet, le marché des FPGA (Tableau I. 2) est celui qui correspond le mieux à l’application visée qui est de type « applications de développement de fonctions logiques ». De plus, nous venons de montrer que l’utilisation d’un FPGA pour la conception système n’est pas restrictive et permet d’envisager une application logicielle si nécessaire.

Le choix de la cible de conception finale sera aussi déterminé par l’outil logiciel de conception utilisé. C’est pourquoi nous passerons en revue dans le prochain paragraphe les différents outils de conception et à leur langage associé.

I.3 Comparaison des langages et outils de conception

I.3.1 Introduction

Comme nous venons de le voir, les concepteurs font face aujourd’hui au développement de systèmes sur puce dans lesquels doivent cohabiter les environnements logiciel et matériel. La vérification d’une conception de ce type demande un langage d’abstraction matériel plus élevé. A l’heure actuelle, deux voies sont explorées : celles du monde logiciel qui doivent adapter leur langage à la description matérielle et celles du monde matériel (outils de CAO) qui doivent étendre leur langage à une programmation au niveau logiciel. Nous ferons donc la différence entre les simulateurs issus de la conception matérielle et ceux issus de la

Page 37: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-26-

conception logicielle. Le Tableau I. 3 résume les langages de modélisation multi-domaines. Nous avons aussi fait une distinction pour les outils de type analogique (résolution à partir des équations différentielles) et les outils de type numérique (simulateur dirigé par évenements).

Outils issus du milieu de la CAO Outils issus du monde logiciel

Niveau d’abstraction

Analogique Numérique Mixte

Niveau Spécifications

Niveau Comportemental

Niveau architecture

Niveau Composant

Tableau I. 3. Comparaison des différents langages de modélisation.

I.3.2 Les outils issus du milieu logiciel

Comme énoncé dans le paragraphe précédent, les outils logiciels tels que MATLAB cherchent à avancer leur cycle de conception jusqu’au niveau RTL. Le langage VHDL (VHSIC Hardware Description Language (§I.3.3.2)) étant incontournable, des travaux de recherche ont été développés pour que les outils de MATLAB et Simulink [MATL03] permettent de générer des fichiers VHDL. La première application apparue pour répondre à cet objectif est la conception de filtres numériques. A partir des coefficients simulés et optimisés sous MATLAB, une netlist VHDL est générée. Cette démarche consistant à fournir des fichiers VHDL à partir des modèles simulink (.mdl) est généralisée grâce à la routine de conversion présentée Figure I. 13 .

VHDL -AMS

Spice

Matlab /Simulink

VHDL

Verilog

Saber

C/C++

Type de langages

Page 38: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-27-

Figure I. 13. Description du passage des modèles de Simulink en modèle VHDL.

Pour chaque étape du procédé, le fonctionnement du système est vérifié, soit avec des réponses de type comportemental (échelon, sinusoïdale) pour la partie 1, soit avec des réponses de types logiques (0 ou 1) pour la partie 2 et 3. La base de conversion correspond aux éléments du système défini en . mdl sous Simulink. Seuls les éléments numériques seront pris en compte pour la conversion. Ces fichiers sont créés en terme de code VHDL c'est-à-dire avec des architectures et des entités. Le code est alors optimisé pour prédéfinir une architecture. Cette architecture choisie, est alors vérifiée par une simulation numérique. Lorsque la phase vérification a donné les résultats escomptés, nous pouvons synthétiser le code VHDL. La synthèse permettra d’avoir une netlist pour le placement/routage. C’est à partir de cette étape que l’on peut choisir la cible de production (FPGA ou ASIC). Matlab a pour inconvénient d’être un langage propriétaire. La conversion de fichier .mdl en fichier VHDL était à l’époque de notre choix d’outil de conception très peu exploitable.

I.3.3 Les outils issus du milieu CAO

I.3.3.1 Simulateur Analogique Le simulateur analogique le plus connu et le plus implanté dans le monde industriel est

PSPICE [VLAD94]. Ce simulateur analogique est généralement utilisé pour la vérification de circuits et la prédiction comportementale de circuits. L’origine de ce logiciel est l’outil SPICE (Simulation Program for Integrated Circuit Emphasis). Il a été développé dans les années 1970 par Nagel et Pederson de l’université de Berkeley et était alors librement utilisable dans le monde. C’est seulement une dizaine d’années plus tard que l’on voit apparaître les versions commerciales. MicroSim développera la version pour ordinateur personnel sous le nom de

Modèle Simulink(fichier .mdl)

Modèle VHDL (fichier .vhd)

Utilité de conversion

Optimisation

Synthèse Simulation Logique

Modèle Simulink(fichier .mdl)

Modèle VHDL (fichier .vhd)

Netlist : Simulation

FPGA : Configuration des données

Placement et routage (Layout)

ASIC : Interface pour les fondeurs

1

3

2

Vers implantation ASIC

Vers implantation FPGA

Fichier Source

Algorithme de conversion

Fichier .vhd (VHDL)

Page 39: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-28-

PSPICE (Personnal Computer SPICE) [NAGE75] et Avant la version pour station dénommée HSpice.

Basé initialement sur une saisie de la topologie sous forme de texte, MicroSim étendra ensuite la programmation par l’outil Probe qui présente les résultats de simulation sous forme graphique. D’autres évolutions arriveront ensuite comme l’interface Schematics qui permet la description graphique des circuits jusqu’à nous amener à la version PSpice A/D (Analogical/Digital). La notion de simulateur mixte apparaît alors, permettant de simuler des circuits comprenant aussi bien des éléments analogiques que des éléments numériques. Sa bibliothèque comprend plus de 18000 modèles, Pspice est bien implanté dans le milieu industriel.

Pspice est en fait une évolution graphique de SPICE, ce qui veut dire qu’il utilise le même algorithme numérique et les mêmes fichiers que SPICE. L’ordinateur construit une netlist à partir du schéma et détermine en chaque nœud l’équation du circuit. Cet outil se base donc toujours sur le modèle de base. Cependant, l’évolution des modèles n’est pas très facile, le simulateur étant basé sur le même « cœur » depuis son apparition. Les circuits actuels augmentant en complexité, il est de plus en plus difficile de les simuler dans des conditions normales avec cet outil car le temps de simulation peut devenir rapidement excessif.

Ainsi, ce simulateur ne peut aujourd’hui répondre à tous les besoins de modélisation de circuits, notamment pour les raisons suivantes :

- La difficulté à décrire le comportement souhaité à cause des équations primitives complexes de SPICE.

- Les temps de simulations peuvent devenir prohibitifs à cause de la description trop détaillée des composantes internes aux circuits ou de la présence d’une constante de temps élevée.

- Le développement de modélisations mixtes puisqu’il est basé sur un simulateur à temps continu.

I.3.3.2 Simulateur numérique Au début des années 90, l’augmentation du nombre de portes de circuits numériques a

ouvert la voie aux langages de description matérielle de haut niveau (les HDL, Hardware Description Language). Deux d’entre eux ont émergé et sont couramment utilisés : VHDL (VHSIC Hardware Description Language) et Verilog. Ces deux langages bénéficient du support de la quasi-totalité des logiciels [SMIT98].

I.3.3.2.1 Le VERILOG : Historique et description Verilog est un langage de description matérielle créé par la société Gateway Design

Automation en 1984. Le langage original appelé HiLo, s’apparente beaucoup au langage C, ce qui succite un intérêt immédiat notamment de la part de la communauté des informaticiens. Au départ, il était un langage propriétaire et n’était pas standardisé. En 1989, Cadence devient le propriétaire de la société Gateway et donc du langage Verilog et de son mécanisme « d’interface de langage de programmation » (Progamming Language Interface : PLI). En 1990, Verilog est ouvert au domaine public ce qui permet à chacun de développer son simulateur en Verilog et devenir un compétiteur potentiel de Cadence. Ainsi, le Verilog pouvait devenir le langage de description matérielle le plus répandu et le plus utilisé. C’est pourquoi le groupe de travail OVI a été formé sur le langage VERILOG et du mécanisme

Page 40: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-29-

PLI. La popularité du Verilog augmentant et l’arrivée du langage VHDL, il devenait important pour les personnes de l’OVI (Open Verilog International) de fonder un comité de travail pour sa standardisation IEEE. Ce comité a été formé en 1993 et a donné lieu au standard 1364-1995 qui combine la syntaxe du langage Verilog et son PLI.

Pour ces équipes de conception, les points positifs de ce langage sont : une facilité de prise en main pour les habitués du langage C ainsi qu’une assignation des signaux moins contraignante que le VHDL. Par contre, cette absence peut être piégeuse dans la mesure où le type de signaux (bus, signé … ) n’est pas pris en compte. De plus, Verilog ne comporte pas de concept de package (ni de librairies). Ainsi chaque fonction et chaque procédure d’un module doivent être définis dans ce module.

La description d’un système mixte est aussi possible en Verilog et porte le nom de Verilog-AMS HDL. Ce langage est défini sur la base du Verilog 1364-1995 pour la partie numérique, et du Verilog-A pour les systèmes analogiques.

I.3.3.2.2 VHDL : Historique et description Dans les années 80, le département de la défense aux Etats-Unis fait un appel d’offre

pour avoir un langage de description matérielle numérique unique. Le langage VHDL (VHSIC Hardware Description Language) est inventé pour répondre à ces critères. Ce langage se base sur le VHSIC (Very High Speed Integrated Circuit) qui est un projet de recherche nationalle mené par le groupement IBM/Texas Instruments / Intermetrics. Ce langage est ouvert au domaine public en 1985 et deviendra une norme en 1987 sous la dénomination de IEEE 1076-1987. Des changements minimes se feront pour la seconde normalisation en 1993 et il portera le nom VHDL’93. La dernière évolution de la norme est la norme IEEE 1076-2001.

Les avantages qui se dégagent de ce langage sont la réutilisation de fichiers grâce à la notion de paquet et la généricité individuelle des modèles.

Cependant, la norme IEEE 1076-2001 ne permet pas seule la description mixte (numérique et analogique). Le Verilog et le VHDL ont des capacités techniques équivalentes [SMIT98]. Le choix du langage est souvent dicté par la « culture » de l’équipe de développement ou de l’équipe de recherche. De plus, ce choix est parfois imposé par les outils disponibles, les logiciels de simulation et de synthèse, dont les langages associés sont fixés par des aspects économiques. Nous pouvons noter toutefois que les outils actuels permettent de mélanger ces deux langages.

I.3.3.3 Les simulateurs mixtes La simulation mixte a pour objectif de faire cohabiter la gestion des signaux à temps

continus (analogiques) et à temps discrets (numériques). Ainsi, cette technologie de simulation permet de concevoir des fonctions pluridisciplinaires telles que mécanique, optique, chimique, biochimique, fluidique. Des langages ont été créés dans ce sens VHDL-AMS et Verilog-AMS qui sont l’extension des langages VHDL et Verilog. D’autres langages, comme celui du logiciel SABER, permettent de décrire des fonctions mixtes.

Nous allons présenter deux langages clés dans la chronologie du développement de la modélisation des systèmes mixtes, à savoir le langage propriétaire MAST et le langage normé VHDL-AMS.

Page 41: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-30-

I.3.3.3.1 Description d’un langage propriétaire MAST Le logiciel SABER, développé par Analogy Inc, est un outil dédié à la modélisation et à

la simulation de systèmes couvrant de nombreuses disciplines de la physique telles que l’électronique, l’optique, la mécanique, l’électricité, l’électromécanique, l’hydraulique, le magnétisme, les télécommunications et le thermique. Ces systèmes peuvent être analogiques (continu en temps et en amplitude), discrets en temps et continus en amplitude, ou digitaux (discrets en temps et en amplitude). Outre les modèles propriétaires spécifiques présents dans les librairies, ce logiciel permet de créer ses propres modèles de composants à partir du langage de programmation MAST (Modeling Analog System with Template). Depuis 2003, une ouverture vers le standart VHDL-AMS permet de développer ses applications en utilisant ce langage. Malheureusement toutes les librairies standard du VHDL-AMS ne sont pas encore implantées dans le support du langage.

I.3.3.3.2 Description d’un langage normé : VHDL-AMS En 1999, le langage VHDL-AMS naît d’une réflexion d’une dizaine d’années entre les

chercheurs et les industriels. Il permet de décrire des modèles pluridisciplinaires (électrique, mécanique … ) c'est-à-dire des modèles aussi bien à temps continu qu’à temps discret. Le langage VHDL-AMS intègre le langage VHDL. Ce langage de description des circuits numériques exclusivement permet de simuler et synthétiser pour différentes technologies ces circuits.

La norme VHDL-AMS est donc une extension du VHDL où la partie analogique a été ajoutée et développée. Une des forces réside dans la possibilité de décrire des systèmes mixtes aussi bien à un niveau d’abstraction comportementale (grâce aux transformées de Laplace ou en Z) qu’au niveau RTL (car il s’agit d’un langage issu du VHDL).

Cependant, la gestion des équations différentielles ne dépendant pas du temps, comme par exemple les équations différentielles partielles à 2 ou 3 dimensions, sont difficilement modélisables. Par exemple, l’approche analytique pour la description d’une structure de microsystèmes est insuffisante, d’autres outils sont alors développés.

I.3.3.3.3 Les Outils supportant la simulation mixte en VHDL-AMS

I.3.3.3.3.1 historique

Les premiers outils apparus avec la simulation mixte en VHDL-AMS (début des années deux milles) sont :

- ADVance AMS de la société Mentor Graphics[MENT01]

- hAMSter (High performance AMS tool for Engineering and Research) [SIME03]

- SEAMS de l’université de Cincinnati

- SMASH de la société Dolphin [SMAS05]

Ces premiers simulateurs ont pour désavantage d’être difficiles d’accès pour les non initiés au langage. C’est pourquoi ces outils sont de moins de moins utilisés aujourd’hui comme par exemple le logiciel Hamster qui n’est plus commercialisé (racheter par la société Ansoft , il a été intégré sous le logiciel Simplorer). Cet outil étant simple d’utilisation, il est encore utilisé par les enseignants pour l’apprentissage du VHDL-AMS. Les autres outils de conception sont puissants mais plutôt réservés aux spécialistes du langage. C’est le cas du logiciel ADVanceAMS qui est l’outil le plus pourvu en éléments d’implémentation de la première norme VHDL-AMS.

Page 42: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-31-

La relative complexité du langage VHDL-AMS alliée au marché de la technologie mixte en pleine croissance, ont poussé les développeurs supportant la norme à faciliter son accès aux non spécialistes. Comme l’avait fait en son temps Spice, certains des outils précédemment cités, ont été développés sur la base d’une interface graphique utilisateur (Graphical User Interface : GUI). Ceci permet aux personnes non expertes de s’affranchir du langage et de n’avoir qu’à utiliser, pour leur étude, les « boîtes » codées par les spécialistes du langage.

I.3.3.3.3.2 Les outils à interface graphique

Comme nous venons de le voir, ces outils à interfaces graphiques permettent de s’affranchir, à un certain degré, de la connaissance du langage VHDL-AMS. Ils permettent donc de concevoir un microsystème à partir du code HDL masqué sous une image. Pour cela, l’utilisateur ne rentre que les paramètres et le type des signaux d’entrées/sorties. Les outils actuels présents sur le marché sont :

- SaberHDL (Analogy) [SYNO03]

Il permet d’utiliser une bibliothèque restreinte de composants pluridisciplinaires. La première version de SaberHDL est toutefois pauvre au niveau des composants de la bibliothèque.

- Simplorer (Ansoft) [ANSO03]

Il se base pour son noyau de simulation VHDL-AMS sous l’outil hAMSter. C’est le premier outil qui a développé une représentation graphique pour coder en VHDL-AMS.

- SystemVision (Mentor Graphics) qui se base sur AdvanceAMS [MENT03]

L’interface graphique permet aussi à l’utilisateur d’ « instancier » le modèle souhaité. Enfin, l’utilisateur un peu plus expérimenté pourra alimenter les bibliothèques de composants en créant ses propres modèles. Un des paramètres important, pour le choix de l’un de ces outils supportant cette norme, est le nombre de composants fournis par la bibliothèque d’origine et l’implémentation des librairies associées.

I.3.3.3.3.3 Comparaison des différents outils

A partir des propriétés énoncées ci-dessus ainsi que d’une étude comparative [HAMO05] de trois simulateurs basés sur le langage VHDL-AMS, nous avons résumé et comparé leurs performances générales pour le concepteur système dans le Tableau I. 4.

Le troisième simulateur a donc un environnement graphique convivial et permet aussi l’interfaçage avec C/C++, mais pour sa version complète. Malheureusement, n’étant pas disponible au sein de notre laboratoire nous n’avons pas retenu ce logiciel. C’est pourquoi nous nous sommes intéressés dans un premier temps aux simulateurs SaberHDL [SYNO03] et SystemVision [MENT03]. Comme le montre le tableau ci–dessous, la création d’un code VHDL-AMS est plus difficile avec l’outil SaberHDL car il ne possède pas d’éditeur interne pour le codage des fonctions. L’autre point négatif pour SaberHDL était que la bibliothèque de composants est moins fournie que SystemVision. Nous avons, en plus, rencontré des difficultés au niveau des librairies standard qui n’étaient pas encore toutes implémentées sous SaberHDL. Pour toutes les raisons que nous venons d’énoncer, nous avons choisi d’utiliser l’outil SystemVision pour le développement d’un prototype virtuel.

Page 43: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-32-

SaberHDL SystemVision Simplorer

Société Synopsis Mentor Graphics Ansoft Création du code

VHDL-AMS Utilisation d’un éditeur externe

Editeur interne Création automatique de l’entête du modèle.

Création d’un symbole

Manuelle Automatique et avec outil interne

Automatique

Bibliothèque de composant

Eléments de base écrits en VHDL-AMS

Eléments de base écrits en VHDL-AMS

Eléments de base écrits en VHDL-AMS

Algorithme de Simulation

Simec Newton Calaveras Eldo

Disponibilité du logiciel

Licence associée à SABER

Version gratuite pour les étudiants

disponibles sur internet

Version gratuite pour les étudiants

disponibles sur internet

Tableau I. 4. Etude comparative des simulateurs supportant VHDL-AMS.

I.3.3.4 Méthodologies et outil de conception retenus Au vu de l’étude précédente présentant l’état des outils associés, la conception mixte peut

s’envisager, soit à partir d’un langage propriétaire, soit à partir d’un outil normé. Pour répondre à cette question, nous allons confronter des méthodes que nous appellerons m1 & m2. Ces deux méthodes se basent sur la branche gauche du cycle en V (Figure I. 5) :

- m1 : cette méthode fait appel au langage propriétaire MAST, supporté par l’outil logiciel SABER.

- m2 : cette méthode fait appel au langage normalisé VHDL-AMS.

Page 44: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-33-

I.3.3.4.1 Méthodologie m1 avec un langage propriétaire Notre première approche de conception est présentée sur la Figure I. 14.

Figure I. 14. Description de la méthodologie de conception N°1 : m1

Pour un outil de simulation mixte tel que SABER la méthodologie de conception commence par une étude comportementale sous le logiciel. Les fonctions à développer sont écrites en langage propriétaire MAST (langage propriétaire de Saber). Un avantage réside dans la présence d’une bibliothèque de modèles et des fonctions pluridisciplinaires. L’utilisateur peut également développer ses propres modèles, à un niveau d’abstraction allant d’un « modèle fin de transistor » à un macro-modèle de très haut niveau. Dans un objectif de synthèse de fonctions numériques, le développeur doit obligatoirement coder manuellement et de manière synthétisable ces fonctions. Cette étape peut vite s’avérer extrêmement lourde et coûteuse en temps.

Simulation fonctionnelle mixte

SABER Sketch

Analyse fréquentielle et temporelle

SABER Scope

Environnement SABER

Fichiers VHDL synthétisable pour implantation FPGA/ASIC

Codage VHDL synthétisable

Cahier des charges

NOK OK Validation de l’architecture

Page 45: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-34-

I.3.3.4.2 Méthodologie m2 avec VHDL-AMS Le développement d’un système mixte peut également se baser sur le langage VHDL-

AMS. Dans ce cas, les fonctions analogiques sont décrites en VHDL-AMS. Si le concepteur développe les fonctions numériques simultanément en VHDL synthétisable, l’étape de codage manuel supplémentaire de la méthode m1 est supprimée.

Figure I. 15. Description de la méthodologie de conception N°2 : m2

I.3.3.4.3 Comparaison des deux méthodologies Le Tableau I. 5 permet de dresser un bilan pour chaque méthodologie basée sur les

facteurs importants d’une action de conception système [GUIL04E].

Comme nous pouvons le constater le codage manuel en VHDL synthétisable des fonctions numériques de SABER pénalise le temps de développement pour la méthodologie n°1. L’utilisation du langage VHDL-AMS s’affranchit de cette étape et permet de gagner en flexibilité, car la compilation d’un module seul est possible. On peut alors simuler une nouvelle architecture sans recompiler tous les modèles. Le désavantage de la méthodologie de conception n°2 pour notre système est le manque de bibliothèques de bruit. Cette déficience est pénalisante pour le codage du canal, nous développerons donc un fichier spécifique permettant de combler cette lacune.

Etages NumériquesVHDL Synthétisable

Analyse Fréquentielle et temporelle

Environnement VHDL-AMS

Cahier des charges

Etages Analogiques VHDL -AMS

Fichiers VHDL synthétisable pour implantation FPGA/ASIC

OKNOK Validation de l’architecture

Page 46: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-35-

SABER (Méthodologie N°1)

VHDL-AMS (Méthodologie N°2)

Temps de développement ☺ Bibliothèque Bruit

Exemple fichier d’un élement (Générateur de PN-CODE)

296 lines (15ko)

99 instructions lines ☺

Flexibilité (Si nouvelle architecture, recompilation de tous les

modèles)

☺ (Module compilable seul, possibilité de nouvelle architecture sans recompiler les autres modèles)

Temps de simulation 16min CPU TIME 6 min 51 sec CPU TIME (SystemVision)

Apprentissage Langage ☺ (Outil graphique facilité d’apprentissage)

(Difficulté d’apprentissage du langage VHDL-AMS)

Tableau I. 5. Comparatif entre 2 méthodes de conception.

I.4 Bilan

L’état de l’art sur la conception système que nous venons de dresser, a permis de mettre en lumière qu’à l’heure actuelle les systèmes à concevoir sont de plus en plus complexes avec un temps de mise sur le marché de plus en plus réduits. C’est pourquoi la méthodologie de conception a pris une place importante dans la fabrication système. Ce cycle de conception (qui est généralement en V) peut être diminué par l’utilisation d’un prototypage. En effet les phases de vérification du cycle en V, au nombre de cinq dans le cycle traditionnel en V, sont d’énormes consommatrices de temps. Nous avons alors fait état, d’une synergie forte entre industriels et laboratoire de recherche, en essayant de répondre à cette problématique en proposant trois types de prototypages. Le prototypage matériel permet une description physique des composants. Le prototype mixte allie les types de vérifications « simulation » et « émulation ». Le prototypage virtuel permet quant à lui la simulation des composants systèmes. Le dernier point important de cet état de l’art est le choix de l’outil de conception. Ils existent à l’heure actuelle deux catégories d’outils de conception. Ceux qui sont issus du monde de la modélisation (Matlab pour la modélisation mathématique) et ceux issus de la CAO électronique. Pour une description au niveau matériel, les outils de conception CAO sont encore les outils les plus compétents pour réaliser une synthèse fiable. Toutefois, les outils de modélisation commencent à descendre dans le cycle de conception et permettent de définir, comme l’outil Simulink de Matlab, un fichier VHDL pour le placement/ routage vers des cibles ASICs ou FPGA. Puisque les outils de conception CAO sont les outils les mieux adaptés à la synthèse, nous avons choisi un langage de description matérielle. Le choix du langage s’est basé sur la pluridisciplinarité du langage et l’intégration dans une cible comme le FPGA. Nous avons donc retenu le langage VHDL-AMS qui est un langage normé (donc non propriétaire) et qui permet de simuler avec des langages comme le C, ou MATLAB si une méthodologie de conception par prototypage virtuel est appliquée.

Page 47: 83240798 These Celine

CHAPITRE I : Problématique de la conception système

-36-

Page 48: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-37-

II CHAPITRE II Vers la conception d’un système de télécommunications à étalement de spectre

Résumé Ce chapitre présente le système de télécommunication à modéliser. Pour cela, nous définissons les paramètres propres d’un système de communication AMRC et focalisons sur le choix de la topologie de la fonction synchronisation, organe clé des communications à étalement de spectre. 1 Présentation du cahier des charges .............................................................................................................. 39 2 Les systèmes de communications existants ................................................................................................. 39 3 Description des éléments d’une chaîne de communication numérique. ...................................................... 44 4 Caractéristiques retenues pour le système désiré......................................................................................... 61 5 Description fonctionnelle des fonctions à modéliser ................................................................................... 63

5.1 Principe de la modulation différentielle............................................................................................. 64 5.2 Modélisation du générateur de PN Code........................................................................................... 64 5.3 Modélisation de la fonction corrélation............................................................................................. 68 5.4 Modélisation de l’organe de synchronisation.................................................................................... 70

6 Conclusion................................................................................................................................................... 88

Page 49: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-38-

Page 50: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-39-

II.1 Présentation du cahier des charges La première partie de ce mémoire a présenté l’état de l’art des moyens, outils et méthodes

mis en œuvre afin de concevoir, des spécifications au prototype, le système.

La seconde partie s’efforce d’appliquer les moyens développés dans le premier chapitre à une problématique de communication sans fil en milieu clos (habitat, mais aussi automobile, milieu urbain). La Figure II. 1. Représentation schématique d’un système multi-capteurs pour un environnement closillustre, par exemple, l’application type d’un système multi-capteurs pour l’environnement de l’habitat dans le cadre de l’instrumentation d’une pièce.

Figure II. 1. Représentation schématique d’un système multi-capteurs pour un environnement clos

Le milieu de propagation « indoor » est fortement « pollué » à cause des autres sources (téléphone mobile ou réseaux sans fil) qui opèrent dans les mêmes bandes (2,4 GHz, 5,1 GHz) puisque elles sont imposées par la loi. De plus, il faut tenir compte des réflexions multiples (multi-trajets) dues à l’environnement physique (cloisons, plafond…) arrivant atténuées et retardées sur le récepteur. Une contrainte supplémentaire liée à l’environnement clos est le nombre d’utilisateurs qui doivent cohabiter dans le même canal. Un point important supplémentaire de notre cahier des charges est de véhiculer aussi bien des informations bas débit (<1Mbits/s) et des informations haut débit (de 1 à 10 Mbits/s).

II.2 Les systèmes de communication existants Tout d’abord, revenons sur la notion de système ou d’objets communicants. Un système

communicant peut se définir par une multitude d’objets dispersés physiquement disposant chacun d’une unité de traitement de données et d’un accès à un réseau de communication. Actuellement, les systèmes de communication sont basés sur des liaisons radiofréquences. De nombreuses normes pour les communications radiofréquences ont été mises en place ces dernières années (IEEE802.11, BLUETOOTH, ZIGBEE, …). Nous allons présenter dans le

Page 51: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-40-

paragraphe, un descriptif rapide des systèmes de communications actuels afin de mieux nous positionner quant au cahier des charges de notre système.

II.2.1 Communications Radiofréquences dans les bandes 433 & 868 MHz.

Ces modules de communication basés sur une modulation analogique fonctionnent sur des fréquences libres de 433MHz et 868 MHz. Les modules travaillant à 433MHz actuels permettent d’obtenir des débits jusqu’à 30kbits/s en FM et 3kbits/s en AM. Les modules 868 MHz sont plus performants en terme de débits puisqu’ils permettent de transmettre jusqu’à 50kbits/s. Plusieurs fabricants (AUREL, Mipot, Telecontrolli, Radiometrix…) proposent des modules d’émission/réception. Le Tableau II.1 résume les caractéristiques des principaux modules du marché :

Fournisseurs Fréquence d’utilisation

Débit Minimal Portée en espace libre maximum

Modulation

Modules GRAVITON 868-870 MHz 50Kbits/s 1,5 km FM Modules MIPOT 433 MHz 30Kbits/s 100m FM Modules AUREL 869 MHz 100kbits/s FM ou FSK

Tableau II.1. Comparaison des caractéristiques de communications Radiofréquences 433 et 868 MHz.

Ces modules sont inadaptés à notre cahier des charges, ne présentant pas de sécurisation des données.

II.2.2 Les réseaux personnels sans fil (WPAN : Wireless Personnal Area Network)

Les réseaux personnels permettent la communication entre différents appareils dans un rayon réduit. Actuellement, le réseau personnel le plus communément utilisé est celui basé sur la technologie Bluetooth. Deux nouvelles technologies émergent pour ce type de réseaux : une adaptée à des débits élevés UWB (Ultra Wide Band ou Ultra large bande), tandis que ZigBee autorise des connexions d’équipements faibles consommations.

II.2.2.1 Bluetooth [ELHO05] Le but principal de cette technologie est de supprimer les câbles et de permettre la

transmission de la voix et des données via une liaison radio courte distance. Bluetooth permettait initialement de faire communiquer un appareil maître avec sept autres appareils esclaves. Cette technologie est normalisée sous le nom IEEE 802.15.1 [802.15.1]. Les spécifications techniques de la dernière norme (Bluetooth 2.0) permettent de bénéficier de débits supérieurs allant jusqu’à 2 ou 3 Mbits/s dans un rayon de moins de 100 mètres. Les appareils compatibles Bluetooth utilisent des ondes radio sur la bande ISM (Industrial Scientific & Médical). Cette bande de fréquence est comprise entre 2,4 et 2,48 GHz, utilisable librement sans licence ni autorisation.

II.2.2.2 Ultra Wide Band [BLIN04][BRAC05] Cette technologie « âgée » de quarante ans n’est véritablement exploitée que depuis 2002.

Se basant sur un système de transmission d’impulsions de très courtes durées, elle offre la possibilité d’un débit élevé jusqu’à 480 Mbit/s pour une portée de 15 mètres. L’UWB utilise ainsi une bande très large de fréquence (entre 3,1GHz à 10,6GHz) pour échanger des données et répondre au standard IEEE 802.15.3 [802.15.3].

Page 52: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-41-

Cette norme UWB est plus répandue au niveau américain qu’au niveau européen. En effet, le spectre radio étant utilisé de manière différente aux Etats-Unis et en Europe, l’introduction de l’UWB génère des problèmes d’interférences avec les autres dispositifs sans fil utilisés en Europe.

II.2.2.3 ZigBee ZigBee est une norme de transmission de données sans fil permettant la communication

de machine à machine. ZigBee (aussi connu sous le nom IEEE. 802.15.4 [802.15.4]) est un prolongement de la norme HomeRF issu d’un accord stratégique de licence signé entre MicroChip et Adcon Telemetry. Les caractéristiques principales de cette technologie sont un faible débit, et un faible coût avec pour atout majeur une faible consommation. ZigBee utilise une méthode d’étalement de spectre par séquence directe DS-SS (Direct Sequence Spread Spectrum), et fonctionne sur la bande de fréquence de 2,4 GHz répartie sur 16 canaux.

Cette technologie a donc été créée pour le marché des réseaux sans fil domestiques (Home Area Network - HAN). Ces équipements doivent être bon marché, capables d’échanger des données, en consommant peu, de manière sécurisée et fiable. Aujourd’hui en 2005, les premiers kits de développement [FREE05] apparaissent et commencent à mobiliser les travaux de recherche [VDBO05].

II.2.3 Les réseaux locaux sans fil (WLAN : Wireless Local Area Network)

Un réseau local sans fil est une infrastructure de communication reliant des équipements informatiques et permettant de partager des ressources communes sur une aire limitée à quelques centaines de mètres. Afin de communiquer dans un WLAN, il existe deux modes de propagation : le mode point à point où la transmission s’effectue entre deux points fixes et le mode omnidirectionnel où la transmission s’effectue dans toutes les directions de l’espace. La technique de transmission utilisée pour ce type de réseau est l’étalement de spectre (nous reviendrons dans sur cette technique dans la partie II.3.6). Les problèmes majeurs liés à ce type de réseau sont la dispersion du signal et la génération d’interférences.

Le standard 802.11 a aujourd’hui le monopole mondial de ce type de réseau, et seul HiperLAN2 tente de le concurrencer en Europe.

II.2.3.1 La norme 802.11 Le standard 802.11 permet d'établir des liaisons point à point grâce à des antennes

bidirectionnelles sur de courtes distantes. La norme 802.11 est la norme de référence dans le monde des réseaux locaux sans fil. Des révisions ont été apportées à la norme originale afin d’optimiser le débit que nous présentons dans le tableau suivant [802.11].

Variantes de la norme Débit théorique (Mbits/s) Portée (m) Bande de fréquencesIEEE 802.11 1 ou 2 ≈10m 2,4 GHz

IEEE 802.11 b 11 ≈100m 2,4 GHz IEEE 802.11a 54 ≈30m 5 GHz IEEE 802.11g 54 ≈100m 2,4 GHz IEEE 802.11n 320 ≈30m 2,4 et 5 GHz

Tableau II. 2. Description des différentes normes basées sur IEEE 802.11.

D’autres extensions à cette norme existent, aussi nous pouvons citer IEEE 802.11e utilisée pour un réseau avec signalisation et présentant une qualité de service, la norme IEEE

Page 53: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-42-

802.11.f étendue pour le handover (passage d’une cellule à l’autre sans coupure) ou bien encore le standard IEEE 802.11i amélioré du point de vue sécurité. [PEYR05]

II.2.3.2 Le standard HiperLAN II [BAUD02] HiperLAN (High Performance Radio Local Area Network) est une famille de standards

pour les communications numériques sans fil à haut débit dans les bandes 5,15GHz- 5, 3GHz et 17,1 -17,3 GHz à l’initiative de l’institut de standardisation européenne (ETSI : European Telecommunications Standards Institute). Un émetteur-récepteur radio est installé sur chaque station mobile, il ne nécessite aucun point d’accès pour communiquer avec une autre station mobile. Par contre, des stations de bases sont nécessaires pour faire le lien entre la partie radio et la partie filaire existante d’un LAN. La bande allouée est d’une largeur de 10MHz autour de 5,2GHz. Le standard Hiperlan2 a été particulièrement développé pour fournir un débit aux réseaux IP, Ethernet, UMTS et aux futurs systèmes multimédia pouvant aller jusqu’à 54 Mbit/s (pour la couche physique). Ce débit important est rendu possible par l’utilisation d’une méthode de modulation multi-porteuses de type OFDM (Orthogonal Frequency Division Multiplex). L’espacement entre deux canaux est de 20MHz. Ce standard comporte une fonction handover offrant une possibilité de mobilité des terminaux mais dont la vitesse ne doit pas excéder 10m/s.

II.2.4 Les réseaux métropolitains sans fil (WMAN : Wireless Metropolitan Area Network) et les réseaux étendus (WWAN : Wireless Wide Area Network)

Comme leur nom l’indique, les réseaux sans fil métropolitains ont été crés pour assurer des communications au sein d’une ville ou d’un village. Les principaux standard sont WiMax, basé sur la norme 802.16 et MBWA pour des réseaux mobiles à hauts débits. Les réseaux WWAN sont quant à eux des réseaux étendus ou communément appelés réseaux cellulaires mobiles.

II.2.4.1 WiMax WiMax est le nom d’une marque destinée à labelliser des équipements compatibles avec

le standard américain IEEE.802.16 [802.16] et la norme européenne ETSI HiperMAN. Il permet un débit théorique de 70 Mbits/s sur un rayon de 50 km maximum [FOUR05].

II.2.4.2 MBWA Le MBWA (Mobile Broadband Wireless Access) est un standard en cours de

développement par le groupe IEEE 802.20. Il devrait permettre la mise en place de réseaux métropolitains mobiles avec des vitesses allant jusqu’à 250 km/h. Il utilise des bandes de fréquences en dessous des 3,5 GHz. Le débit théorique est de 1Mbits/s en descente et 300Kbits/s en montée. Toutefois, ce standard ne devrait pas être commercialisé avant 2007.

II.2.4.3 Les réseaux mobiles (WWAN) Il s’agit des réseaux sans fil les plus répandus puisque tous les téléphones mobiles sont

connectés à un réseau étendu sans fil. Les principales technologies sont les suivantes :

GSM (Global System for Mobile Communication ou Groupe Spécial Mobile) : Ce standard a été prévu initialement pour les applications de transport de la parole, de transmission de données à bas débits (9600 bits/s) autour des fréquences 935MHz-

Page 54: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-43-

960MHz ou 890-915MHz. Cette norme a permis l’essor des communications mobiles d’aujourd’hui.

GPRS (General Packet Radio Service) : Cette technologie est la première évolution de la norme GSM pour pouvoir atteindre des débits compatibles avec des applications à débits moyens de type multimédia.

UMTS (Universal Mobile Telecommunication System) : Cette norme UMTS a pour but de développer une meilleure couverture radio et d’augmenter le nombre d’abonnés par unité de surface et promouvoir l’acheminement des services 3ème Génération (3G). L’UMTS permet un débit théorique jusqu’à 2 Mbit/s.

II.2.5 Contraintes du milieu clos Le milieu de l’habitat est un milieu à fortes contraintes temporelles. On peut classer ces

contraintes en deux catégories : les problèmes posés par les interférences radio et les problèmes posés par le nombre d’utilisateurs.

II.2.5.1 Les interférences radio L’émergence des réseaux sans fil et de la téléphonie mobile, que nous venons de décrire,

rend le milieu clos, de plus en plus pollué en ondes électromagnétiques. Les ondes réellement perturbantes sont celles que l’on retrouve dans la bande passante et qui ne peuvent pas être filtrés. Les contraintes des interférences radio sont de deux types :

Brouillage des autres sources. L’allocation des fréquences étant régie par la loi, les systèmes de communication dans le milieu « INDOOR » opèrent sur les mêmes fréquences. Pour des transmissions hauts débits, seulement trois bandes de fréquences sont disponibles (2,4GHz, 5,2GHz ou 60GHz).

Multitrajets. Ceux-ci sont dus aux réflexions multiples propres à l’environnement de l’habitat (cloisons, plafond…). Ces réflexions vont créer des ondes dans la même gamme de fréquences mais retardées et atténuées de manière quasi aléatoire.

II.2.5.2 Le nombre d’utilisateurs Pour des systèmes émission / réception destinés à la communication dans un

environnement clos le nombre d’utilisateurs partageant le même médium devient une contrainte. En effet les réseaux de communication doivent prendre en compte le fait que plusieurs utilisateurs devront cohabiter sur le même canal. Les problèmes suivants sont alors soulevés :

Sécurisation permettant de garantir la confidentialité des informations transmises.

Contraintes liées aux techniques de multiplexages (méthodes d’accès) permettant le partage du médium.

Flexibilité en termes du nombre d’utilisateurs.

II.2.6 Comparatif des technologies de réseaux sans fil Le tableau ci-dessous résume les principales technologies de réseaux sans fil, présentant

leur dénomination commerciale, la norme associée, les débits autorisés ainsi que les caractéristiques techniques (Bande Passante, type de modulation, etc.) [CHRIWW].

Page 55: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-44-

Type

de

rése

au

Tech

nolo

gie

Nor

me

supp

orté

e

Déb

it th

éoriq

ue

Por

tée

max

imum

(m

=mèt

res)

Ban

de

de

Fréq

uenc

e

(MH

z)

Tech

niqu

e d’

étal

emen

t

Mod

ulat

ion

Modules radio AUREL

100kbits/s 869 FM ou FSK

Bluetooth IEEE.802.15.1 2 Mbits/s 100m 2402-2480 FH-SS GFSK UWB IEEE.802.15.3 Jusqu’à 50

Mbits/s ≈10m

250 kbits/s 10m 2400-2483,5

DS-SS O-QPSK

40 kbits/s 75m 902-928 DS-SS BPSK

WPA

N Zigbee IEEE.802.15.4

20 kbits/s 868-868,6 DS-SS BPSK Wi-Fi5 IEEE.802.11a 54 Mbits/s ≈30m

5500 OFDM

Wi-Fi IEEE.802.11b 11 Mbits/s ≈100m (intérieur) ≈400m (extérieur)

2400 OFDM

WLA

N

Wi-Fi IEEE.802.11g 54 Mbits/s ≈30m (intérieur) ≈100m (extérieur)

2400 OFDM

WiMax IEEE.802.16 70 Mbits/s 50 km 2500 ou 3500 ou 5860

OFDM

WM

AN

MBWA IEEE.802.20 1Mbits/s ≈100m <3500

Tableau II. 3. Comparatif des différents réseaux sans fil (WPAN, WLAN,WMAN )

Parmi les technologies identifiées, nous constatons que, seulement quelques normes fonctionnent dans la bande de fréquence de 2,4 GHz retenue pour notre système. Dans cette bande, deux technologies ont des caractéristiques intéressantes : la technologie Zigbee qui permet de transmettre à des faibles débits (250 kbits/s) et la technologie Bluetooth pour des plus hauts débits (2Mbits/s). Pourtant ces technologies ne correspondent pas à notre application, puisque l’autre paramètre important pour notre conception est la notion de transmission multi-canal permettant à différents types de débits d’être véhiculés. Au vu des résultats obtenus nous n’avons aucun standard correspondant à nos attentes. C’est pourquoi nous allons définir notre propre système de communication.

II.3 Description des éléments d’une chaîne de communication numérique

Afin de définir le cahier des charges technique, nous nous proposons dans le paragraphe suivant de définir les éléments théoriques propres aux communications numériques. Nous rappellerons et définirons les paramètres clés, propres à la caractérisation d’une telle chaîne (débit, TEB, efficacité spectrale du canal AWGN), puis nous focaliserons sur la technique d’étalement de spectre par séquence directe que nous devrons mettre en œuvre.

Page 56: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-45-

II.3.1 Chaîne de communication Une chaîne de transmission numérique est composée, entre un émetteur et un récepteur,

des éléments présentés sur la Figure II. 2.

Figure II. 2. Principaux éléments d’une chaîne de transmission numérique.

On peut donc distinguer différents blocs pour l’émetteur :

o Le bloc « codage source » permet de coder les données numériques issues du capteur (un taux de compression important) afin de les adapter à la modulation ultérieure.

o Une fonction « modulation » adapte les données du canal physique.

Entre l’émetteur et le récepteur, on trouve un bloc canal dépendant de la nature de l’application. Le canal est souvent composé d’une partie analogique appelée aussi radiofréquence.

Pour le récepteur, les fonctions sont à présent les symétriques de celles vues à l’émetteur.

o Un bloc de « démodulation » où l’on peut trouver une synchronisation pour retrouver le signal modulé.

o Un bloc de « décodage » des données.

II.3.2 Le codage en ligne Le codage source est une représentation électrique de l’information binaire. Le choix du

codage se fait en fonction du canal et de la technique de la modulation employée. Le terme codage en ligne est employé pour les modulations numériques qui ne sont pas sur fréquence porteuse donc en bande de base. Les principaux codes binaires existants sont les codes NRZ, RZ, biphase et bipolaire. La Figure II. 3 représente leurs densités spectrales de puissance, en fonction de la fréquence normalisée.

Figure II. 3. Représentation des codes sources selon leur densité spectrale.

Page 57: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-46-

Dans le cadre de notre travail de thèse, nous avons étudié plus particulièrement le code NRZ-L (Non Retour à Zéro) qui associe à chaque élément binaire d’un message (0 ou 1) un symbole (1 ou -1). La forme d’onde pour ce code est une créneau d’amplitude A, un bit « 0 » est représenté par une amplitude –A et un bit « 1 » par une amplitude +A. Cependant ce code ne présente pas de transitions lorsqu’il y a de longues séquences de 0 et de 1 ce qui est une difficulté lors de l’étape de synchronisation (cf. § II.5.4), mais en revanche, ce code est très facile à générer et il possède un taux d’erreur de bits inférieur aux autres codes.

II.3.3 Choix d’une modulation numérique Avant d’argumenter ce choix, nous commençons par définir les principaux critères

caractérisants une modulation numérique à savoir :

• Le débit.

• Le taux d’erreur sur les bits.

• L’efficacité d’occupation spectrale.

• L’efficacité de la puissance émise.

• La simplicité de réalisation.

Ces éléments sont définis dans le paragraphe ci-dessous, afin de dresser par la suite un bilan.

II.3.3.1 Quelques définitions utiles

II.3.3.1.1 Débit binaire Nous appellerons débit binaire D (bit/s) ou vitesse de canal le nombre d’informations

élémentaires (ou bits) que ce canal transporte pas unité de temps.

bTD 1= [Eq.II. 1]

Tb représente la durée du bit d’information, exprimée en seconde.

II.3.3.1.2 Taux d’erreur sur les bits Les modulations numériques sont évaluées grâce au taux d’erreur par bit (TEB). Il permet

de chiffrer l’influence du bruit (grâce au rapport signal sur bruit ou à l’efficacité de puissance) pour chaque modulation et en fonction du nombre d’états de la modulation. Il se définit de la manière suivante :

émisbinaireélementsdNbrefauxbinaireélementsdNbreTEB

__'___'_

= [Eq.II. 2]

La Figure II. 4 représente les taux d’erreur par bit en fonction du rapport du rapport Eb/N0 pour quatre modulations présentées dans le Tableau II. 4.

Page 58: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-47-

Figure II. 4. Exemple de valeurs de taux d’erreurs par bit.

II.3.3.1.3 L’efficacité spectrale L’efficacité spectrale (en Bit/Seconde/Hertz) d’un signal numérique est le nombre de bits

par seconde de données qui peuvent être supportés pour chaque hertz de la bande de fréquence utilisée (B en Hertz) :

)()/(

_ HertzBsBitD

occupéeBandeDébit

==η [Eq.II. 3]

On peut aussi noter que pour des applications où la bande passante est limitée par des contraintes physiques, il faut choisir une technique qui donne la plus haute efficacité spectrale, laquelle doit permettre d’obtenir de faibles taux d’erreur sur le bit en sortie du système.

II.3.3.1.4 Définition de l’efficacité en puissance Eb/No L’efficacité en puissance se définit par le rapport entre l’énergie moyenne Eb par bit

d’information et la densité spectrale d’un bruit blanc No/2.

Nous allons maintenant exprimer la relation entre l’efficacité en puissance et le rapport signal sur bruit (SNR (Signal Noise Ratio)). Tout d’abord, définissons le rapport existant entre l’énergie totale E et l’énergie moyenne Eb par bit dans un système à M états.

MEEb2log

= [Eq.II. 4]

La puissance S est définie comme le rapport entre l’énergie totale E et la durée d’un bit Tb, nous obtenons la relation suivante pour le rapport signal sur bruit :

BNTE

BNNS

b

TE

b

00

== [Eq.II. 5]

Page 59: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-48-

En utilisant les relations (Eq.II.1 et Eq.II.3) nous obtenons le rapport signal sur bruit (SNR)

o

b

o

b

b

NE

MNS

NE

BTM

NS

××=

×=

2

2

log

log

η [Eq.II. 6]

Cette relation montre que le rapport signal sur bruit dépend de l’efficacité spectrale et du nombre d’états M du système. C’est pourquoi pour comparer les différentes modulations numériques il vaut mieux s’intéresser à l’efficacité en puissance qui est une valeur indépendante du procédé de modulation.

II.3.3.1.5 La simplicité de réalisation La complexité d’un système dépendra de la sensibilité de la modulation aux

imperfections et de la cohérence de la démodulation. Dans le premier cas, la sensibilité augmente le nombre d’états pour la modulation, tandis que dans le deuxième cas, c’est la récupération de la porteuse qui augmente la complexité du système.

II.3.3.2 Modulation retenue La modulation choisie devra permettre de minimiser l’occupation spectrale pour un débit

binaire donné et la probabilité d’erreur selon la puissance et donc du rapport signal sur bruit.

Lors de l’établissement du cahier des charges [BOUR00] il a été distingué les modulations numériques suivantes :

• ASK : Modulation par sauts d’amplitude (Amplitude Shift Keying). La modulation se fait ici par saut d’amplitude.

• FSK : Modulation par sauts de fréquence (Frequency Shift Keying). La modulation se fait par saut de fréquence.

• PSK : Modulation par sauts de phase (Phase Shift Keying). La modulation se fait par saut de phase.

• QAM : Modulation d’amplitude en quadrature (Quadrature Amplitude Modulation). La modulation est une combinaison des deux précédentes modulations où l’information associée à la phase du signal mais aussi l’amplitude.

Le tableau suivant résume leurs performances en fonction de trois critères de choix : la résistance aux distorsions et aux perturbations, l’efficacité spectrale et la simplicité de réalisation.

Page 60: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-49-

Modulation Nombre d’états

Efficacité Spectrale

Eb/No pour un TEB de

10-6

Avantages Inconvénients

2 1 10,5 4 2 14,3

ASK 8 3 21

-Simplicité pour la démodulation et son faible coût - Avantageux si M<2

- Sensible aux non - linéarités du système

2 1 10,5 4 2 10,5

PSK

8 3 13,8

- Simple à réaliser -TEB meilleur que ASK

- Limitée pour M>8

2 1 11,3 DPSK 4 2 12,8

- Identiques au PSK - Plus simple à réaliser que PSK

Un peu moins performant que PSK

4 2 10,5 16 4 14,3

QAM

64 6 20,5

- η proportionnelle à M - TEB meilleur que PSK - Plus performant si M>8

Complexité de réalisation si M> 16

FSK Efficacité liée aux

fréquences porteuses

TEB dépend de l’indice de modulation

Moins sensible au brouillage des canaux adjacents

Faible efficacité spectrale

Tableau II. 4. Performances des modulations numériques retenues.

A la vue de ce tableau de synthèse sur les modulations et sachant que le milieu de propagation est particulièrement hostile, les critères qui ont été retenus sont la simplicité et la résistance aux multi-trajets. C’est pourquoi la démodulation différentielle PSK a été choisie et est de plus avantageuse pour le CDMA (Chapitre II §II.3.5.1.3).

II.3.4 Le Canal Maintenant, que nous avons défini les codes en ligne et les modulations numériques

possibles, nous allons définir le canal de transmission. Les canaux les plus utilisés pour le milieu clos sont le canal AWGN (Additif White Gaussian Noise) et le canal multi-trajets. Ces deux canaux seront modélisés pour évaluer les performances du système communicant. Le premier est utilisé afin de reproduire le bruit alors que le deuxième sera utilisé pour évaluer les performances par la présence de multi-trajets.

II.3.4.1 Le canal AWGN Le modèle du canal AWGN est composé selon le principe de la Figure II. 5 d’un bruit

blanc Gaussien ajouté dans le médium à l’onde modulée s(t) .

Figure II. 5. Modèle du canal AWGN

Un bruit blanc Gaussien est un processus aléatoire stationnaire puisqu’il est indépendant du signal transmis. La spécificité d’un bruit blanc réside dans l’uniformité de sa densité spectrale de puissance qui vaut N0 sur toute la bande de fréquences. Du fait de sa largeur de

Page 61: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-50-

bande théoriquement infinie, il est difficile d’exprimer le bruit blanc, c’est pourquoi l’on suppose que le bruit sommé au signal d’entrée du récepteur a été filtré par un filtre idéal, de largeur de bande B très grande devant la bande utile.

Le bruit blanc peut être rendu Gaussien par une distribution gaussienne. Ainsi, le bruit doit suivre la loi normale, ou loi de Gauss, régie par la densité spectrale suivante :

2

2

2)(

21)( σ

πσ

mx

exp−

−= [Eq.II. 7]

avec σ² qui représente la variance et m la valeur moyenne de la variable aléatoire x. La figure suivante représente p(x) la densité spectrale d’un bruit blanc gaussien.

Figure II. 6. Représentation d’une distribution gaussienne

Dans la mesure où la valeur moyenne du bruit est nulle, sa distribution s’écrit

2

2

2)(

21)( σ

πσ

x

exp−

= [Eq.II. 8]

II.3.4.2 Le canal multi-trajets La modélisation du canal multi-trajets permet de prendre en compte l’influence des

différents trajets dus à la diversité de propagation dans le milieu indoor (réflexions multiples) et d’observer l’influence des autres utilisateurs qui travaillent dans la même bande. L’équation [II.9] permet de modéliser un canal comprenant i utilisateurs et n multi-trajets.

∑∑ −=i n

nin tstr )()( τα [Eq.II. 9]

où r(t) est le signal en sortie du canal, αn et τn respectivement l’atténuation et le retard du trajet n et si(t) est le signal émis par l’utilisateur i. Pour définir les deux paramètres retard et atténuations, deux solutions sont envisageables, basées soit sur une méthode statistique, soit sur des mesures in situ mais propre à la topologie de l’environnement.

Page 62: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-51-

Figure II. 7. Représentation du principe du canal multi-trajets

Le modèle statistique [HASH93] consiste à définir les deux paramètres comme des variables aléatoires ayant une répartition la plus proche de la réalité. Cette méthode donne lieu à des modèles de canaux permettant d’évaluer les performances de manière générale. Le modèle de canal le plus répandu est celui à évanouissement où l’on considère la somme des trajets au niveau du récepteur à un instant t :

))((cos)( 0 Φ++= ttwRtr mθ [Eq.II. 10]

où )(tmθ représente la modulation, et R et Φ sont des variables aléatoires. R représente l’effet de la somme de tous les trajets sur l’onde reçue et Φ représente la phase des différents chemins qui sont considérés uniformément distribués sur (0:2π). Dans un canal à évanouissement, la variable R peut suivre deux lois : soit une loi de Rayleigh dans le cas d’un affaiblissement de Rayleigh, soit une loi de Rice lorsqu’on considère le cas d’un affaiblissement de Rice. Le canal de Rice est utilisé lorsqu’un trajet est prédominant par rapport aux autres trajets (par exemple dans le cas d’un émetteur et un récepteur en visibilité directe). On considère un canal de Rayleigh lorsque tous les chemins sont indépendants et d’atténuations comparables. Les modèles statistiques sont intéressants pour traiter des cas généraux, mais deviennent vite insuffisants pour étudier un cas réel.

II.3.5 Les méthodes d’accès Les communications hertziennes doivent utiliser la largeur des bandes de fréquences

allouées de manière optimale. Il s’agit en effet, d’une part de transmettre un maximum de données utiles par unités de temps entre la source et le destinataire, mais également de fixer les règles permettant à tous les émetteurs de communiquer de façon optimale. Il sera donc nécessaire de définir les principes de communication à l’intérieur du médium pour que les

Page 63: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-52-

utilisateurs puissent se partager le canal. Ces principes basés sur le partage de la ressource sont appelés techniques de méthode d’accès. Historiquement, ils existent trois possibilités de partage :

• le FDMA (Frequency Division Multiple Access) fractionne l’accès au médium par un partage en fréquence de la bande allouée.

• le TDMA (Time Division Multiple Access) partage l’accès au médium dans le temps

• le CDMA (Carrier Division Multiple Access) permet un accès multiple en nombre d’utilisateurs avec une répartition par code.

Nous allons à présent préciser chacune de ces méthodes d’accès et conclure quant à la méthode la plus intéressante pour notre application.

II.3.5.1 Définition des méthodes d’accès

II.3.5.1.1 Le FDMA Le FDMA (ou AMRF :Accès Multiple à Répartition dans les Fréquences) est la

technique la plus ancienne où les utilisateurs se partagent la bande passante du canal alors divisée. Chaque utilisateur se voit allouer une fréquence porteuse différente. La figure illustre le principe de répartition en fréquence du FDMA.

Figure II. 8 .Représentation temps –fréquence du FDMA

Il peut alors émettre en continu dans sa bande de fréquence propre. La largeur de la bande étant plus réduite que la bande totale autorisée, elle permet à cette technique d’être moins sensible aux interférences. Son inconvénient majeur est le manque de souplesse pour la réalisation d’un débit variable. Le nombre d’utilisateurs est fixé par le nombre de synthétiseurs de fréquence implantés dans le système.

II.3.5.1.2 Le TDMA Contrairement à la méthode précédente où chaque utilisateur travaille sur une porteuse

différente, le TDMA (ou AMRT : Accès Multiple à Répartition dans le Temps) utilise ici une fréquence fixe, son émission est alors restreinte à des intervalles de temps prédéfinis.

Page 64: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-53-

Figure II. 9. Représentation temps –fréquence du TDMA

Le temps est ainsi découpé en intervalles de longueurs fixes ou « Slots ». Nous ne pouvons pas émettre en continu, mais seulement à certains instants définis de façon périodiques, la transmission se faisant en rafales, le débit est plus grand que pour le FDMA mais entraîne une sensibilité plus importante aux interférences (un retard peut dégrader l’intervalle de temps suivant). Son inconvénient principal est la nécessité d’une synchronisation entre tous les utilisateurs avec une horloge commune.

II.3.5.1.3 Le CDMA La technique du CDMA (ou AMRC : Accès Multiple à Répartition par les Codes) repose

sur l’accès du canal par tous les utilisateurs, qui pourront émettre en continu et sur toute la largeur de bande disponible. Ce principe est généralement identifié comme une technique d’étalement de spectre.

Figure II. 10. Représentation temps / fréquence du CDMA

Ici, chaque utilisateur est reconnu grâce à un code qui lui est propre. Ce code, qui a un débit plus élevé que la donnée, a la propriété d’étaler le spectre de la donnée transmise. La récupération de l’information se fait en réalisant l’opération inverse, c'est-à-dire en décorrélant avec le code utilisateur identique. L’émission de chaque utilisateur est alors perçu par les autres utilisateurs comme un bruit. L’inconvénient de cette méthode est la diminution du débit réel dans la mesure où chaque bit de données sera codé par un mot de longueur inférieur et variable.

Page 65: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-54-

II.3.5.2 Critère de choix sur les méthodes d’accès Le mode TDMA paraît plus performant que le mode FDMA en terme de débit et de

souplesse, mais la méthode d’accès la plus adéquate pour les milieux clos apparaît être le CDMA car elle répond aux besoins suivants :

• Sécurisation de l’information grâce à la signature par code,

• Flexibilité car elle se superpose facilement à un système existant (peu perturbatrice et forte immunité aux perturbations grâce à l’étalement de spectre),

• Souplesse en termes de nombres d’utilisateurs et de débits grâce au code d’étalement,

• Accès parfaitement aléatoire.

D’un point de vue des interférences, des études ont montré [VITE85] [MAZO79] que le TDMA et le FDMA étaient plus avantageux si le milieu de propagation n’introduisait pas d’évanouissements. Dans le cas contraire nous allons montrer que grâce à l’étalement de spectre, le CDMA garantit de meilleures performances en milieu clos. C’est pourquoi la technique d’étalement de spectre s’impose comme technique de transmission.

II.3.6 L’étalement de spectre

II.3.6.1 Principe L’étalement de spectre permet de répartir l’énergie radioélectrique du signal émis sur une

bande de fréquences plus importante que celle qui est initialement nécessaire.

Il existe plusieurs techniques d’étalement de spectre :

• L’étalement par saut de fréquence (Frequency Hopping Spread Spectrum ou FH-SS) (Figure II. 11)

Pour cette technique, le signal change par sauts successifs de fréquences porteuses en fonction d’un code pseudo-aléatoire. Ce saut de fréquence peut être soit rapide (Fast FH-SS) ou lent (Low FH-SS) selon que le rythme des sauts est bien supérieur ou bien inférieur au rythme des symboles. Les avantages du FH-SS sont :

Sa résistance aux interférences bandes étroites présentes dans la bande du canal

Sa résistance aux problèmes au near/far. Les problèmes de near/far sont dus à des utilisateurs (A) d’un système fonctionnant en CDMA placés trop près d’un récepteur écoutant un utilisateur (B). En effet, si la puissance de (A) est trop importante alors la corrélation entre le code du récepteur et le message de (A) peut être supérieure à la corrélation du code récepteur et du message issu de (B). Dans ce cas, le récepteur n’accroche plus (B) et perd l’information. Là encore, grâce aux sous-canaux, le FH-SS est mieux immunisé car le problème ne se posera que lorsque (A) et (B) seront sur la même fréquence porteuse, alors qu’en DS-SS le problème est permanent.

Les inconvénients se trouvent dans la complexité de la réalisation et au niveau des performances de la synchronisation. En effet, pour que le récepteur se synchronise, il faut avoir une horloge commune pour l’émetteur-récepteur qui sera gérée par un maître. Le gain en traitement dépend de la longueur de la séquence de sauts de fréquence mais aussi des performances des synthétiseurs.

Page 66: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-55-

Figure II. 11. Spectre du signal étalé en FH-SS.

• L’étalement de spectre par séquence directe (Direct Sequence Spread Spectrum ou DS-SS) (Figure II. 12).

Cette technique permet de coder le signal émis par un autre signal binaire (appelé code de pseudo-bruit) ayant un débit plus élevé. Ce signal est alors perçu comme un bruit large bande et présente une densité spectrale représentée sur la figure ci-dessous :

Les avantages du DS-SS sont les suivants :

Un meilleur temps d’accroche comparativement au FH-SS.

Un gain en traitement plus facile à obtenir car il ne dépend que de la longueur de la fréquence.

Une synchronisation simple puisque le récepteur se synchronise par rapport à la trame reçue.

Figure II. 12. Spectre du signal étalé en DS-SS.

• Notons également l’étalement par saut de temps TH-SS (Time Hopping – Spread Spectrum) et le CDMA multi-porteuses (MC-CDMA) qui sont des techniques moins utilisées que les deux premières.

Pour notre application, nous retiendrons la technique DS-SS pour diverses raisons. D’abord, n’étant pas dans le cas de communications mobiles, les problèmes near /far effets peuvent être résolus par la disposition judicieuse des émetteurs/récepteurs. Ensuite les normes

Page 67: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-56-

émergentes et les comités de normalisation (ETSI pour l’Europe) encouragent fortement l’utilisation de l’étalement de spectre [NEWM86] ce qui tend à diminuer les interférences à bandes étroites aux fréquences allouées, rendant à terme, le DS-SS sensible au brouillage intentionnel. A cela s’ajoutent les avantages précités du gain de performances ainsi que la simplicité de réalisation qui sont des aspects importants pour la réalisation du système en terme de surface et de coût.

Nous allons développer dans le paragraphe suivant l’étalement de spectre par séquence directe.

II.3.6.2 L’étalement de spectre par séquence directe

II.3.6.2.1 Le principe de l’étalement de spectre par séquence directe L’étalement de spectre par séquence directe (DS-SS) est une modulation de la trame de

symbole à transmettre (d(t)) par une séquence d’étalement pseudo-aléatoire c(t) (Code d’étalement ou Pseudo-Noise Code). Le PN-Code va ainsi diviser le code à transmettre en sous intervalles dénommés « Chip » de période bien plus petite que celui du bit à transmettre (la période du bit à transmettre étant le temps symbole). La mise en œuvre de l’étalement de spectre par séquence direct est illustrée avec la figure suivante.

Den

sité

Spe

ctra

le

Den

sité

Spe

ctra

le

Figure II. 13. Représentation schématique des principales fonctions

Les trois principales fonctions à mettre en œuvre pour cette technique DS-SS sont la génération des codes d’étalements (PN-Code), la corrélation à l’émission qui permet d’étaler la donnée à transmettre et la décorrélation à la réception qui permet de récupérer la donnée transmise en remontant le signal au dessus du bruit.

II.3.6.2.2 Les séquences pseudo-aléatoires Le code d’étalement, comme nous l’illustrons sur la Figure II. 14, permet de diviser en

sous intervalles le bit à transmettre. Pour ce faire, il suffit de multiplier, au sens booléen du terme (Ou Exclusif) la donnée à émettre et le code d’étalement c(t).

Page 68: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-57-

Figure II. 14. Exemple d’un codage par étalement de spectre par séquence directe.

Les séquences pseudo-aléatoires c(t) possèdent des propriétés mathématiques particulières. Tout d’abord, afin de ne pas modifier les propriétés statistiques du signal émis (et par conséquent son spectre), elles doivent être le plus faiblement auto-corrélées :

( ) ( ). ( ) 0 pour 0cR c t c t dtτ τ τ+∞

−∞= − = ≠∫ [Eq.II. 11]

où Rc(τ) représente la fonction d’autocorrélation de c(t).

Afin d’assurer la sécurité et d’éviter le brouillage des sources entre-elles, les séquences doivent être le plus faiblement intercorrélées :

( ) ( ). ( ) 0i jc c i jR c t c t dtτ τ

+∞

−∞= − =∫ [Eq.II. 12]

Où ci et cj représentant deux séquences différentes.

Enfin, pour permettre la synchronisation, elles doivent posséder un pic d’autocorrélation le plus étroit possible :

(0) ( ). ( ) 1cR c t c t dt+∞

−∞= =∫ [Eq.II. 13]

Comme ces propriétés sont celles d’un process stochastique proche du bruit, on les nomme séquences pseudo-aléatoire (ou pseudo-noise sequences).

La fonction d’autocorrélation [Eq.II.11] peut être tracée à l’aide du logiciel SABER et représentée sur la Figure II. 15.

Page 69: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-58-

-0,2

0

0,2

0,4

0,6

0,8

1

1,2

0 50 100 150 200 250 300 350 400τ (ns)

Rc(τ)

Rc (N=15)

Corrélation

-0,068

Corrélation

Figure II. 15. Fonction d'auto corrélation pour N=15 (Ts=375ns, Tc=25ns).

Au vu de ces propriétés mathématiques, il semble important que la synchronisation, entre le code à la réception et le code à l’émission, se fasse correctement. Dans le cas d’un écart temporel entre les deux codes, seul le bruit étalé pourra être récupéré au niveau du récepteur. Cet organe de synchronisation est composé de deux étages, un qui permet de rechercher rapidement un pic d’autocorrélation dans le signal reçu et l’autre qui permet d’affiner cette recherche. Ces deux fonctions s’appellent respectivement organe de synchronisation et boucle à verrouillage de délai et seront détaillées dans le paragraphe (Chapitre II §II.5.4.2.2 et §II.5.4.3).

II.3.6.2.3 L’étalement à l’émission L’étalement de spectre correspond à la multiplication du PN-Code généré à l’émission

avec la donnée binaire éventuellement codée à émettre comme l’illustre la figure suivante.

Figure II. 16. Principe de l’étalement de spectre à l’émission.

Supposons que c(t) soit une séquence NRZ (Non Retour à Zéro) prenant ses valeurs dans l’alphabet {-1, +1}, c(t) s’écrit alors :

∑+∞

−∞=

−=n

cn nTtgCtc )(.)( [Eq.II. 14]

où g(t-nTc) est la forme du signal (Signal Shape), et Cn représente la séquence transmise tirée d’un alphabet binaire {-1, +1}.

Modulateur PSK

Donnée binaire d(t)

Donnée étalée d(t)c(t)

Signal étalé Se(t) )cos()()(2 twtctdP o

PN-Code c(t)

Porteuse)cos(2 twP o

Page 70: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-59-

Supposons ensuite que sd(t) soit un signal DBPSK (Differential Binary Phase Shift Keying) défini comme suit :

)](cos[).()( 0 ttwtats dd θ+= [Eq.II. 15]

avec w0 la pulsation de la fréquence porteuse, Pta 2)( = l’enveloppe constante d’une porteuse de puissance P et )(tdθ la phase de modulation faisant des sauts de 180° codant l’information transmise en différentiel. Il apparaît alors que le signal peut aussi être exprimé de la manière suivante :

)cos()(2)( 0twtdPtsd = [Eq.II. 16]

avec d(t) l’information codée en différentiel.

Une fois étalé, le signal à transmettre est noté :

)cos()()(2)( 0twtdtcPtse = [Eq.II. 17]

A partir de la densité spectrale de puissance du signal NRZ, on obtient aisément la densité spectrale de puissance de sd(t) et de se(t) si l’on considère que c(t) est parfaitement aléatoire. Cette hypothèse n’est pas loin de la réalité puisque les séquences sont calculées [ISCC95] pour être faiblement corrélées. Les densités spectrales de puissance du signal représentant les données SSd et du signal étalé en sortie de l’émetteur sont :

( )[ ] ( )[ ]{ }SSSSd TfofcTfofcPTfS ++−= 22 sinsin21)( [Eq.II. 18]

( )[ ] ( )[ ]{ }CCCSe TfofcTfofcPTfS ++−= 22 sinsin21)( [Eq.II. 19]

où Ts=N Tc.

Leur représentation associée est illustrée sur les figures (a) et (b) de la Figure II. 17 dans le cas d’un facteur d’étalement de longueur N=3.

On observe que la densité spectrale du signal étalé est divisée par N alors que le spectre est étalé de la valeur N.

Page 71: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-60-

Figure II. 17. Densité spectrale de puissance du signal de donnée et du signal de donnée étalé (N=3)

II.3.6.2.4 Le désétalement par corrélation A la réception, le désétalement s’obtient en corrélant le signal reçu avec un PN-code

généré localement et identique à celui utilisé en émission. La Figure II. 18 en illustre le principe.

Figure II. 18. Principe de la décorrélation à la réception.

L’opération de décorrélation est un point crucial de l’organe de réception. Pour qu’elle se passe correctement, il faut estimer le retard Td apporté par le canal. Cette estimation sera faite par l’organe de synchronisation. Le signal en sortie du multiplieur s’exprime

0'( ) 2 ( ) ( ) cos[ ( )]m d d d ds t Pc t T c t T w t t Tθ= − − + − [Eq.II. 20]

où 'dT est le retard estimé. Si on suppose que la corrélation est totalement réalisée après le

filtrage passe-bande (qui réalise ainsi une fonction d’intégration) et que l’on néglige les distorsions apportées par ce filtre, alors le signal en sortie du décorrélateur est :

[ ])(cos)(2)()( 0'

ddddcfiltrémc TttwTTRPtsts −+−== θ [Eq.II. 21]

(a)

(b)

Page 72: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-61-

Si la synchronisation joue son rôle correctement alors Td=Td’ ce qui rend la fonction d’autocorrélation Rc maximale (égale à 1) et le signal est correctement désétalé. Si par contre |Td|>Td’, les propriétés d’autocorrélation entraînent une fonction Rc minimale. C’est pourquoi la partie synchronisation et en particulier la poursuite seront les organes qui détermineront les performances du système.

La partie décorrélation ne peut évidemment se dérouler correctement que si les PN-Codes de l’émission et de la réception sont égaux. En effet si la donnée binaire est étalée avec un PN-Code ci(t) et que la décorrélation se fait avec un PN-Code cj(t), le signal en sortie du corrélateur s’exprime de la manière suivante :

[ ] 0)(cos)(2)( 0 =−+= ddjid TttwccPts θτ [Eq.II. 22]

au vue des propriétés d’intercorrélations [Equa.II.12]

L’autre propriété importante de la corrélation en réception est l’augmentation du rapport signal sur bruit en sortie du démodulateur d’un gain (dénommée Gp) par rapport au rapport signal sur bruit en entrée du démodulateur (cf. Equation II.16).

1010 log PdB

S P GN J

⎛ ⎞= +⎜ ⎟⎝ ⎠

[Eq.II. 23]

( )10 avec 10 log psortie entréedémodulateur démodulateur

S SG NB B

⎛ ⎞ ⎛ ⎞= = −⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠

[Eq.II. 24]

Ce gain, dénommé gain en traitement, ou gain en process (Gp) est directement fonction du facteur d’étalement N.

II.4 Caractéristiques retenues pour le système désiré A la lumière de cet état de l’art sur les communications numériques, il devient possible de

dresser un cahier des charges en vue de la réalisation du système final. Le but premier est de réaliser un système de communication radiofréquence pour la communication entre capteurs et vers un système central, dans un environnement clos. Le système a la vocation d’être le plus flexible, multicanaux avec un canal haut débit (5 Mb/s) tout en assurant un TEB d’environ 10-6.

De ces considérations, découle le cahier des charges suivant :

Page 73: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-62-

Fréquence porteuse 2,44 GHz norme 802.11.b

Bande passante 80MHz norme 802.11.b

Modulation DBPSK/DQPSK performance et réalisation

Méthode d’accès CDMA Flexibilité

Technique d’étalement DS-SS performance et réalisation

S/N en entrée du démodulateur 11dB TEB et modulation

S/N en sortie de l’étage RF 3 dB 11dB-Gpmin

Particularité Générateur de PN Code programmable

Filtrage de Nyquist non optimal (Fcoupure= 1/Tchip)

Tableau II. 5. Caractéristiques retenues pour la réalisation d’un prototype de communication entre capteurs.

Le cahier des charges étant fixé, il est possible de dresser un synoptique du système global. Ce système, présenté sur la Figure II. 19, comporte toutes les fonctions de base permettant l’émission et la réception des données numériques.

Le principe de chaque fonction sera détaillé dans la suite de ce chapitre.

Figure II. 19. Schéma de principe global du système Emetteur/Récepteur

Données reçues

SYNCHRONISATIONPOURSUITE

DESETALEMENT

GENERATEURDE PN CODE

DEMODULATEUR DIFFERENTIEL

TRANSPOSITION EN FREQUENCE

ETALEMENT CODAGE DIFFERENTIEL

MODULATION

MISE EN FORME

FPB

Horloge de Rythme

PN - Code

Données émises

Osc Local2.44 GHz

FPB LNA A

GENERATEURDE PN CODE

Osc Local2.44 GHz

Capteur de température

Video/Voix Capteur de position

Code 1 N=2047 Code 2 N=7

Traitement des données

LNA

Canal AWGN

Données

EMETTEUR

RECEPTEUR

Bruit Blanc Gaussien

A

Page 74: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-63-

Les fonctions présentées sur ce synoptique à modéliser et à optimiser sont :

La partie émission : Elle comprend les étages numériques réalisant le codage des signaux issus des capteurs et la fonction étalement de spectre. Ce dernier étage permet d’étaler le signal codé grâce au codage de l’information par l’intermédiaire d’une séquence pseudo – aléatoire. La partie radiofréquence (RF) émet le signal étalé sur une porteuse de 2.44 GHz (Bande ISM).

Le canal AWGN (Additif White Gaussian Noise). Il comprend un étage pour la génération d’un bruit blanc gaussien et un étage dans lequel le bruit est additionné au signal étalé sur fréquence porteuse.

La partie réception : La partie radiofréquence transpose le signal reçu en bande de base. La fonction désétalement permet enfin de désétaler les données reçues et ainsi récupérer la trame émise. Pour faire cette opération, les systèmes communiquants à étalement de spectre requièrent que le PN – code généré localement soit synchronisé avec la séquence de la donnée étalée pour que le désétalement soit correct. C’est pour cela que nous trouvons la présence des organes de synchronisation et de poursuite.

II.5 Description fonctionnelle des fonctions à modéliser Dans ce paragraphe, nous aborderons les différents organes de notre système. Pour

chaque organe présenté nous exposerons leurs principes et leurs modèles associés. Ils seront validés de manière qualitative par l’observation des signaux principaux sous le logiciel SABER.

Figure II. 20. Principe des fonctions à modéliser.

Les données binaires (tri(t)) issues des capteurs sont encodées différentiellement puis étalées avec le code d’étalement c(t) issu du générateur. Après avoir été modulé, le signal doit être filtré au moyen d'un filtre passe bande (où filtre gabarit) limitant la largeur de bande du signal selon les normes en vigueur. Dans notre application, la fréquence centrale du filtre est de 2,44 GHz et sa largeur de bande de 80 MHz. A ces fréquences, la réalisation d’un tel filtre est très délicate, c’est pourquoi nous avons décidé de réaliser le filtrage de Nyquist avant la modulation. En effet, il sera plus aisé de filtrer le signal en bande de base qu’en bande portée à 2,44 GHz. Cela ne change rien dans le principe puisque l’occupation spectrale est fixée par le signal en bande de base. De plus, comme le filtrage est réalisé en amont du modulateur, l’utilisation d’un filtre numérique sera possible [LEE98].

Enfin, en ce qui concerne la puissance du signal, elle doit être normée (Pe=100 mW selon les normes ETSI). Si on suppose un filtrage idéal, le signal émis s’écrira donc :

))(cos(2)( 0 ϕθω ++= ttPte de [Eq.II. 25]

Nous allons à présent détailler ces différentes fonctions.

Page 75: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-64-

II.5.1 Principe de la modulation différentielle Comme nous venons de le voir dans le paragraphe précédent, il a été choisi d’implanter

un modulateur différentiel de phase réalisant l’opération de codage différentiel des données issues des capteurs. Le signal à transmettre n’est donc plus un simple bit mais une information relative à la comparaison avec le bit précédent. Cette comparaison représentera un saut de phase et non un état de phase comme pour les modulations traditionnelles. Ainsi, un saut de phase vaut 1 si deux bits successifs sont identiques et 0 si les deux bits sont différents qui sera traduit avec le codage suivant :

001

=Δ⇔==Δ⇔=

di

di

trtr

θπθ

[Eq.II. 26]

avec tri la donnée à transmettre et dθΔ le saut de phase. Le tableau suivant fait état de la table de vérité de l’encodeur BPSK en donnant la valeur de la phase instantanée di en fonction de l’information à transmettre tri et l’état de phase précédent di-1.

d i-1 0 0 1 1

tri ⇒ dθΔ 0⇒ 0 1 ⇒ π 0⇒ 0 1⇒ π

d i 0 1 1 0 Tableau II. 6.Table de vérité du codeur de transition.

Nous déduisons immédiatement du tableau précédent l’opération logique liant l’information à transmettre et le signal encodé :

1−⊕= iii dtrd [Eq.II. 27]

Cette fonction est représentée par la fonction OU exclusif .

II.5.2 Modélisation du générateur de PN Code Les codes d’étalement appelés aussi PN-code, sont des séquences binaires possédant de

bonnes propriétés de bruit [Eq.II.12]. Il existe différentes classes pour les séquences pseudo-aléatoires qui comportent deux grandes familles non périodiques (Séquence de Barker) et périodiques (M-Sequences, Séquences de Hall, Séquences Jumelles, Séquences de Legendre) [ISCC95] [SIMO94]. Nous avons choisi d’utiliser la sous-famille des M-séquences (ou Maximal-length sequences) pour les raisons suivantes :

o Elles sont périodiques et donc plus facilement synthétisables par un circuit numérique.

o Elles sont générées au moyen d’un polynôme caractéristique, dont les coefficients sont paramétrables par un circuit numérique.

La fonction d’autocorrélation présente à l’origine (décalage nul) un maximum, leur intérêt majeur est d’être facilement généré grâce à des registres à décalages linéaires et donc synthétisables dans l’objectif d’intégration numérique.

II.5.2.1 Principe de la génération des M –séquences La séquence aléatoire (b0, b1,b2, …bn) que nous voulons produire grâce à ce générateur

peut être représentée par le polynôme suivant :

Page 76: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-65-

nn DbDbbDbDb ++++= −

− ...)( 110

11 [Eq.II. 28]

Cette séquence b(D) peut être produite par un générateur de registre à décalage rebouclé comme le montre la figure suivante :

Figure II. 21. Générateur de séquence rebouclé de type Galois.

Le polynôme a(D) est la séquence chargée dans les registres à décalage et le polynôme g(D), symbolisé par des interrupteurs ouverts ou fermés selon la valeur des coefficients de g(D), représente l’architecture du générateur. Les polynômes g(D) utilisés sont choisis de telle sorte que b(D) ait les propriétés d’un PN-Code. Ces polynômes sont dits primitifs et ont été étudiés et listés par Perterson et Weldon [ISCC95].

Le calcul de la séquence b(D) ainsi généré, se fait grâce à une division polynomiale des polynômes a(D) par g(D) également dénommé polynôme caractéristique du générateur.

)()()(

DgDaDb = [Eq.II. 29]

Pour que la séquence b(D) soit de longueur maximale (propriété de M séquences), il faut que le polynôme g(D) soit irréductible et que la période P = 2r-1 soit le plus petit entier. Pour cela, il faut que g(D) soit un polynôme primitif [ISCC95].

Un autre type de générateur, développé par Fibonacci, permet de générer des M séquences. Ce dernier génère la même trame à partir du même polynôme mais avec une structure différente. Ces deux types de générateurs (Galois et Fibonacci) sont implantés dans notre système. Ils ont été développés grâce aux travaux de Chien et Jain [JAIN92], sur les générateurs programmables de longueur maximale N=215-1. Le générateur de Galois est utilisé à l’émission car il est plus simple à mettre en œuvre et plus rapide tandis que le générateur de Fibonacci sera utilisé à la réception car il permet d’initialiser le démarrage des séquences par une trame série issue de la séquence (Chapitre II §II.5.4.4).

II.5.2.2 Simulation sous le logiciel SABER La structure du générateur de Galois a été simulée sous le logiciel SABER et peut être

programmée par 2 mots parallèles c(n) et i(n).

Le premier mot représente la valeur du coefficient c(n) permettant de choisir la longueur du PN-Code. Le coefficient c(n) est calculé à partir du polynôme primitif g(D) auquel on retranche la valeur g0 (coefficient qui permet le rebouclage) :

0)()( gDgnc −= [Eq.II. 30]

Le deuxième mot i(n) est le vecteur d’initialisation du registre à décalage toujours égal à 1 afin d’ « amorcer » le système bouclé. L’exemple de la figure suivante générant un PN-code

a r-1

g r-1

a r-2 a 2 a 0 a 1

g 0

b(D)

g r

g 3

g 2

g 1

Page 77: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-66-

de longueur N=15, fixe le coefficient c(n) à 9 soit [000000001001], et le vecteur d’initialisation i(n) à 1.

Figure II. 22.Générateur Galois avec les modules de configuration.

Le polynôme primitif pour la valeur de coefficient c(n) choisie vaut g(D)=1+D+D4 (010011)b [2 3]O. La valeur du vecteur d’initialisation i(n) équivaut à a(D). On peut donc retrouver après calcul, la valeur de la séquence b(D) par la division polynomiale de a(D) par g(D). Dans notre cas, nous obtenons b(D)= 111101011001000 qui permettra donc de générer un PN-Code de longueur 15.

Le tableau suivant nous présente la correspondance entre la valeur du polynôme primitif g(D), la valeur du coefficient c(n) et la valeur du PN-Code.

Coefficients

Horloge Chip

Démarrage PN_Code

Initialisation

I(n)

c(n)

Page 78: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-67-

N Valeur octale g(D)

Coefficient c[n] Valeur du PN code b(D)

7 [13] 000000000101 1110100

15 [23] 000000001001 111101011001000

31 [45] 000000010010 1010111011000111110011010010000…

63 [103] 000000100001 1111110101011001101101001001110…

127 [211] 000001000100 1001001101001111011100001111111…

255 [435] 000010001110 1011000111101000011111111001000…

511 [1021] 000100001000 1000100011001000111010101101100…

1023 [3023] 001100001001 1111010111101110010011111000100…

2047 [4005] 010000000010 1010101010111011101110010011100… Tableau II. 7. Configuration du générateur de PN code à partir du coefficient c[i].

La figure suivante représente le schéma électrique du générateur de Galois qui est composé de bascules D et d’une porte logique OU-Exclusif qui forment le registre à décalage, et de portes ET pour la configuration du polynôme primitif. Le mot d’initialisation i(n) est lui créé grâce à des portes NON ET et NON .

Clo

ck_i

n

D F

F

q

rcl

kcl

k

sd

qnD F

F

q

rcl

k

sd

qnD

FF

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

D F

FD

FF

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

D F

FD

FF

q

rcl

k

sd

qn

SET

set_

l4

leve

l:_1

el:_

1

D F

FD

FF

q

rcl

k

sd

qn

D F

F

q

rcl

kcl

k

sd

qnD F

F

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

D F

FD

FF

q

rcl

kcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

D F

FD

FF

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qnD F

F

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

D F

FD

FF

q

rcl

k

sd

qn

D F

FD

FF

q

rcl

kcl

k

sd

qn

D F

F

q

rcl

k

sd

qnD F

F

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

D F

FD

FF

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qnD F

F

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

D F

F

q

rcl

k

sd

qn

PN

_out

Load

_C

Bascule D

c(n)

i(n)

Figure II. 23. Exemple d’un modèle de générateur de Galois.

Page 79: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-68-

II.5.3 Modélisation de la fonction corrélation Le corrélateur est l’élément essentiel (aussi bien à l’émission qu’à la réception) pour un

système à étalement de spectre, puisqu’il détermine les propriétés fondamentales du gain en traitement et de l’immunité aux multi-utilisateurs. Nous présentons dans cette partie le modèle de la corrélation à l’émission.

II.5.3.1 Corrélation à l’émission Pour l’émission la corrélation consiste à mélanger la trame émise et encodée

différentiellement avec le PN-Code généré localement pour produire un signal modulé et étalé se(t) d’après l’équation [Eq.II.11] :

[ ]LdLe TdtwtdtcPttwtcPts ϕθϕ +−=++= )(cos)()(2))(cos()(2)( 00 [Eq.II. 31]

où c(t) représente le PN-Code et d(t) la donnée binaire.

La multiplication entre la donnée binaire et le PN-code peut être réalisée numériquement par un OU-Exclusif inversé (ET-inclusif) comme le montre la table de vérité suivante :

d(t) di c(t) ci d(t)×c(t) ii cd ⊕ ii cd ⊕

1 1 1 1 1 0 1

1 1 -1 0 -1 1 0

-1 0 1 1 -1 1 1

-1 0 -1 0 1 0 0

Tableau II. 8. Table de vérité révélant la fonction d’étalement de spectre

di et ci correspondent respectivement aux valeurs numériques de trames d(t) et c(t) initialement codées en NRZ.

Il est toutefois possible d’utiliser un simple OU_EXCLUSIF, l’information transmise sera alors inversée. Le schéma de principe modélisant la fonction de corrélation de l’émission peut donc être représentée de la manière suivante :

Figure II. 24. Modèle de l’émetteur avec le corrélateur.

Le modèle implanté sur le simulateur nous permet de valider le principe de corrélation à l’émission. Les chronogrammes présentés sur la Figure II. 24 représentent les différentes formes d’ondes présentes à l’émetteur avec les paramètres suivants :

Page 80: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-69-

Un temps symbole Ts= 375ns.

Un coefficient d’arrondi du filtre de Nyquist valant ici 0,35.

La trame émise [10111001].

Figure II. 25. Principales formes d’ondes de l’émetteur avec le corrélateur.

II.5.3.2 Corrélation à la réception Le corrélateur à la réception est l’organe clef du système de réception puisque c’est lui

qui détermine les performances (gain en traitement) permettant de rehausser le rapport signal sur bruit [CHUN93]. Comme nous l’avons montré précédemment (§ II.3.6.2.4) la décorrélation s’effectue en réalisant les opérations analogiques de multiplication et intégration avec un multiplieur et un filtre passe-bas pour une implantation en numérique [MELE01]. Plusieurs possibilités d’architectures ont été envisagées. La solution retenue est présentée sur la Figure II. 26 . Il a été montré[MELE01] que cette structure permet de maintenir un gain en traitement suffisant proche de sa valeur théorique, tout en conservant une architecture simple.

Figure II. 26. Schéma de principe pour la corrélation numérique en réception.

Ce schéma est validé par la simulation suivante des principales formes d’ondes pour un corrélateur à la réception.

Signal désétalé Sc(t) )cos()()'(2 twTdtdTdTdRcP o−−

PN-Code c(t-Td’)

EchantillonnageBlocage

Signal étalé reçu Sm(t) )cos()()(2 twTdtcTdtdP o−−

Intégrateur

∑−× 1)4(

0

N

Intégrateur Bloqueur

Fréquence d’échantillonnage

Trame émise

Trame encodée

D(t)_PN Sortie corrélateur

D(t)_PN_filt sortie filtre de Nyquist

Page 81: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-70-

Figure II. 27. Principales formes d’ondes pour le corrélateur au niveau du récepteur.

Base_r_z représentant le signal reçu étalé Sm(t).

Yl représentant le signal Sm(t) multiplié par le PN_Code local c(t-Td’).

Yl_int_z est le signal intégré sur une période de symbole.

Yl_échant est la sorite du filtre Intégrateur/Bloqueur Sc(t).

II.5.4 Modélisation de l’organe de synchronisation Avant de modéliser notre organe de synchronisation, nous définirons la problématique de

la synchronisation pour un système à étalement de spectre en exposant les principes sur lesquels elle se base.

II.5.4.1 Problématique de la synchronisation d’un organe à étalement de spectre

Le code pseudo-aléatoire d’étalement présente de bonnes propriétés d’autocorrélation ce qui autorise la synchronisation lors d’une inter-corrélation. En effet, pour que le désétalement se passe correctement, il est nécessaire que le PN-Code soit en phase avec le signal reçu ce qui permettra de minimiser l’erreur de corrélation et donc de maximiser le gain en traitement. La synchronisation du PN-Code est donc un point crucial au niveau du récepteur et se déroule en deux temps : la première fonction que nous appellerons « acquisition » permet d’aligner le code identique à l’émission et localement généré avec le signal reçu grâce à la détection d’un pic d’autocorrélation. La deuxième fonction, la « poursuite » permet de maintenir un alignement fin des données reçues. La figure suivante illustre ces différents éléments en présentant un schéma synoptique de l’ensemble de synchronisation en réception.

Page 82: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-71-

Figure II. 28. Schéma de principe de l’organe « Acquisition/ poursuite ».

Dans les paragraphes suivants, nous présentons le principe de fonctionnement mis en œuvre pour différents organes recensés pour les fonctions acquisition et poursuite. Nous présentons dans ce cadre deux dispositifs permettant l’acquisition pour un système à étalement de spectre en milieu bruité dont les performances associées détermineront le choix de la structure finale pour notre implantation.

II.5.4.2 Principes de mise en œuvre de la fonction acquisition Les différents moyens pour retrouver l’origine du PN-Code pour un système à étalement

de spectre sont résumés dans l’organigramme suivant [SIMO77].

Figure II. 29. Organigramme des différentes possibilités d’acquisition.

Les recherches pour l’origine du PN-Code, dans l’étage désétalement, peuvent se décomposer en deux catégories :

Le filtrage adapté: cette structure permet d’utiliser un filtre adapté au code d’étalement.

Filtrage adapté

CORRELATION

Désétalement pour un système DS/SS

SERIE Estimation Séquentielle

RASE Rapid Acquistiion by

Sequentiial Estimation

RARASE

Fixed Dwell TimeVariable Dwell Time

Single Dwell Time Multiple Dwell Time

Page 83: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-72-

La correlation : Ces structures sont basées sur l’emploi d’un ou plusieurs corrélateurs. Ils existent deux principales techniques qui sont :

• La recherche SERIE examine toutes les possibilités d’alignement du PN-Code généralement à l’aide de détecteur. Les possibilités d’alignement peuvent se faire soit pour une période fixe (qui peut être simple ou multiple), soit pour une période variable.

• Une estimation séquentielle du PN-Code qui permet à partir du signal reçu de retrouver le PN-Code.

L’étage de détection est quant à lui composé d’un détecteur de maximum de vraisemblance permettant d’évaluer à partir du vecteur de décision, quelle information a été transmise.

II.5.4.2.1 Mise en œuvre de la fonction d’acquisition L’acquisition se base sur deux grands principes à savoir, la corrélation et le filtrage

adapté.

II.5.4.2.1.1 L’acquisition par corrélation

Comme nous l’avons énoncé dans le paragraphe II.3.6.2.4, la méthode dite de corrélation résulte d’une multiplication entre le signal reçu r(t) et le PN-code ci(t) suivie par une intégration de ce résultat sur une durée T (dans notre cas le temps symbole). Ce calcul représente aussi la fonction d’intercorrélation en r(t) et ci(t). On récupère ainsi l’image de l’onde transmise et donc de l’information. Dans le cas de l’acquisition par corrélation en réception, le principe repose sur la mise en parallèle de plusieurs branches, réalisant chacune cette fonction corrélation entre le signal bruité reçu et le code d’étalement volontairement retardé.

Figure II. 30. Synchronisation par corrélation.

Le signal r(t) passe à travers K corrélateurs en parallèle qui assurent l’image ri(t) composée par chaque branche de corrélation. On obtient alors l’équation suivante :

Page 84: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-73-

[ ]∫∫ +==SS T

i

T

ii dttctntydttctrtr00

)()()()()()( Eq.II. 32]

avec r(t) le signal étalé reçu , y(t) le signal émis, n(t) le bruit et c(t) l’ensemble des fonctions orthonormés (pour nous les PN-Codes).

A partir de la banque de résultats ri(t), en fin de chaque branche, nous trouvons la fonction détection, non représentée ici, qui sera décrite dans une partie ultérieure (Chapitre 2 §II.5.4.2.1.3).

II.5.4.2.1.2 L’acquisition par filtrage adapté

La seconde méthode est appelée « filtrage adaptée ». Le principe du filtrage adapté est la recherche d’un filtre f(t) tel que le rapport signal sur bruit soit maximal à l’instant de la décision T.

Figure II. 31. Synchronisation par filtrage adapté.

Prenons l’exemple suivant :

)()()( tbtxtr += [Eq.II. 33]

avec x(t) le signal émis, b(t) le bruit et r(t) le signal reçu.

Le signal r(t) se positionne à la sortie d’un ensemble de filtres à réponse impulsionnelle f(t). D’où z(t) la sortie du filtre vaut :

( ) ( ) ( ) )()()()( tbhtxhtrhtz ∗+∗=∗= [Eq.II. 34]

Le signal de sortie est donc la somme des sorties non bruitées et de la contribution du bruit. Nous pouvons alors retrouver par le calcul du rapport signal sur bruit et le développement des produits de corrélation que le filtre qui maximise le rapport signal sur bruit à l’instant de décision T est le filtre dont la réponse impulsionnelle hk(t) est la copie retournée et décalée dans le temps du signal que l’on recherche d’où

Page 85: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-74-

⎩⎨⎧ −

=0

)()(

tTftk k [Eq.II. 35]

C’est pourquoi on parle de filtrage adapté puisque le filtre s’adapte au signal. La relation existante entre le signal et l’inverse de la fonction de transfert souhaitée peut être calculée grâce à une simple intercorrélation entre r(t) et x(t) :

ττττττ dtTfrdtxrtTRtz k

t

k

t

yx )()()()()()(00

+−=−=−= ∫∫ [Eq.II. 36]

Le récepteur calcule donc l’intercorrélation entre le signal reçu r(t) et le signal attendu x(t). L’avantage de cette méthode réside par rapport à la corrélation dans l’optimisation du rapport signal sur bruit en recherchant le maximum pour l’instant T.

∫==T

kkk dhrTytr0

)()()()( τττ [Eq.II. 37]

L’inconvénient de cette méthode est de reproduire l’inverse de la fonction de transfert souhaitée.

II.5.4.2.1.3 L’organe de décision

Nous traitons dans ce paragraphe l’organe de décision qui est l’élément permettant de trouver la meilleure information possible à partir du signal reçu ri(t). Cet organe se situe derrière les organes de corrélation (Chapitre II .§II.5.4.2.1.1ou §II.5.4.2.1.2).

Figure II. 32. Représentation schématique de l’organe de décision.

Comme le montre la Figure II. 32 ce choix se fait à partir du calcul de probabilité d’erreur au niveau de l’observation ri(t). Ce critère de décision s’appelle le critère de maximum de vraisemblance.

II.5.4.2.2 Les principaux organes d’acquisition Nous exposons ici les trois principales catégories basées sur les principes que nous

venons de présenter.

II.5.4.2.2.1 Détecteur du maximum de vraisemblance

La Figure II. 33 montre la structure d’un détecteur à maximum de vraisemblance. Nous pouvons observer qu’il est composé de deux éléments. Le premier permet de calculer le rapport de vraisemblance qui dépend du canal alors que le deuxième compare ce rapport à un seuil.

Page 86: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-75-

Figure II. 33. Principe d’un détecteur de vraisemblance.

Il existe deux manières de calculer le maximum sur une probabilité d’erreur. La première est la « stratégie Bayésienne » qui base son calcul sur la notion de coût qui représente la pénalité ou la perte associée à l’évènement conjoint (c'est-à-dire le prix à payer pour chacune des décisions). La deuxième stratégie est la « stratégie Neyman-Pearson » qui elle considère deux sortes d’erreurs qui sont l’erreur de fausse alarme et l’erreur de mauvaise détection. Pour ces deux stratégies, la figure suivante montre la structure d’un détecteur à maximum de vraisemblance. Seul le calcul de seuil de décision change entre les deux structures. Dans le cas Bayésienne, le seuil dépend du coût et de la probabilité a priori, alors que dans le cas « Neyman –Pearson » le seuil est fixé par la probabilité de fausse alarme.

Figure II. 34. Principe d’une détection par maximum de vraisemblance avec corrélateur.

Le calcul pour les stratégies précédentes se fait symbole par symbole, c'est-à-dire que le calcul de la probabilité d’erreur du détecteur est optimal pour chaque symbole. Cependant lorsque le signal présente une mémoire, c'est-à-dire 2 symboles successifs et ne sont pas indépendants, la stratégie du détecteur doit détecter une séquence de symbole. L’algorithme de recherche le plus connu est l’algorithme de Viterbi [VERD01].

II.5.4.2.2.2 SERIE Historiquement la synchronisation de type SERIE a été étudiée par SAGE [SAGE64] un an avant le système RASE. La structure SERIE est basée sur la corrélation du signal reçu avec le PN-Code généré localement [POLY84]. Une détection en sortie de corrélation estimera la corrélation. Comme nous pouvons le voir sur l’organigramme (Figure II. 29) des différentes acquisitions pour un système à étalement de spectre, il existe plusieurs possibilités pour une acquisition de type SERIE :

i. Single Dwell time permet la recherche de chaque possibilité d’alignement sur un intervalle de temps fixé.

ii. Multiple Dwell time permet quant à elle une estimation de la corrélation sur un intervalle de temps variable. Cette structure sera donc composée de plusieurs branches d’observation, avec un retard variable du code d’étalement sur chaque branche réalisant la corrélation.

Page 87: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-76-

II.5.4.2.2.2.a La structure Single Dwell time

Le modèle classique décrivant une acquisition SERIE est présenté par la figure ci-dessous [ISCC95].

Figure II. 35. Synchronisation SERIE simple branche.

Il est composé de la fonction corrélation (multiplieur et intégration par filtrage) pour la pré-détection, d’une mise au carré pour la détection non cohérente, d’un bloqueur qui maintient la valeur sur un temps symbole et d’un comparateur de seuil pour la prise de décision.

Cette structure présente des inconvénients : si la prise de décision en fin de chaîne directe fait état d’une corrélation médiocre, il faut recommencer un nouveau calcul en décalant le code local. Ceci peut se réitérer jusqu’à « N.Tc » fois, et devient extrêmement pénalisant lors d’ séquence aléatoire longue (N élevée). Ce temps peut être diminué par une augmentation du nombre de branches, solution proposée par la structure « Multiple Dwell ». Toutefois, ce type d’acquisition est efficace, avec des fonctions pouvant être implémentées en numérique.

II.5.4.2.2.2.b Multiple Dwell time

Cette structure est une duplication en N branches de la structure Single Dwell time. Une logique de contrôle de corrélation est ajoutée pour détecter la branche présentant une corrélation maximale. Le PN-Code local est décalé d’une fraction de temps chip et le résultat de chaque branche est à nouveau estimé. Il est possible de trouver un compromis performance/temps de calcul en fixant judicieusement ce temps de décalage.

Figure II. 36. Synchronisation SERIE N branches.

.

.

.

Page 88: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-77-

Outre une complexité plus importante, l’avantage de cette structure est la diminution du temps d’accrochage et sa bonne immunité au bruit.

II.5.4.2.2.3 RASE : Rapid Acquisition by Sequential Estimation

La méthode de synchronisation RASE permet de reconstituer le PN-Code à partir du signal reçu. Cette structure a été développée par [WARD77] puis approfondie par Kilgus et Yiu [POLY84b]. Le schéma de fonctionnement est le suivant:

Figure II. 37. Principe de la synchronisation RASE.

Initialement les commutateurs sont sur la position 1. Une estimation du PN-Code incident est effectuée par le détecteur et est chargée dans les registres du générateur de PN-Code. Lorsque les registres sont pleins, les commutateurs sont mis en position 2 et le générateur délivre le PN-Code. L’étape suivante est la vérification de la synchronisation, pour cela une corrélation entre le PN-Code estimé et le signal reçu est faite. Une logique de contrôle permet de déterminer si la corrélation a eu lieu. Si c’est le cas, les interrupteurs restent en position 2 et la synchronisation entre le PN-Code et le signal reçu est correcte sinon il faut ré-estimer le code incident, les interrupteurs repassent donc en position 1. Il existe une amélioration de cette méthode par la technique de RARASE (Recursion Aided Rapid Acquisition by Sequential Estimation) qui repose sur les mêmes principes que la technique RASE pour l’estimation et la détection de corrélation. Un indicateur de mérite formé par la somme de chaque code sur un temps « chip » détermine quand les registres du générateur doivent être commutés pour le rechargement du code à estimer.

Cette méthode a comme avantage que le temps d’estimation du PN-Code est relativement faible et elle permet que le PN-Code généré localement soit parfaitement en phase avec le signal reçu. L’inconvénient de cette technique est qu’elle est valable pour des rapports signal sur bruit modérés car les erreurs de l’estimation sont de plus en plus importantes lorsque l’environnement est de plus en plus bruité. Ceci est donc contradictoire avec le principe de l’étalement de spectre.

Page 89: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-78-

II.5.4.3 Etude /comparaison théoriques des boucles de poursuite Après avoir décrit la partie acquisition qui permet de retrouver le PN-Code, nous allons

présenter la seconde fonction constituant la synchronisation d’un système à étalement de spectre « la poursuite ». Cette fonction permet d’affiner et de maintenir le code d’étalement avec la trame reçue pour effectuer l’opération de désétalement correctement.

Cet organe se schématise de la manière suivante:

Figure II. 38. Schéma de principe d’une boucle de poursuite.

La boucle de poursuite comporte quatre fonctions principales à savoir :

Le discriminateur : Il fournit une tension ε(t) proportionnelle à l’erreur de poursuite δ. Cette erreur de poursuite est définie comme la différence entre le temps de retard dû à la propagation dans le canal Td et celui estimé par la boucle Td’.

Le Filtre de boucle qui permet d’effectuer une intégration de la tension obtenue.

L’oscillateur numérique commandé en tension (NCO) permet de générer un signal dont la période varie en fonction de sa tension d’entrée.

Le générateur du code d’étalement qui permet de délivrer localement des codes fonction de la fréquence fournie par l’oscillateur. L’asservissement permet de générer le signal de sortie en phase avec le signal d’entrée.

Toutes les topologies de boucles à verrouillage de délai sont basées sur le même schéma fonctionnel. Les trois structures de la littérature [ISCC95] se différencient uniquement par les fonctions intégrées dans le discriminateur.

Nous allons maintenant présenter fonctionnellement les différentes boucles de poursuite (spécialement leur discriminateur) et en tirer leurs principales caractéristiques. Nous étudierons en particulier la performance « Tracking Jitter » [ISCC95] qui permet d’évaluer la variation de l’erreur de délai autour de l’origine. Cette valeur doit être bien entendu la plus faible possible afin de garantir un taux d’erreur sur le bit (TEB) minimal.

Trois topologies d’organes de poursuite sont couramment citées dans la littérature [GUIL03] : la boucle à verrouillage de délai (Delay Locked Loop ou DLL) cohérente, la DLL non cohérente et la TDL (Tau Dither Loop).

Filtre de boucle

Oscillateur numérique controlé

en tension Générateur de

PN CODE

r(t) signal reçu avec un certain retard

Td

ε(t,δ)DISCRIMINATEUR

Signal en phase avec le signal

reçu Td’

Signaux en avance ou en

retard

Erreur de poursuite δ= Td - Td’

Commandé par validation de l’acquisition

Page 90: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-79-

II.5.4.3.1 DLL Cohérente Le schéma de principe de la DLL cohérente est montré sur le schéma suivant :

⎟⎠⎞

⎜⎝⎛ Δ

−− Cd Ttc2

'τ⎟⎠⎞

⎜⎝⎛ Δ

+− Cd Ttc2

( )'dtc τ−

Figure II. 39. Schéma de principe de la DLL cohérente

Selon la Figure II. 39, nous pouvons voir que ce discriminateur est composé de 2 branches principales. Chacune des branches pilotées par le code d’étalement en avance et en retard se compose de la manière suivante :

Une corrélation permet la multiplication entre le PN– Code (en avance et en retard) et la trame reçue étalée en bande base.

Un filtre passe-bas qui permet de rejeter les fréquences non desirées.

Une mise au carré et un soustracteur.

La tension d’erreur ε(t) en sortie du discriminateur, après calcul, s’écrit [ISCC95] :

( ) ( )ε δ δ− +

⎧ ⎫⎡ ⎤ ⎡ ⎤Δ Δ⎛ ⎞ ⎛ ⎞= − = × × − − +⎨ ⎬⎜ ⎟ ⎜ ⎟⎢ ⎥ ⎢ ⎥⎝ ⎠ ⎝ ⎠⎣ ⎦ ⎣ ⎦⎩ ⎭

2 2 2 2( )2 2r rt y y K P Rc Tc Rc Tc

[Eq.II. 38]

avec K le gain du multiplieur, P la puissance du signal reçu, Rc la fonction d’autocorrélation (§ II.3.6.2.2) et Δ est une constante fixée par le concepteur, qui permet d’ajuster le retard du code local généré comme un multiple ou un sous multiple du temps chip Tc. Sa valeur est généralement comprise entre 0,5 et 2 [SHEE94], ce qui correspond à un décalage temporel décalant Tc/4 et Tc respectivement. Enfin, δN représente le délai normalisé défini comme suit :

c

ddN T

TT '−=δ [Eq.II. 39]

L’équation [Eq.II.37] s’écrit également :

)()( 2NPDKt δε Δ= [Eq.II. 40]

Page 91: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-80-

Nous faisons volontairement apparaître la quantité ( )rD δΔ dénommée fonction S-Curve qui correspond à la différence entre les 2 fonctions d’autocorrélation élevées au carré. Cette fonction S-Curve est la caractéristique du discriminateur.

II.5.4.3.2 La DLL Non Cohérente Le schéma de principe de la DLL Non cohérente est décrit sur la Figure II. 40.

Figure II. 40. Schéma de principe d’une DLL non cohérente.

La principale différence entre une DLL cohérente et DLL non cohérente [SIMO77] est que cette dernière fonctionne sur fréquence porteuse alors que la DLL cohérente est sur bande base. Cet oscillateur local délivre une fréquence égale à la fréquence porteuse d’émission à laquelle est soustraite une fréquence intermédiaire FFI. Les signaux A1(t) et A2(t) sont alors sur fréquence porteuse, de valeur fp-f FI. Ainsi, le discriminateur outre le signal d’entrée étalé sur fréquence porteuse fp comporte deux branches d’entrée (avance /retard) comme dans le cas précédent. En sortie des mélangeurs M, les signaux Y1(t) et Y2(t) sont transposés en fréquence intermédiaire pour un rôle équivalent au filtre Passe-Bas de la boucle en bande de base. Le détecteur d’énergie final (mise au carré et filtre) délivre alors le résultat de la corrélation pour la branche considérée. La tension d’erreur en sortie proportionnelle à l’erreur de poursuite estimée s’écrit [ISCC95] :

( )

ε δ δ

ε δ

− +

Δ

⎧ ⎫⎡ ⎤ ⎡ ⎤Δ Δ⎛ ⎞ ⎛ ⎞⎡ ⎤= − = − +⎨ ⎬⎜ ⎟ ⎜ ⎟⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎝ ⎠ ⎝ ⎠⎣ ⎦ ⎣ ⎦⎩ ⎭

=

2 2 2 21

1

1( ) ( ) ( ) -2 2 2

1( )2

t y t y t K P Rc Tc Rc Tc

t K PD

[Eq.II. 41]

II.5.4.3.3 La TDL (The Tau Dither Loop) Le schéma de principe est celui représenté sur la Figure II. 41. Nous constatons à la

différence des précédentes boucles, que le discriminateur se compose d’une seule branche, dans la mesure où un commutateur réalise une commutation périodique entre les codes d’étalement mesurés et retardés.

Page 92: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-81-

Figure II. 41. Schéma de principe de la TDL.

Il comporte les éléments suivants :

- Une fonction interrupteur, commandée par un signal numérique q(t) de valeur +1 et -1.

- Un mélangeur couplé à un oscillateur local oscillant à une fréquence fP-fFI.

- Un corrélateur qui permet la multiplication entre le signal reçu et deux PN– codes : un en avance d’une demi période et l’autre en retard d’une demi période.

- Un filtre de Passe–Bande qui permettra d’être centré sur la bande voulue.

- Une structure de détecteur d’énergie.

- Un multiplieur qui permettra la multiplication entre la sortie du détecteur et le signal q(t) qui commande l’interrupteur des PN–codes .

Le principal avantage de cette structure réside dans le fait qu’elle comprend un nombre plus réduit de fonctions comparées avec deux autres boucles (une seule branche dans le discriminateur). La tension ε s’écrit, après calculs [ISCC95]

( ) ( )ε − +⎡ ⎤= −⎣ ⎦

2 21 2( ) ( ) ( )t y q t y q t [Eq.II. 42]

Dans le cas où :

Q1 =+1

Q2=-1

L’équation [Eq.II.42] s’écrit, après calcul:

ε δΔ= '1

1( ) ( )2

t K PD avec ' 1( ) ( )2

D Dδ δΔ Δ= [Eq.II. 43]

Page 93: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-82-

II.5.4.3.4 Comparatif des différents modèles de boucles de poursuite Les performances exposées sont :

- la structure du discriminateur. Ce critère nous permet de juger la complexité de la structure en vue de l’implantation.

- La caractéristique du discriminateur. L’expression de l’erreur de poursuite en fonction de K le gain du multiplieur, P la puissance reçue et D(δ) la caractéristique du discriminateur (fonction S-Curve).

- Le « Tracking Jitter » [WILD95][WELT94]. Le paramètre représente la dynamique de variation de délai autour de l’origine dûe au bruit présent en entrée. Il est défini à partir du calcul de la variance

2

δσ et décrit comme suit pour les différentes boucles :

o DLL cohérente L

L

PWN

ρσδ

12

02 =×

=

o DLL non cohérente ⎟⎟⎠

⎞⎜⎜⎝

⎛+=⎟

⎠⎞

⎜⎝⎛ +=

IFL

NL

PBNWN

ρρσδ

212

121

4002

o TDL

⎟⎟

⎜⎜

⎛+=

⎥⎥⎦

⎢⎢⎣

⎡⎟⎠⎞

⎜⎝⎛+⎟

⎠⎞

⎜⎝⎛++⎟

⎟⎠

⎞⎜⎜⎝

⎛+⎟

⎠⎞

⎜⎝⎛ +=

IFL

PNBLWN

PLWN

ρρ

πππδσ

261.3811.12

1

41

29

843

281

22

20

281

41

41

202

avec N0= densité spectrale du bruit, WL= Bande passante équivalente du bruit,

P=Puissance reçue , BN = Bande Passante du filtre Passe Bande et N

IF BNP

0

=ρ .

Dans le cas de courts délais et pour assurer un taux d’erreur sur le bit faible, ce critère doit être le plus faible possible. Ainsi, la variation du « Jitter » aura peu d’influence sur des délais courts.

Modèles Structure du Discriminateur

Caractéristique du Discriminateur

Tracking Jitter [ISSC95]

Divers

DLL Cohérente 2 Branches, 2 corrélateurs,

2 filtres passe bas, 2 mises au carré 1 soustracteur

2 2

21

( , ) ( ) ( )( )

t y t y tK PD

ε δ

δ− +

Δ

= −

=

1Lρ

Bande de Base

DLL Non cohérente

2 Branches 2 +2 corrélateurs

2 filtres Passe bande 2 détecteurs d’énergie

1 oscillateur local 1 soustracteur

2 2

1

( , ) ( ) ( )1 ( )2

t y t y t

K PD

ε δ

δ

− +

Δ

= −

=

1 212 L IFρ ρ

⎛ ⎞+⎜ ⎟

⎝ ⎠

Fréquence Porteuse

TDL 1 branche 1 interrupteur

1 filtre Passe bande 1 Détecteurs d’énergie

2 corrélateurs

2 2

1

( , ) ( ) ( )1 ( )2 2

t y t y tDK P

ε δδ

− +

Δ

= −

=

1 3.2611.8112 L IFρ ρ

⎛ ⎞+⎜ ⎟

⎝ ⎠

Facilité d’implantation HARDWARE

Tableau II. 9. Récapitulatif des modèles et de leurs caractéristiques.

Page 94: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-83-

D’après le Tableau II. 9, nous voyons que la structure la plus simple est la TDL car elle ne comprend qu’une branche. C’est son principale avantage. Mais sa simplicité d’implantation dégrade des paramètres importants comme le « Tracking Jitter ». Ce que nous souhaitons au niveau performance c’est que ce paramètre soit le plus faible possible ; ce sera à cause de ce point que la DLL cohérente sera privilégiée pour l’implantation.

II.5.4.4 Choix de l’organe de synchronisation A partir de l’étude et de la structure des organes de synchronisation (§II.5.4.2.2), ces

modèles ont été implantés sous le logiciel SABER. Nous avons donc développé un modèle fonctionnel complet sous ce logiciel, en bande de base, incluant toutes les fonctions précédemment étudiées dans ce chapitre : génération de code d’étalement, étalement de spectre à l’émission, désétalement en réception, encodage différentiel, organe de poursuite de type DLL cohérente. De plus, afin de déterminer les performances des synchronisations Série et RASE, il est nécessaire d’inclure un modèle AWGN, ainsi qu’un retard Td paramétrable. Ces deux fonctions sont inclues dans la bibliothèque de modèle SABER : le bruit blanc est borné par un ajout d’un filtre passe-bas de longueur de bande égale 40MHz. Quant à la fonction retard, elle est modélisée par la quantité pTde− .

La comparaison entre les deux organes de synchronisation se base sur leurs performances en terme d’évolution de gain en traitement Gp et du temps d’acquisition (temps d’accrochage) en milieu bruité.

II.5.4.4.1 Simulation de l’organe SERIE La structure fonctionnelle complète émetteur-récepteur en bande de base, développée

sous SABER et incluant un organe de synchronisation Série de type multiple Dwell time à deux branches, est présentée sur la Figure II. 42.

Les deux opérations de corrélation (les deux branches de l’acquisition) sont effectuées pour un décalage du code d’étalement égal à un temps chip, soit 25ns. Le « bloc » logique de contrôle saisit les résultats des opérations des branches de corrélation, et détermine à partir du seuil le code d’étalement délivrant une corrélation maximale. Si cette condition n’est pas satisfaite, le bloc de contrôle délivre un signal ( contrôle ) qui commande un décalage de l’horloge rythmant le générateur de code. Ce décalage final et fixé par l’utilisateur et généralement compris entre 0,25 Tc et Tc.

Page 95: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-84-

Figure II. 42. Modèle de la synchronisation SERIE.

Pour un retard dans le canal fixé à 25ns, la Figure II. 43 fait état de chronogrammes de signaux « clé » de la synchronisation série, à savoir :

Correl1 et correl2 sont les signaux présents en sortie de chaque branche, respectivement pour un décalage nul de valeur 25ns entre le code local et la trame reçue. Aucune corrélation n’est détectée (Figure 43-a). Parallèlement, l’opération de corrélation fournit un saut de valeur dépassant le seuil préalablement étalonné (Figure 43-b)

Le signal « contrôle », signal maître de la commande du décalage d’horloge lorsque la corrélation n’est pas suffisante, est actif jusqu’à détection d’une corrélation corrélée. Il est alors par suite inactif.

Les chronogrammes suivants valident la fonction développée et autorisent la mesure du temps d’acquisition, pour cet exemple de valeur 20µs.

Contrôle

Page 96: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-85-

Figure II. 43. Signaux en sortie des corrélateurs et signal de contrôle.

II.5.4.4.2 Organe RASE

Figure II. 44. Schéma fonctionnel de la structure RASE.

Le modèle de l’organe de synchronisation RASE implémenté sous le logiciel SABER est représenté sur le Figure II. 44.

Le corrélateur auquel on a ajouté un détecteur d’énergie (mise au carré) et un filtre Passe-bas, permet de récupérer la valeur efficace de la corrélation. Une logique de contrôle estime à partir d’un seuil la corrélation. Si le franchissement du seuil n’est pas effectué, alors une

Correl1(a)

Correl2(b)

Signal contrôle (c)

Temps d’acquisition

Page 97: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-86-

impulsion « lost » est générée. Cette impulsion commande le bloc « logique de l’interrupteur » dont le signal « CTRL » est l’image et pilote l’interrupteur (Organe Switch). L’interrupteur comporte un état de chargement et un état de synchronisation. Pour un rapport signal sur bruit de -3dB, les signaux « clés » ont été visualisés sur la Figure II. 45 et sont :

« out_correl ». Ce signal est celui présent en sortie du corrélateur et de la détection (Mise au carré et filtre Passe-Bas). Le seuil préalablement défini par l’utilisateur est franchi aux environs de 22µs.

« CTRL ». Ce signal permet le contrôle des interrupteurs et est actif tant que la corrélation n’est pas réalisée. L’impulsion du signal bascule l’état de l’interrupteur Swith. Lorsque le seuil de corrélation est franchi, le signal « CTRL » devient inactif.

Figure II. 45. Sortie du corrélateur pour un rapport SNR=-2,9 dB et un seuil de 1,5V.

Ce chronogramme permet la validation RASE et la mesure du temps d’acquisition qui est estimée ici à environ 22µs.

II.5.4.5 Comparaison des boucles [GUIL04J] Notre comparaison s'est focalisée sur deux paramètres clefs d'un système à étalement de

spectre, que sont le gain en traitement Gp et le temps d'acquisition Tacq.

II.5.4.5.1 Gain en traitement Le gain en traitement représente la différence entre le rapport signal sur bruit en sortie du

récepteur et le rapport signal sur bruit en entrée.

récepteurEntréerécepteurSortie BS

BSGp

//⎟⎠⎞

⎜⎝⎛−⎟

⎠⎞

⎜⎝⎛= [Eq.II. 44]

Seuil 1,5V

Temps d’acquisition

Page 98: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-87-

Ce gain en traitement traduit un avantage important des systèmes utilisant la technique d’étalement de spectre, à savoir l’augmentation après décorrélation en réception du niveau du signal d’un facteur égal à ce gain Gp.

La Figure II. 46 montre l’évolution du gain en traitement des deux structures de synchronisation, le niveau de bruit étant paramétrable au moyen du canal AWGN implanté dans le simulateur. Ces résultats sont comparés au gain en traitement théorique, dépendant directement de la longueur N du code :

Gp=10 log [N] [Eq.II. 45]

Les résultats présentés sont pour une valeur N égale à 15, soit un gain de traitement théorique de 11,7dB.

10

10,5

11

11,5

12

-8 -6 -4 -2 0 2 4 6 8 10Rapport Signal/Bruit en entrée récepteur (dB)

Gai

n en

trai

tem

ent (

dB)

RASE SERIE THEORIE

Figure II. 46. Comparaison du gain en traitement pour les structures d’acquisition SERIE et RASE.

Pour les très faibles niveaux de bruit (SNR entrée > 4dB), la structure SERIE est très proche du gain en traitement théorique, alors que la structure RASE présente un gain inférieur de 1 dB. L’organe SERIE assure toujours un meilleur gain en traitement lorsque l’augmentation du bruit dégrade les performances des deux structures. Uniquement pour des très haut niveaux de bruits (SNR <-4 dB), la structure RASE semble présenter un meilleur gain. Cependant, dans ce cas les valeurs de bruit associées, de fortes valeurs, entraînent très rapidement une impossibilité de synchronisation. D’après ces résultats pour des rapports signal sur bruit communément rencontrés en milieu clos, la structure SERIE semble avantageuse.

II.5.4.5.2 Temps d’acquisition Le temps d’acquisition conditionne directement le temps de réponse du système complet.

Il a été mesuré à partir des simulations des signaux de « contrôle » et du signal résultant de l’opération de corrélation, comme présenté dans le paragraphe (Chapitre II §II.5.3.2). Son évolution, dans le cas des deux structures de synchronisation, est présentée sur la Figure II. 47 en fonction du rapport signal sur bruit.

Page 99: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-88-

0

10

20

30

40

50

60

70

80

-8 -6 -4 -2 0 2 4 6 8 10Rapport Signal/Bruit (dB)

Tem

ps d

'acq

uist

ion

(µs)

SERIE RASE

Figure II. 47. Mesure du temps d’acquisition pour les 2 structures d’acquisition

Pour de faibles niveaux de bruit (SNR>-2 dB), la structure RASE est ici plus performante que la structure SERIE. En effet, elle calcule le code d’étalement reçu par estimation. Pour des niveaux de bruits plus importants (SNR<-2 dB), ce calcul est de plus en plus complexe et le temps d’acquisition se dégrade. Dans ce cas, la structure SERIE devient nettement plus avantageuse, présentant par exemple un temps d’acquisition réduit de 30% pour un rapport signal sur bruit de –6 dB dans le canal.

II.5.4.5.3 Conclusion sur le choix des organes de synchronisation Nous avons comparé ces deux principales structures de synchronisation (Série et RASE)

en déterminant par simulations fonctionnelles les paramètres clefs du système que sont le gain en traitement et le temps d’acquisition. Au vu des résultats obtenus, il apparaît une complémentarité des deux structures. En présence d’un rapport signal sur bruit moyen à élevé, le système à synchronisation Série présente un meilleur gain en traitement avec toutefois avec un temps d’accroche plus important. Pour un milieu très fortement bruité, le gain en traitement devient voisin de celui obtenu avec la structure RASE, tout en présentant un temps d’accroche cette fois-ci favorable.

Pour toutes ces raisons, nous retiendrons donc la structure Série car la résistance au bruit est un paramètre important pour notre système. De plus, cette structure Série peut être optimisée, par une augmentation du nombre de branches effectuant les calculs de corrélations. Cette amélioration, visant à diminuer le temps d’acquisition, sera évaluée ultérieurement (Chapitre 4 §IV.5.1.2).

II.6 Conclusion Dans ce chapitre, après des généralités sur les communications numériques, nous avons

décrit le cahier des charges pour un système de télécommunication à étalement de spectre. Nous avons alors passé en revue les différents organes mis en jeux dans ce système (modulation, étalement de spectre et sa génération de PN-Code, démodulation) en développant particulièrement l’organe d’acquisition et de poursuite. Une recherche bibliographique a montré les différentes possibilités pour concevoir ces deux fonctions. Deux solutions ont été mises en avant pour la structure de l’acquisition (acquisition SERIE,

Page 100: 83240798 These Celine

CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre

-89-

acquisition RASE) et une pour la poursuite (DLL Cohérente). Nous avons alors comparé ces dispositifs sur les critères de gain en traitement et de temps d’acquisition. De cette comparaison, la structure SERIE avec la boucle à verrouillage de délai cohérente a été retenue particulièrement à cause de sa résistance au bruit, et la possibilité d’optimisation de la latence finale par l’ajout de branches de corrélation supplémentaires.

Page 101: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-90-

Page 102: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-91-

III CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

Résumé Ce chapitre décrit tous les étages développés en VHDL-AMS. Ces modèles permettent l’optimisation de différents paramètres de l’organe de synchronisation (nombres de branches, valeur du seuil de corrélation). Dans ce chapitre, nous avons tout particulièrement développé notre propre modèle de canal composé d’un canal AWGN et d’un module de retard paramétrable. 1 Introduction ................................................................................................................................................. 93 2 Le langage VHDL-AMS ............................................................................................................................. 94

2.1 Historique .......................................................................................................................................... 94 2.2 Choix de ce langage........................................................................................................................... 94 2.3 Description du langage[VACH02][HERV02] ................................................................................... 94

3 Codage en langage VHDL-AMS de l’émetteur/récepteur......................................................................... 100 3.1 Fonctions à implanter et caractéristiques........................................................................................ 100 3.2 Les étages numériques ..................................................................................................................... 103 3.3 Description des parties analogiques................................................................................................ 128 3.4 Description du Convertisseur Analogique / Numérique .................................................................. 135

4 Résultats de simulation.............................................................................................................................. 135 4.1 Simulation de la fonction d’autocorrélation .................................................................................... 135 4.2 Simulation de la chaîne complète Emetteur/Récepteur.................................................................... 136

Page 103: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-92-

Page 104: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-93-

III.1 Introduction Dans le chapitre précédent, nous avons étudié les différentes fonctions du système

émetteur/récepteur à étalement de spectre. Nous allons maintenant développer dans ce chapitre la description du prototypage virtuel associé.

Considérant la complexité du système, nous avons choisi une description basée sur un langage matériel de haut niveau, qui présente comme avantage une grande flexibilité de conception [HERV02]. Historiquement, deux types de langage de description matérielle sont nés quasi-simultanément, au début des années quatre vingt dix : le VHDL et le Verilog. Ces deux langages supportent la gestion des signaux à évènements discrets. Par suite est apparu leur extension respective (VHDL-AMS et Verilog-AMS) incluant la gestion des signaux à temps continu. Le Tableau III. 1 résume cette évolution.

Langages Organisme de

normalisationObjectif du

langage Commentaires

VHDL IEEE(1076) (Date de

normalisation : 1993)

Description du matériel

Niveau d’abstraction élevée. Langage le plus utilisé en Europe.

Verilog IEEE(1364) (Date de

normalisation : 1995)

Description du matériel

Langage plus utilisé aux Etats Unis. Verilog 2001n’est pas toujours pris en

compte par les outils du commerce VHDL-AMS (Extension du VHDL) [IEEE1]

IEEE(1076) (Date de

normalisation : 1999)

Description d’un système analogique

et numérique.

Niveau d’abstraction plus élevé que le Verilog-AMS.

Outil graphique (Simplorer et SystemVision) développé pour le

VHDL-AMS Verilog-AMS (Extension du Verilog) [IEEE2]

IEEE (Date de

normalisation : 1998)

Description d’un système analogique

et numérique.

Niveau d’abstraction restreint .

Tableau III. 1. Récapitulatif des principaux langages de description matérielle et de leur extension.

Ces deux langages (VHDL-AMS et Verilog-AMS) présentent des capacités techniques assez similaires. Nous avons retenu de développer notre prototype en langage VHDL-AMS, pour diverses raisons :

Premièrement, le VHDL (ou VHDL-AMS) a un niveau d’abstraction plus élevé que le Verilog ce qui permet d’avoir une meilleure vision au niveau système.

Notre environnement et collaboration scientifique semblent plus ouverts aux échanges avec des spécialistes du VHDL-AMS que du Verilog-AMS.

Enfin, les outils disponibles au laboratoire et l’offre logicielle en outils graphiques (des sociétés Ansoft ou Mentors Graphics) s’appuient sur ce langage.

Ce chapitre s’articule de la manière suivante : dans un premier temps, nous allons présenter le langage de haut niveau VHDL-AMS, permettant de définir sa puissance mais aussi ses limites de performances. Puis, toutes les fonctions mixtes analogiques et numériques, propres à notre prototype de télécommunication à étalement de spectre sont développées dans ce langage. Des fonctions analogiques spécifiques ont du être mises en œuvre, le langage n’incluant pas de bibliothèque de bruit par exemple.

Page 105: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-94-

III.2 Le langage VHDL-AMS

III.2.1 Historique Dans les années quatre vingt, le département de la défense américaine fait un appel

d’offre afin de disposer d’un langage de description de matériel numérique unique. Le langage VHDL (VHSIC Hardware Description Language) est retenu pour répondre à ce critère. Ce langage est un sous produit de VHSIC (Very High Speed Integrated Circuit) qui est un projet de recherche national mené par le groupement IBM/Texas Instruments/Intermetrics. Ce langage est ouvert au domaine public en 1985 et deviendra une norme IEEE en 1987 sous le nom de IEEE 1076-1987. Des changements minimes se feront pour la seconde normalisation en 1993 et il portera le nom VHDL’93. La dernière norme en cours est la norme IEEE 1076-2001. Ce langage de description matérielle permet la description du matériel d’un système au cours d’une ou plusieurs étapes de conception.

Comme ce langage a pour vocation d’être un langage de description matérielle numérique, il est exploité par tous les fabricants de circuits numériques pour son indépendance à la technologie de fabrication. Il est aussi bien utilisé pour le développement, la synthèse ou la vérification système.

Par la suite (fin des années 90), le langage VHDL-AMS est une redirection du langage VHDL-A qui devait être à la base un langage de modélisation analogique. Le langage VHDL-AMS, dont les bases numériques sont le VHDL, permet la modélisation d’un système multidisciplinaire. Il gère donc aussi bien les signaux numériques que analogiques. Comme le VHDL, nous pouvons faire aussi bien de la description comportementale, de la description structurelle que de la description de type « boîte noire ». Ce langage conserve les mêmes principes que le VHDL (modularité, flexibilité, extensibilité) ainsi que la même sémantique, mais apporte un net avantage grâce à la possibilité de modéliser un système complet et l’influence de son environnement.

III.2.2 Choix de ce langage En vue d’implanter notre système, le choix du langage VHDL semble incontournable,

quelque soit la cible que nous choisirons pour notre circuit final. Notre système sera alors réutilisable, flexible, extensible et permettra de modéliser d’un bout à l’autre la chaîne mixte de communication. En vue d’une implantation, le langage VHDL semble incontournable puisque quelque soit la cible choisie, ce langage est supporté par la quasi-totalité des logiciels de CAO.

III.2.3 Description du langage [VACH02][HERV02]

III.2.3.1 Le langage VHDL

III.2.3.1.1 Les différentes descriptions possibles Trois types de descriptions de fonctions sont identifiés et complémentaires : la

description matérielle, la description comportementale, et la description fonctionnelle.

Comme nous l’avons énoncé précédemment, le langage VHDL a été créé pour permettre une description matérielle d’une fonction. Une description matérielle (ou structurelle) définit la structure d’un modèle par un assemblage de composants, ou des boîtes noires. Ce type de description permet de créer la fonction voulue au niveau composant à l’aide de l’association d’éléments sous formes de portes logiques. C’est pourquoi la description structurelle est la

Page 106: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-95-

seule à être synthétisable puisqu’elle fait référence au matériel de type porte logique élémentaire.

Une autre possibilité de description est la description comportementale qui permet de définir le fonctionnement d’un système ou le comportement d’un modèle. Cette description ne repose pas sur une structure mais plus sur des algorithmes.

La dernière possibilité de description est celle appelée « flot de données » ou description fonctionnelle. Elle rejoint la description comportementale puisqu’elle se base sur l’expression des fonctions de sortie à partir d’équations booléennes. Il apparaît donc plus difficile d’utiliser ce type de description dans le cas d’un circuit complexe où il est nécessaire de se rattacher à une structure.

Au vu de la définition des différentes descriptions possibles, nous avons choisi d’utiliser la description structurelle afin de synthétiser facilement notre système. Cette démarche demande effectivement plus d’investissement au niveau de la définition de la structure du circuit mais ce temps sera regagné lors de l’étape de synthèse.

III.2.3.1.2 La structure fondamentale d’un modèle VHDL L’organisation d’un modèle VHDL est illustrée sur la figure III.1.

Figure III. 1. L’organisation d’un modèle VHDL.

Page 107: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-96-

Ce modèle VHDL comprend les parties suivantes :

i. Une déclaration de paquetage, utilisée par plusieurs fichiers, sous-programmes et composants. Elle permet de définir les librairies utilisées, les fichiers, sous-programmes et composants qui composent le corps de paquetage.

ii. L’architecture globale de l’entité peut contenir un ou plusieurs composants, chaque composant étant défini par les mêmes parties que l’entité de conception principale.

iii. Le corps de l’entité comprenant la déclaration de cette entité et son architecture interne.

Les parties (i) et (ii) permettent une description matérielle du système alors que la dernière (iii) permet de regrouper les informations pouvant être réutilisées dans d’autres systèmes. Toutes les déclarations (entité, configuration et paquetage) décrivent une vue extérieure, c'est-à-dire qu’elles sont visibles par toutes les parties du modèle et permettent ainsi le partage et la réutilisation des ressources. Elles sont généralement associées aux parties « corps ». Ces parties « corps » permettent de définir une vue interne de l’entité ou du paquetage et une description fine des différentes architectures ou paquetages sera faite. On peut définir pour une même déclaration d’entité plusieurs architectures.

La Figure III. 2 présente un exemple type de structure de fichier VHDL, faisant apparaître le paquetage, la déclaration de l’entité et son architecture.

III.2.3.1.3 Les signaux Afin que chaque entité puisse communiquer avec l’extérieur ou simplement dans le

modèle principal il existe deux classes de déclaration de signaux generic et ports. Les signaux generic sont des constantes ou des paramètres qui servent à rendre le système plus général.

Les signaux ports sont des variables ou des nœuds entre chaque entité. Ils sont définis par un nom, un mode et un type.

Par exemple clk_160nco : in std_logic ;

Le signal porte le nom clk_160nco, est de mode entrée(in)et son type est std_logic (standard logique).

Un mode comprend trois déclarations possibles. Le mode entrée (in), le mode sortie (out) et le mode bidirectionnel (inout). Enfin, le type peut être entier, flottant, énuméré ou tableau.

III.2.3.1.4 Le processus Une notion importante est la notion de processus ou « process ». Un processus regoupe

un ensemble d’instructions qui sont exécutées en fonction d’évènements auxquels ils sont sensibles. Les instructions du processus s’exécutent séquentiellement jusqu’à un point d’arrêt. C’est à la fin du processus que les signaux prennent leurs valeurs.

Page 108: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-97-

--***************************************************************************** -- INTEGRATEUR/BLOQUEUR --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity integ_dump is port ( clk160nco : in std_logic; rst : in std_logic; dump_clk40nco : in std_logic;

data_multi_clk40nco : in signed (3 downto 0); result_clk160nco : out signed (M downto 0) ); end integ_dump; architecture arch of integ_dump is signal acc_test_clk160nco : signed (M+1 downto 0); signal result1_clk160nco : signed (M downto 0); signal dump_resynchronise_clk160nco: std_logic; begin re_synchro: process (rst,clk160nco) begin if (rst='1') then dump_intermediaire_clk160nco <= '0'; dump_resynchronise_clk160nco <= '0'; elsif(rising_edge(clk160nco)) then dump_intermediaire_clk160nco <= dump_clk40nco; dump_resynchronise_clk160nco <= dump_intermediaire_clk160nco; end if; end process re_synchro; integration:process(clk160nco,rst)--Horloge de 160 Mhz begin … … … end process integration; result_clk160nco <= result1_clk160nco when(detect_front_clk160nco <='1') else (others => '0') when(rst = '1'); end arch;

Figure III. 2. Structure d’un fichier VHDL

Définition de la librairie

Déclaration des paquetages standard

Déclaration du paquetage « parameter » propre au système

Déclaration de l’entité

Corps de l’architecture associé à l’entité integ_dump

Signal interne « Acc_test_clk160nco

» de type signé

Process qui resynchronise les signaux dump sur la bonne horloge

Liste des événements auquelle est sensible au process re-synchro

Process qui calcul l’intégration

Liste des événements auquelle est sensible du process intégration

Déclaration des ports en mode entrée et de type std_logic

Déclaration du port en mode entrée et de type

vecteur signé

Déclaration du port en mode sortie et de type

vecteur signé

Définition des signaux internes de l’architecture arch de l’entité integ_dump

Calcul en fin des process de la valeur du port de sortie

« result_clk160nco »

Affectations asynchrones

Affectations séquentielles

Affectations concurrentes

Arc

hite

ctur

e

Déc

lara

tion

Paqu

etag

e C

omm

enta

ires

Entit

é

Page 109: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-98-

III.2.3.2 Le langage VHDL-AMS

III.2.3.2.1 Description du langage Développé à partir du langage VHDL, le langage VHDL-AMS repose donc sur la même

fondation. De manière identique au langage VHDL décrit précédemment, un modèle VHDL-AMS comporte les différentes déclarations (déclaration d’entité, déclaration de configuration et déclaration de paquetage) et les différents corps (corps d’architecture et corps de paquetage).

Les fonctions analogiques sont décrites à l’aide d’équations différentielles et algébriques avec le temps comme variable indépendante. Ces équations sont de deux types : conservatif et non conservatif.

• Conservatif

Les systèmes de type conservatif sont gouvernés par des lois de la physique et des lois de conservation de l’énergie. Pour le domaine de l’électricité, nous retrouvons des circuits à temps continu régis par des équations conservatrices que sont les lois de Kirchoff . En VHDL-AMS le formalisme de ce genre de description sera de deux types : terminal et nature (paragraphe III.2.3.2.2.1).

)()( tIRtV ×= [Eq.III. 1]

• Non Conservatif

Les systèmes non conservatifs n’ont pas besoin d’être régis par la conservation d’énergie. En VHDL-AMS la description sera de type de quantité libre.

)()( tIdt

tdUC = [Eq.III. 2]

Le langage VHDL-AMS comporte deux noyaux de simulation, l’un pour la partie numérique et l’autre pour la partie analogique. Chaque noyau de simulation possède sa propre horloge. Le VHDL-AMS permettant une simulation mixte, il faut que les noyaux numériques et analogiques soient synchronisés. Pour cela, il a été créé les instructions break et above. L’instruction break est utilisée lorsqu’on veut une interaction du noyau numérique sur le noyau analogique. Cette instruction permet de forcer le calcul de la partie analogique au moment d’un évènement sur la partie numérique. L’instruction above permet que le noyau analogique agisse sur le noyau numérique. Un évènement sera alors créé à partir d’une quantité du noyau analogique.

Une entité joue toujours le rôle d’« interface » pour la communication entre les fichiers extérieurs et le modèle à l’aide des déclarations de type generic et port. En VHDL-AMS les ports peuvent appartenir à différentes classes selon le système (conservatif ou non conservatif) :

• Les ports de classe signal modélisent les signaux logiques, comme en VHDL. • Les ports de classe terminal fournissent des points de connexions analogiques pour

les systèmes pour lesquels la loi de conservation d’énergie est satisfaite. • Les ports de classe quantité (quantity) définissent des points de connexions

analogiques mais directionnels avec des entrées (in) ou des sorties (out). Les

Page 110: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-99-

quantités prennent leurs valeurs par la résolution d’un système d’équations effectuée dans le domaine analogique.

III.2.3.2.2 Les différentes classes d’objets

III.2.3.2.2.1 Terminal et nature

Un objet de type terminal définit des points de connexion analogiques pour les systèmes à conservation d’énergie. Ainsi les terminaux définissent les branches auxquelles différentes grandeurs sont associées. Dans le domaine électrique par exemple ces grandeurs sont la tension et le courant.

A chaque terminal est associé une « nature » qui est définie à travers deux classes. La classe « entre » (accross) qui modélise l’effort aux bornes du terminal et la classe « à travers » (through) qui représente un flux à travers le terminal. Un tableau ci-dessous présente les efforts et les flux associés à chaque nature d’un objet de type terminal.

Nature Effort Flux

Electrique Tension Courant Thermique Température Débit de Chaleur

Hydraulique Pression Débit Mécanique de translation Vitesse Force

Mécanique de rotation Vitesse angulaire Torsion

Tableau III. 2. Exemples de Nature possible pour les terminaux

Au titre de la conservation d’énergie (la somme des flux à un nœud est nulle et l’effort est commun ⇒ la somme des puissances dissipées dans les branches du réseau est nulle), les terminaux connectés devront être de même nature.

III.2.3.2.2.2 Les quantités

Les quantités représentent les inconnues des équations différentielles du système. Ces objets mémorisent la valeur de la variable jusqu’à la prochaine résolution des équations différentielles dans le noyau de simulation analogique. Les quantités sont soit de type réel soit de type flottant. Il existe trois sortes de quantités :

• Les quantités « libres » représentent n’importe quelle grandeur analogique à temps continu.

• Les quantités de « branches » représentent une grandeur dans un système conservatif. Elles sont associées à des terminaux.

• Les quantités sources sont des quantités libres dédiées à l’analyse fréquentielle ou à l’analyse de bruit.

Page 111: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-100-

L’exemple suivant illustre la quantité de branche pour le domaine électrique :

terminal tb1, tb2 : electrical ; --Définition des terminaux tb1 et tb2 quantity V12 accross –quantité « entre » (Tension pour le domaine choisi) I12 through tb1 to tb2 ; –quantité « à travers » (Courant pour le domaine choisi)

Figure III. 3. Illustration de la quantité de branche pour le domaine électrique

III.2.3.2.2.3 Le critère de solvabilité

Ce critère est un garde fou qui permet de s’assurer qu’à tout moment le modèle comporte autant d’équations que d’inconnues. Ce critère, imposé par la norme, est établi comme suit :

Le nombre d’équations simultanées doit être égal au nombre de quantités « à travers » augmenté du nombre de quantités libres et du nombre de quantités d’interfaces en mode « sortie ».

Ce critère est effectivement contraignant, mais s’il est appliqué correctement pour chaque composant, il permet d’assurer lors d’une association de composants la bonne résolution des équations pour le système. Si ce critère n’est pas appliqué le modèle n’est pas compilable. C’est donc un critère sur lequel tout concepteur système en VHDL-AMS doit s’appuyer.

III.3 Codage en langage VHDL-AMS de l’émetteur/récepteur

Ce paragraphe présente le codage VHDL et VHDL-AMS selon le type des signaux mis en jeu (numérique et analogique) du système émetteur/récepteur complet. Concernant le développement de chaque fonction numérique en VHDL, nous détaillons le codage de la fonction sous forme d’organigramme, puis sa validation à partir du schéma bloc et des chronogrammes associés.

Une des difficultés de codage réside dans le fait que tous les processus sont cadencés à partir d’une horloge ce qui génère des retards. Il faut donc s’assurer lors de chaque processus que les différents signaux soient en phase avec la même horloge. Pour cela, nous avons dû introduire entre certaines fonctions des bascules de resynchronisation.

Quant aux fonctions analogiques en VHDL-AMS, elles concernent majoritairement le codage du canal, les étages radiofréquences et le convertisseur analogique/numérique.

III.3.1 Fonctions à implanter et caractéristiques

Nous rappelons dans cette partie les fonctions détaillées numériques et analogiques de notre système émetteur/récepteur (Figure III. 4).

Tb1 Tb2 I12

V12

Page 112: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-101-

Figure III. 4. Synoptique du modèle de l’émetteur/ récepteur à étalement de spectre.

Notons sur le schéma fonctionnel la présence entre autres, des organes de synchronisation et de poursuite définis au chapitre II, ainsi que le convertisseur analogique/numérique en entrée du récepteur.

Au vu du cahier des charges exposé dans le chapitre II (§II.4) les caractéristiques et paramètres physiques associés à chacune des fonctions sont définis dans le Tableau III. 3.

Page 113: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-102-

Fonctions Type de signal

Caractéristiques

Emetteur Codeur différentiel Numérique Fosc=1/(Tc*N),

Rapport Cyclique 0.5 Etalement Numérique Porte XOR

Générateur de PN-Code Numérique Générateur de Galois 7<Code d’étalement<2047

Fonctions Radiofréquence Analogique Filtre Passe bande 2.44 Ghz , 80 Mhz de Bande passante

Canal AWGN Additive White

Gaussian Noise Analogique Bande Passante = 40Mhz

Fréquence de coupure =160Mhz Récepteur

Corrélation Numérique Produit , Intégrateur/bloqueur Logique de Contrôle du seuil

Numérique Seuil de corrélation paramétrable

SERI

E

Clock Numérique Période = Tc=25ns Pas Offset PN code : ½ chip

Discriminateur Numérique Produit, Intégrateur/bloqueur, Valeur Absolue

Filtre de boucle

Numérique 1er ordre ,

sτ+11 avec τ=1µs

NCO (Oscillateur numérique commandé)

Numérique KNCO =100kHz/V Fo=160MHz

Acqu

isiti

on, P

ours

uite

, Gén

érat

ion

PN- C

ode

Pour

suite

DLL

Générateur PN Code

Numérique M-Sequences

Désétalement Numérique Produit, Intégrateur/bloqueur Décodeur différentiel Numérique Fosc=1/(Tc*N)

Tableau III. 3 . Fonctions à coder et caractéristiques associées.

Le synoptique de codage en VHDL-AMS, déduit du schéma fonctionnel (Figure III. 5), permet de décrire le test bench.

Figure III. 5. Synoptique de codage du système émetteur/récepteur en VHDL-AMS.

Fichier Test Bench

SOURCE (VHDL)

TRANSMISSION (Description VHDL-AMS)

RECEPTEUR (VHDL Synthétisable)

FONCTIONS RECEPTEUR (VHDL Synthétisable)

EMISSION (VHDL Synthétisable)

FONCTIONS EMETTEUR (VHDL Synthétisable)

Page 114: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-103-

Le codage de notre système suppose l’existence des fichiers suivants :

Le fichier SOURCE permet de créer les signaux tels que les horloges, les signaux d’initialisation (Reset), les données issues des capteurs et les signaux pour la configuration du générateur de PN Code. Ce fichier n’est utile que pour la simulation mais lors de l’implantation ce fichier n’existera plus car ces signaux seront générés par le circuit ou des éléments externes de type bouton poussoir par exemple.

Le fichier EMISSION permet de décrire le fonctionnement de l’émetteur à partir des fonctions décrites dans le fichier FONCTIONS EMISSIONS.

Le package FONCTIONS EMISSIONS décrit chaque fonction EMISSION (codeur différentiel, générateur de PN-Code, multiplieur)

Le fichier TRANSMISSION décrit les fonctions radiofréquences (multiplieur analogique, filtres …) et le canal AWGN.

Le fichier RECEPTEUR décrit le fonctionnement du récepteur à partir des fonctions décrites dans le fichier FONCTIONS RECEPTEUR.

Le package FONCTIONS RECEPTEUR décrit les fonctions du récepteur (désétalement, synchronisation, poursuite, génération du PN-Code, démodulateur, encodeur différentiel, mise en forme)

Le fichier TRANCEIVER TEST permet de réunir et de visualiser tous les signaux utiles pour notre choix d’architecture.

III.3.2 Les étages numériques

III.3.2.1 Description de l’émetteur L’émetteur est constitué des fonctions suivantes :

le générateur de PN-Code. un encodeur différentiel des données issues des capteurs. une fonction « multiplieur » permettant l’étalement de spectre.

Ces fonctions seront décrites individuellement dans le fichier package « Fonctions Emetteurs », décrit ci-dessus.

Figure III. 6. Schéma d’implantation de l’émetteur

III.3.2.1.1 Générateur de PN-Code Nous avons montré (Chapitre II (§V.2)) que la génération du PN-Code nécessite un

polynôme d(n) pour l’initialisation et en entrée un polynôme générateur c(n) qui permet de

Page 115: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-104-

charger le polynôme primitif dans les registres à décalage. Le schéma électrique du générateur de PN-Code est le suivant :

Figure III. 7. Schéma de principe du générateur de codes aléatoires

Nous remarquons la présence d’une horloge de 40MHz, fixant le temps chip du code d’étalement à 25ns.

Le diagramme du générateur de Galois est illustré de la manière suivante :

Figure III. 8. Organigramme du codage du générateur de PN-Code

L’organigramme de codage du code d’étalement (Figure III. 8) comprend deux processus :

Le premier processus (celui de gauche) permet l’initialisation des registres.

Le deuxième processus (celui de droite) crée un signal dump qui fixe le temps symbole du PN_Code. A chaque coup d’horloge, la valeur des signaux q(i+1) (signal

Page 116: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-105-

en entrée de la bascule D) est affectée au mot d(i) (signal de sortie des bascules D). Le signal q(0) représente le signal de sortie du générateur de PN-Code.

III.3.2.1.2 Encodeur L’encodeur différentiel possède trois signaux en entrée : le signal à encoder, l’horloge

40MHz et le signal pour la détection du temps symbole.

Figure III. 9. Organigramme pour la fonction Encodeur différentiel

Cette fonction est composée de deux processus :

Le premier processus effectue l’opération d’encodage différentiel à partir de deux portes logiques (NOT) et (XOR).

Le deuxième processus détermine le front montant sur dump (signal généré tous les temps symbole) à partir des signaux dump_e_rideau1 et dump_e_rideau2 (signaux de resynchronisation utile à la détection du front montant).

III.3.2.1.3 Fonction « Multiplieur » Cette fonction « Multiplieur » (référence à la fonction analogique de multiplication) doit

décrire le fonctionnement de l’étalement de spectre. Une donnée à l’état haut est codée par la séquence d’étalement et une donnée à l’état bas par la même séquence inversée. Ceci amène logiquement à la table de vérité ( Tableau III. 4):

D donnée Ci (Code étalement)

Fonction à réaliser

1 1 1 1 0 0 0 1 0 0 0 1

Tableau III. 4. Description de la fonction « multiplieur ».

Nous voyons que la fonction à réaliser peut être décrite soit par une porte logique de type « not XOR » soit par une description comportementale.

Page 117: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-106-

III.3.2.1.4 Résultats de simulation Les fichiers « Generateur_PN_Code », « codeur », « multiplieur » et « Emetteur » sont

compilés à l’aide de l’outil ModelSim. Les résultats sont représentés sur la Figure III. 10 pour une longueur de code N=15.

Figure III. 10. Résultats de simulation de l’organe Emetteur Les signaux présentés sont décrit ci-dessous :

• Clk_40e : Horloge de 40MHz qui correspond à un temps Chip. • Rst : Le signal Reset permet d’initialiser tous les signaux de l’émetteur. (Reset

Asynchrone). • Cn_code : Bus d’initialisation du générateur de PN_code, ici la valeur est fixée à 9 ce

qui correspond à une longueur N=15. C’est un des paramètres d’entrée de l’organe Emetteur.

• Data_source : Données présentées au niveau de l’émetteur qui modélise les signaux issus des capteurs.

• Data_encodee: Sortie de l’encodeur différentiel. • Dump_e_clk_40e: Signal généré par le générateur de PN_Code à chaque « temps

symbole » (ici Ts=375 ns). • Dump_e_rideau1 et Dump_e_rideau2 : Signaux permettant la détection du front

montant sur le signal Dump_e_clk_40e. • Detect_front : Signal qui détermine le front montant Dump_e_clk_40e. • Code_e_clk_40e : Code de sortie du générateur de PN_Code. Pour une longueur de

15 , le code est « 1111 0101 1001 000 ». • Data_etalee: Signal résultant de la recomposition de la donnée encodée

« Data_encodee » avec le PN_Code « Code_e_clk_40e ». Data_etalee est le signal en sortie de l’émetteur.

Pour valider notre modèle VHDL de l’émetteur, nous avons comparé et validé nos résultats de simulation avec ceux obtenus de manière fonctionnelle sous le logiciel SABER.

Page 118: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-107-

III.3.2.2 Description du récepteur Le récepteur permet de retrouver les données émises (data_source) à partir du signal

étalé reçu . Le récepteur est composé de :

la partie « récepteur_ss_synchronisation » désétalant la donnée reçue à partir du PN-code fourni par la synchronisation,

d’un étage « synchronisation» générant le PN-Code en phase à partir de la recherche d’un gain en traitement maximum.

d’un organe « poursuite » permettant de maintenir le PN-Code retrouvé par la fonction « synchronisation ».

La synchronisation peut comporter plusieurs structures. En effet, nous avons vu (§ Chapitre II § II.5.4.4.1) qu’une organisation à plusieurs branches doit permettre théoriquement de diminuer le temps d’acquisition. Les valeurs d’entrée sur lesquelles l’utilisateur peut configurer le récepteur sont :

le vecteur cn pour fixer la longueur du PN-code.

la valeur du seuil de corrélation (fonction test seuil).

les constantes de temps pour les différents filtres.

Deux horloges sont à présent nécessaires : une fixée à 40MHz, de manière identique à celle de l’émetteur et paramétrant le temps chip (Tc=25ns) et une seconde égale à 160MHz dont le rôle est la division par quatre du temps chip dans l’organe de corrélation. Les fonctions principales de cet élément récepteur (i,ii,iii) sont détaillées dans les paragraphes qui suivent. De plus, une fois ce modèle validé en VHDL, nous implémentons une synchronisation théoriquement plus performante à plusieurs branches (N branches) et évaluerons ses capacités.

Figure III. 11. Schéma de l’implantation du récepteur simple branche.

III.3.2.2.1 Récepteur sans synchronisation Le « récepteur sans synchronisation » effectue les opérations classiques de conversion

analogique/numérique et de désétalement. Il se compose des fonctions :

Page 119: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-108-

i. « convertisseur analogique/numérique », issue de la bibliothèque et adaptée à notre application. Elle est développée dans la partie III.3.4.

ii. « désétalement en réception » qui décorrèle le signal reçu.

iii. « test donnée » qui traite le résultat de corrélation en exprimant le résultat sur un bit.

iv. Le décodage différentiel, opération inverse du codage à l’émission.

III.3.2.2.1.1 Désétalement en réception

La première opération classique de « multiplication » est identique à celle de l’émission (OU exclusif) et permet la transformation du PN-Code en fonction du mot de 4 bits (data_codee[3:0]). Quand le PN-Code vaut ‘1’ data_multi[3:0] ( sortie de cet organe) recopie la valeur data_codee[3:0],dans le cas de la valeur ‘0’ data_multi[3:0] inverse l’entrée data_codee[3:0]. Le signal data_multi[3:0] peut prendre 2n-1 valeurs.

Figure III. 12. Schéma de l’intégrateur/bloqueur.

L’intégrateur/bloqueur est un organe important du système puisqu’associé à la fonction « multiplieur», il permet de désétaler le signal reçu. Il est composé d’un registre qui accumule le signal reçu (data_multi[3:0]) sur la durée du temps symbole Ts dépendant de la longueur du code (N), et d’un « bloqueur » qui reçoit et fige la valeur du registre d’accumulation chaque temps symbole (dump_clk40nco). La détection d’un temps symbole est créée à partir du front montant sur le signal dump. Ce signal dump a deux vocations : la remise à zéro de l’intégrateur, et le déclenchement de la phase suivante d’intégration. Pour une question de précision sur la fonction « multiplication », nous avons choisi [MELE01] qu’un temps Chip soit décrit par quatre échantillons. L’accumulation dans le registre se fait donc à la fréquence d’échantillonnage de 160 MHz. La taille utile à la fonction accumulation (na) a pour paramètre le nombre d’échantillons par symbole (M) et le nombre d’échantillons sur un temps Chip (ne). Nous pouvons ainsi déterminer le nombre de bits nécessaires pour coder l’accumulateur valant :

Nbre_val_accu= 122 +−× MMn =114 633

Avec ne = 4 échantillons par chip, Nmax=2047 et M=N×ne=2047×4=8188

)__(log2 accuvalNbrena = =16,81 soit 17 bits.

Nous représentons l’organigramme correspondant au code VHDL de la fonction Intégrateur/Bloqueur sur la Figure III. 13.

Page 120: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-109-

Figure III. 13. Organigramme de la fonction intégration/Blocage.

Cette fonction est composée de deux processus. Le premier processus permet de resynchroniser les signaux dump avec l’horloge de 160MHz (non représentée sur la figure). Le deuxième processus permet de générer le blocage sur le signal dump (signal généré tout les temps symbole Ts) et l’accumulation sur chaque front montant de l’horloge de 160MHz. La période d’intégration varie donc en fonction de la longueur du PN-Code. Le signal accu_test[M:0] est le signal présent à la sortie de l’intégrateur. Le signal result1[M:0] (sur M bits) représente le signal en sortie du bloqueur, récalculé tous les temps symbole. Ce signal est par suite injecté à l’entrée de la fonction « Test de donnée ».

III.3.2.2.1.2 Test de donnée

La fonction « Test de donnée » compare par rapport à un seuil, le mot d’entrée sur M bits, et le restitue sur un bit. Au vu de la fonction d’autocorrélation théorique (Chapitre II

§III.6.2.2) négative pour une corrélation nulle (et égale à N1

− ), il est logique d’effectuer la

comparaison par rapport à la valeur zéro. Toutefois, en simulation, nos premiers résultats avec ce seuil sont erronés car quelque soit la valeur en sortie de l’intégration (positive ou négative), cette fonction retrouvait le signal équivalent à Data_encodee. La sortie correspondait donc aux données émises. Il faut en effet moduler cette valeur en fonction de la longueur N du code d’étalement. Pour palier à ce problème, nous avons défini un nouveau seuil de valeur +200 (pour N=15). Ce seuil est testé à chaque temps symbole (grâce au signal dump) et la fonction « test de donnée » convertit dans un deuxième temps le mot de M bits (résultat de l’intégration) sur un bit. La Figure III. 14 décrit l’organigramme de cette démarche.

Page 121: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-110-

Figure III. 14. Organigramme de la fonction test donnée.

III.3.2.2.1.3 Décodeur différentiel

Le décodeur différentiel, dont le principe a été étudié au Chapitre II § V.1, permet de décoder le signal data_av_decodee_clk160nco en sortie de la fonction « test de donnée ». Ce décodeur possède deux signaux en entrée : le signal à décoder et le signal dump_r_clk40nco qui détermine le passage à un autre symbole. Le signal en sortie de cette fonction est le signal de sortie du récepteur et doit être identique à la trame de données (data_source) en entrée de l’émetteur. L’organigramme de cette fonction est représenté sur la figure suivante :

Figure III. 15. Organigramme du décodeur différentiel.

Cette fonction se compose de deux processus. Le premier processus est la resynchronisation du signal dump avec l’horloge de 160MHz (non représenté ici) et la définition des signaux d’entrée data_n_1 (représentant l’état précédent de data_n) et data_n. Le second processus est le décodage du signal Data_av_decodee_clk160nco sur le front montant de l’horloge en sortie du NCO, et du signal Dump_clk40nco resynchronisé. Le décodeur DBPSK est ainsi réalisé à l’aide deux portes logiques NOT et XOR qui encodent les data_n_1 et data_n, et d’un registre à décalage pour la fonction mémoire (entre data_n_1 et data_n). Cette fonction représente la fonction inverse de l’étage Encodeur à l’émission.

Page 122: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-111-

III.3.2.2.1.4 Résultats de simulations

Les différents signaux de l’organe « recepteur_ss_synchronisation » sont représentés sur la figure III.16.

Figure III. 16. Résultats de simulation sous le logiciel ModelSim.

On peut voir sur la Figure III.16 les différents signaux générés par le récepteur et classés par fonctions.

• Data_codee_clk40e : les données reçues et échantillonnées (après conversion du signal reçu) et pouvant être retardées par la traversée du canal.

• Code_out (=>PN_code_bus) : le PN_Code en phase issu du générateur de PN-Code.

• Data_multi_clk40nco : données après la fonction « multiplieur » dont la valeur varie entre +7 et -7 selon la valeur du PN-Code, qui correspondent au signal encodé de l’émetteur.

• Acc_test_clk160nco : le signal d’accumulation généré sur le front montant de l’horloge. Les valeurs sont incrémentées de +7 ou décrémentées -7 tous les 6,25ns (Tc/4). Dans notre exemple, c'est-à-dire pour N=15, ce signal peut atteindre en valeur maximum +/- 420 ((4×N×7) ou (4×N×-7)).

• Dump_clk40nco : ce signal est généré par le générateur de code aléatoire tous les temps symbole (375ns) à partir de l’horloge Chip. Ce signal est aussi utile au bloqueur et à la remise à zéro de l’accumulateur de l’intégrateur.

• Detect_front : le signal détecte pour une horloge de 160MHz le front montant sur le signal dump_clk40nco. Ce procédé de resynchonisation est inévitable puisque le dump est généré à partir d’une horloge de 40MHz et exploité par une horloge de 160MHz.

• Data_desetalee_clk160nco : il correspond au signal en sortie de la fonction « désétalement réception ». Il est donc généré sur chaque front montant (detect_front) de dump_clk40nco avec un symbole de retard par rapport au signal d’accumulation (Acc_test_clk160nco) et peut donc prendre les valeurs maximums de +/- 420.

Retard d’un symbole

1 0 1 0

Page 123: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-112-

• Data_av_decodee_clk160nco : il s’agit du signal en sortie de la fonction « test_donnée » et est issu de la comparaison au seuil de valeur 200. Il est restitué sur un bit, et correspond au signal après encodage au niveau de l’émetteur.

• Sortie_clk160nco : c’est le signal en fin de chaîne de réception, équivalent à la trame de données en entrée de l’émetteur.

III.3.2.2.2 Synchronisation Nous décrivons tout d’abord la structure élémentaire de l’organe de synchronisation

comportant une seule branche.

Figure III. 17. Synoptique de la fonction Synchronisation simple (une branche).

A partir du schéma fonctionnel de la synchronisation SERIE (Chapitre 2 § V.4.3.2.2) et des travaux antérieurs [BOUR00], les fonctions utiles pour cet organe sont :

un multiplieur et un filtre Passe-Bas du 2ème ordre pour la corrélation, une mise au carré et un filtre de Bessel du 5ème ordre pour la détection d’enveloppe , une logique de contrôle pour déterminer si la corrélation est existante.

Cependant, l’intégration de ces fonctions nous oblige à les substituer par un homologue numérique. Ainsi :

La fonction corrélation regroupant le multiplieur et le filtre devient les fonctions « désétalement réception » déjà présentées dans le paragraphe (III.3.2.2.1.1).

La mise au carré est représentée par la fonction valeur absolue. Le filtrage pour la détection d’enveloppe par un filtre numérique de type RII. La logique de contrôle par la fonction « test seuil » avec le seuil adapté.

III.3.2.2.3 L’organe de poursuite (DLL) Comme énoncé dans le chapitre II (§V.4.4.1.1), l’organe de poursuite est composé d’un

discriminateur qui détermine l’erreur de poursuite, d’un filtre de boucle pour moyenner l’erreur de poursuite et d’un oscillateur commandé en tension pour générer une horloge de fréquence 160 MHz modulée par la valeur de l’erreur. Un multiplexeur permet de déclencher la poursuite lorsqu’une corrélation est détectée (signal synchro de valeur 1) par l’organe de synchronisation.

Page 124: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-113-

Figure III. 18. Synoptique de l’organe de poursuite.

Si le résultat de corrélation de la branche « Early » est supérieur à celle de la branche « Late », une erreur de poursuite (discri) positive est créée et générera une période en sortie de l’oscillateur (NCO) de valeur Tearly = 6,25ns + influence de l’erreur (augmentation de la période du NCO). Dans le cas d’une prépondérance de la branche Late, la période du NCO est de 6,25ns - influence de l’erreur.

Les simulations ont montré que l’organe de poursuite s’asservit seulement si le PN-Code à synchroniser n’a pas à se décaler de +/- 12,5ns par rapport au PN-Code central (Code_out). C’est pourquoi le chaîne d’asservissement ne devra pas apporter un retard supérieur à un temps Chip en totalité.

III.3.2.2.3.1 Le Discriminateur

Le discriminateur est composé de 2 branches de corrélation. Chaque branche de corrélation est composée d’une fonction « multiplieur », intrégrateur/Bloqueur et valeur « absolue », qui est la même organisation que la chaîne de synchronisation. Après écriture en VHDL, les signaux mis en jeu sont simulés sous ModelSim et présentés sur la Figure III. 19.

Page 125: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-114-

Figure III. 19. Simulation des principaux signaux de l’organe de poursuite sous ModelSim.

Le détail des signaux mis en jeu est à présent énuméré :

• Data_codee_clk40e : données reçues et échantillonnées (après conversion du signal reçu)

• Data_multi_clk40nco : données multipliées dont la valeur varie entre +7 et -7 et qui correspondent au signal encodé de l’émetteur.

• Code_early : PN_Code en avance d’un ¼ Chip et issu du générateur de PN-Code. • Dump_early_clk40nco : le signal est généré par le générateur de PN_Code tous les

symboles à partir de l’horloge Chip. Il est généré tous les temps symbole pour que la corrélation sur la branche early soit maximum.

• Data_desetalee_early_clk160nco : le signal correspond à la sortie de l’intégration/ bloqueur de la branche en avance. Ce signal est un mot de M bits et peut prendre comme valeurs maximums de +/- 413 (Voir explication de l’intégrateur/bloqueur décrit au III.3.2.2.1.1).

• Data_absolu_early_clk160nco : ce signal prend la valeur absolue du signal précédent Data_desetalee_early_clk160nco.

Les signaux pour la branche en retard (late) ont la même définition que ceux de la branche en avance (Early).

• Discri : signal de sortie du discriminateur, proportionnel à l’erreur de poursuite. Il est défini comme la différence entre les signaux Data_absolu_early_clk160nco et Data_absolu_late_clk160nco.

Lorsque les branches sont équilibrées (ce qui veut dire que le Pn-Code en réception (Code_out) a été ajusté précisement), ce signal prend pour valeur 0. Ce signal moyenné pilote la fréquence du NCO.

Page 126: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-115-

III.3.2.2.3.2 Le Filtre numérique

Les filtres numériques constituent la branche de traitement du signal la plus étudiée. Au départ créée pour simuler les filtres analogiques afin d’optimiser leurs paramètres avant réalisation, l’avancée technologique des logiciels permet désormais leur réalisation [KPAL03]. C’est pourquoi des méthodes et des outils spécifiques ont été développés pour la synthèse des filtres numériques.

Un filtre linéaire à temps discret réalise une opération de convolution entre le signal d’entrée et la réponse impulsionnelle du filtre. Dans le domaine de l’échantillonné, elle devient un produit algébrique (Figure III. 20).

Figure III. 20. Définition d’un filtrage numérique.

)()()( zXzHzY = [Eq.III. 3]

où H(z) est la fonction de transfert du filtre numérique et Y(z) le signal de sortie du filtre.

Cette fonction H(z) peut s’écrire de deux manières :

∑−

=

=

+1

0

0)( N

n

nn

N

M

m

mm

zaz

zbzH avec M≤N pour que le filtre soit réalisable.

Par une équation aux différences utiles pour définir la structure du filtre. )()1(...)1()(...)1()()( 01110 NnyaNnyanyaMNnxbNnxbNnxbny NM −−+−−−−−+−+++−+−= −

Ils existent deux grandes classes de filtres numériques :

Le filtre à Réponse Impulsionnelles Finie (RIF) définie comme h(n)=0 pour n ≥N et h(n)≠0 pour n=0,1,…N-1 Les filtres à Réponse Impulsionnelles Infinie (RII) tels que

h(n)≠ 0 pour n=0,1,…+∞

Les synthèses des filtres RIF ou RII se font de manières différentes. Pour le RIF, la synthèse se fait généralement avec la méthode de la fenêtre où il faut imaginer la réponse fréquentielle du filtre. Quant au filtre RII, il se base sur les méthodes du « monde de l’analogique ». A partir d’une fonction de transfert issue du modèle fréquentiel, il est possible de définir, grâce à la transformée bilinéaire, dans le domaine de l’échantillonné la fonction de transfert du filtre numérique. Nous pouvons ainsi utiliser le savoir-faire du monde analogique (Butterworth, Chebychev, Bessel…) dans le monde numérique.

Nous allons maintenant comparer ces deux familles sur les critères importants pour les filtres numériques qui sont la stabilité, la phase linéaire et la quantité de calcul.

Page 127: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-116-

Critères Filtre RIF Filtre RII Stabilité Toujours Stable La stabilité n’est pas

automatique. Elle doit être vérifiée.

Linéarité de la phase Oui Non Quantité de calculs Q associés Pour un gabarit donné Q RIF>>Q RII ce qui implique forcément

plus de calculs pour le filtre RIF que le filtre RII

Tableau III. 5. Comparaison des classes RIF et RII des filtres numériques.

Notre premier critère de choix s’est porté sur la quantité de calculs engendrée pour le fonctionnement du filtre. En effet, nous voulons implanter notre circuit dans un circuit programmable. Il faut donc que le calcul engendré ne soit pas trop gourmand en temps et donc nombres de portes. La définition des filtres étant faite en analogique [BOUR00], il semble que le filtre RII apporte une meilleure transposition du filtre analogique en numérique. Les désavantages du filtre RII comme la linéarité de la phase ne sont pas un critère important, de même pour la stabilité qui peut être facilement vérifiée par simulation.

Pour toutes ces raisons, nous avons choisi un filtre RII en vue d’une implantation.

Le calcul du filtre numérique de la boucle à verrouillage de délai se base sur les paramètres du filtre analogique, à savoir un filtre du 1er Ordre dans le domaine fréquentiel avec une constante de temps τ= 1µs [BOUR00].

ppF

τ+=

11)( [Eq.III. 4]

Grâce à la transformation bilinéaire [BELL02], nous nous basculons du domaine de LAPLACE dans le domaine échantillonné de la transformée en Z. Cette transformation se définit de la manière suivante :

112)()(

+−

==

ZZ

Tep

pHzH [Eq.III. 5]

Où Te représente la période d’échantillonnage (Te=Tc/4).

En appliquant le changement de variable de l’équation (Eq.III. 5), le calcul se développe de la manière suivante :

1

1

221

22

1121

1)(−

+−

+

++

+=

+−

×+=

zTeTe

zTe

TeTe

Te

zz

Te

zH

ττ

ττ

τ [Eq.III. 6]

Par analogie avec :

110

110

)()()(

+

+==

zaazbb

zXzYzH [Eq.III. 7]

Les coefficients a0,a1,b0 et b1 prennent respectivement pour valeurs :

6842,02

21

1579,02

1

0

10

=+−

=

=

=+

==

ττ

τ

TeTea

aTe

Tebb

[Eq.III. 8]

Page 128: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-117-

En vue de l’intégration numérique, nous déduisons l’équation aux récurrences (Eq.III.7 ) : )1(6842,0)()1(1579,0)(1579,0 −−=−+ nynynxnx

Soit )1(6842,0)1(1579,0)(1579,0)( −+−+= nynxnxny [Eq.III. 9]

Cette équation se traduit par la structure classique suivante :

Figure III. 21. Structure du filtre de boucle numérique

Son implantation dans le logiciel MATLAB nous permet de valider la stabilité. Les résultats confirment que le filtre est un filtre du 1er Ordre stable puisque le pôle est à l’intérieur du cercle de rayon R=1.

Figure III. 22. (a).Réponse impulsionnelle h(t)

(a)

Page 129: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-118-

Figure III. 24.b Diagramme de stabilité du filtre.

Après cette vérification, cette structure est développée en VHDL, et génère les processus suivants (Figure III. 23) :

Figure III. 23. Processus pour le filtre numérique de la boucle à verrouillage de délai.

Ce modèle est alors simulé sous le logiciel ModelSim avec une période d’échantillonnage fixée à 6,25ns (Figure III. 24).

Figure III. 24. Simulation d’un filtre numérique RII.

Nous pouvons voir que le filtre implanté comprend un seul dépassement et se stabilise avec comme valeur finale la valeur de l’échelon (c'est-à-dire 256). Notons que ce filtre engendre un retard correspondant à 2 Te soit 12,5ns.

(b)

Page 130: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-119-

III.3.2.2.3.3 L’oscillateur numérique controlé en tension

L’oscillateur numérique controlé en tension (NCO) est l’élément central de la DLL. Il permet d’avancer ou de retarder le PN-Code en fonction de l’information d’erreur fournie par le discriminateur, en générant une fréquence d’horloge contrôlable autour de la fréquence centrale 160MHz. La période de cette horloge évolue en fonction de la valeur du mot de sortie du filtre de boucle. Si ce mot est positif (qui se traduit par une erreur de poursuite positive en sortie du discriminateur), la fréquence générée en sortie du NCO sera plus rapide et inversement. La structure de cet élément est présentée sur la figure suivante :

Figure III. 25. Schéma de principe pour l’oscillateur numérique contrôlé.

Le principe du NCO consiste à incrémenter sur chaque front montant d’une horloge d’entrée (fréquence élevée par rapport à la fréquence d’échantillonnage du mot) un registre « Accumulateur » d’un mot de commande W constitué du pas d’incrémentation (choisi pour générer une fréquence centrale de 160MHz ) et du mot en sortie du filtre de boucle.

W[A:0]= entrée NCO + pas d’incrémentation [Eq.III. 10]

L’influence du mot de commande W sur le bit de poids le plus fort (MSB) du registre est illustrée pour deux valeurs d’erreur en entrée (0)d et (1)d. Le pas est fixe, pour les deux exemples de valeurs (10)b, le registre est volontairement limité à 4 bits par souci de clarté.

Dans le premier cas (tableau de gauche), le mot W est la somme du pas d’incrémentation de 2(0010b) et d’un mot d’entrée discri_int[10 :0] valant 0. Nous constatons que le signal associé à l’évolution du bit de poids le plus fort est périodique, de période égale à 8 coups d’horloge (Figure III. 26a).

Dans le deuxième cas (tableau de droite) le mot W toujours constitué d’un pas d’incrémentation de 2 (0010b), est sommé au mot d’entrée discri_int[10 :0] de 1(0001b). Dans ce cas, l’évolution du bit de poids le plus fort est également périodique, avec une période fixée à 17 coups d’horloge (Figure III. 27.b). Nous avons donc bien réalisé une commande de fréquence numérique. De manière générale, la fréquence de sortie du NCO s’écrit [LU93] :

Page 131: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-120-

Entrée nulle [discri_int]=(0)d Entrée non nulle [discri_int]=(1)d

Figure III. 26. Evolution du registre du NCO pour deux valeurs d’entrée, dans le cas d’un registre de

4 bits.

Figure III. 27. Représentation du bit de poids fort pour deux cas du mot W.

Les deux exemples précédents illustrent donc la variation de fréquence en fonction du mot de commande W. La formule donnant la fréquence de sortie en fonction du mot W est la suivante :

dAclknco

s WMotf

f ]_[2

×⎟⎠⎞

⎜⎝⎛= [Eq.III. 11]

avec A la taille du registre de l’accumulateur.

La résolution associée s’écrit :

⎟⎠⎞

⎜⎝⎛= A

clkncofrésolution

2 [ Eq.III. 12]

Etat des registres de l’accumulateur pour un

mot W de 0010

Valeur accumulateur (décimal)

0 0 0 0 0 0 0 1 1 3 0 1 1 0 6 1 0 0 1 9 1 1 0 0 12 1 1 1 1 15 0 0 1 0 2 0 1 0 1 5 1 0 0 0 8 1 0 1 1 11 1 1 1 0 14 0 0 0 1 1 0 1 0 0 4 0 1 1 1 7 1 0 1 0 10 1 1 0 1 13 0 0 0 0 0

MSB

N(2

)

N(1

)

N(0

)

Etat des registres de l’accumulateur pour un mot W de

0010

Valeur accumulateur

(décimal)

0 0 0 0 0 0 0 1 0 2 0 1 0 0 4 0 1 1 0 6 1 0 0 0 8 1 0 1 0 10 1 1 0 0 12 1 1 1 0 14 0 0 0 0 0

MSB

N(2

)

N(1

)

N(0

) Cyc

le p

ourW

= 3

Cyc

le p

our

W=2

Tem

ps

Tem

ps

Page 132: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-121-

Différentes simulations ont permis de fixer pour notre application la fréquence d’horloge et le pas d’incrémentation. Les résultats obtenus sont présentés dans le tableau ci-dessous :

Fréquence Horloge 640 MHz

Longueur du registre 16 Pas incrémentation 2 14

Mot d’entrée 10 bits WMAX

(Signal d’entrée =1111111111)

2 14 + (2 10-1)

WMIN (Signal d’entrée =0)

2 14

Plage de fréquence MHzMHzMHzMHz 10160160

212160 14

10

±=⎟⎟⎠

⎞⎜⎜⎝

⎛×

−±

Résolution (kHz) 9,765

Tableau III. 6. Caractéristiques principales de l’oscillateur numérique commandé en tension.

La modélisation VHDL s’effectue sur la base de l’organigramme de la Figure III. 28.

Figure III. 28. Organigramme de la fonction NCO.

L’architecture du NCO comporte deux processus : un premier processus est déclenché par le front montant de l’horloge à 640MHz qui ajoute à l’accumulateur n le résultat de l’addition du pas d’incrémentation (fixé à 214) avec le signal d’entrée (discri). Le second processus génère en sortie du NCO le bit de poids le plus fort de l’accumulateur. Les chronogrammes issus des simulations sous ModelSim sont représentés dans la Figure III. 29.

Page 133: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-122-

Figure III. 29. Simulation de l’organe NCO en langage VHDL.

Nous pouvons voir sur cette figure que nous générons une période de 6,25ns en sortie du NCO qui correspond bien à la fréquence de 160MHz. Le mot issu du discriminateur est ajouté à chaque front montant de l’horloge sur les bits n(9) à n(0) et fait donc varier la période du signal de sortie du NCO permettant d’avancer ou de retarder la génération du PN-Code. L’inconvénient majeur de cette structure avec cette configuration est sa difficulté d’implémentation du fait du temps de propagation de la retenue. Une structure d’accumulateur pipeline [LU93] peut palier à ce problème.

III.3.2.2.3.4 Le Générateur de PN-Code du récepteur

Ce générateur est basé sur la même structure que le générateur de PN-Code de l’émetteur. En supplément, il doit fournir les PN-Codes en avance et en retard pour les branches du discriminateur. Une étude antérieure [BOUR00] menée sur la variance du modèle fonctionnel de la DLL a montré que l’écart entre les branches doit être de Tc/4 (6,25ns). De manière identique au générateur de l’émetteur, il est paramétré par les vecteurs de configuration c(n) et d’initialisation a(n). Il est à présent piloté par l’horloge issue de l’oscillateur numérique. Cette horloge, centrée sur 160MHz, admet un minimum de 10MHz de variation.

Figure III. 30. Structure du générateur de PN-Code de récepteur.

Page 134: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-123-

Le générateur présenté ici est celui utilisé pour une synchronisation avec l’organe SERIE une branche. Nous verrons dans le prochain paragraphe qu’il a été adapté dans le cas d’une synchronisation à plusieurs branches (N branches).

III.3.2.2.4 Synchronisation à N branches L’organe de synchronisation est composé maintenant de plusieurs branches. Ce nombre

de branches est directement égal à la longueur du PN-Code N. En effet, si le décalage entre chaque branche est égale à la durée d’un temps chip Tc, les calculs de corrélation en parallèle couvrent tous les cas de corrélation. La figure suivante illustre la fonction d’autocorrélation pour chaque voie de synchronisation. Nous pouvons donc voir que pour chaque Tc (qui est la limite de la recherche de la boucle à verrouillage de délai), un pic de corrélation peut être détecté. Ainsi, à tout moment, une voie de synchronisation est valide (signal Synchro_voie_corrélé vaut 1).

Figure III. 31. Représentation de la fonction d’autocorrélation pour chaque branche de

synchronisation (Cas N=7) décalée d’un temps chip.

La structure définie pour ce nouvel organe de synchronisation est la suivante :

Page 135: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-124-

Figure III. 32. Structure du récepteur pour une synchronisation comptant N branches.

Comparée à la structure élémentaire, il est nécessaire d’implémenter un nouvel organe supplémentaire entre la synchronisation et la poursuite détaillé dans le paragraphe ci-dessous.

III.3.2.2.4.1 L’organe de sélection

Comme son nom l’indique, l’organe de sélection a deux rôles principaux :

il doit indiquer l’image de la voie synchronisée. Ceci est évalué à l’aide des différents signaux (synchro_N°_voie_corrélé),

il doit recaler le PN-Code pour permettre à la première voie d’être synchronisée. Par conséquence, nous nous retrouvons dans le cas d’une synchronisation simple branche.

Dans le cas d’un code de longueur 15, la première étape consiste à dupliquer 15 fois la branche de synchronisation. Nous avons alors conçu par concaténation des signaux de sortie de chaque branche le mot k_n [14:0], qui définit la voie synchronisée. Il faut commander la mise à jour des registres à décalage du générateur de PN-Code pour qu’au prochain signal dump (ou temps symbole), le PN-Code de la voie 1 soit en phase avec la donnée étalée reçue.

L’étape suivante est d’accommoder la génération du PN-Code pour qu’au prochain temps symbole, le PN-Code de la voie 1 soit en phase avec la donnée étalée. Le signal qui permet cela est le signal interne d (valeur des registres à décalage) imposé par la sortie du module de sélection. Le second signal de sortie de l’organe de sélection est le signal maj qui identifie le moment de mise à jour du signal d.

La machine à états de la Figure III. 33 précise le fonctionnement global de cet organe.

Page 136: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-125-

Figure III. 33. Description du fonctionnement de l’organe sélection.

La fonction sélection comporte donc 5 états :

Repos : c’est l’état d’initialisation dans lequel le signal reset vaut 1, maj vaut 0 et d(0 :11)h de valeur 800h. Sb1 : état dans lequel on se trouve lorsque la première voie (celle qui ne comprend pas

de retard avec l’organe récepteur_ss_synchronisation) est corrélée. Ce sera le cas lorsque nous n’avons aucun retard engendré par le canal.

Les trois états suivants sont définis lorsque la corrélation n’est effective que sur la première voie.

Sbn1 définit l’étape dans lequel est fait la mise à jour de d en fonction du numéro de la branche. (MAJ=’1’) Sbn2 traduit la fin de la mise à jour. Le signal maj vaut alors ‘0’. Sbn3 est la dernière étape et gère les cas de désynchronisation. Dans le cas d’une perte

de synchronisation, nous retournons dans l’étape Sbn1 pour retrouver la nouvelle voie synchronisée.

Nous évaluons la valeur du mot d(0:11) en fonction de la branche synchronisée. Nos simulations nous ont montré que le temps de parcours de la machine à états étant de trois temps chip et que la valeur à affecter au mot d(0:11) vaut b00h. Le temps symbole lors de la mise à jour des registres à décalage répond à l’équation suivante :

Ts_maj =Ts+(k_n -1)*Tc [Eq.III. 13]

La figure suivante illustre les différents signaux que nous venons de décrire. Notamment, nous observons le mot d(0:11 ) qui prend la valeur b00h lorsque maj vaut 1. Le signal Synchro7 valant 1 montre que dans ce cas c’est la branche n°8 qui est corrélée pendant le premier symbole. Au prochain temps symbole (2ème Dump) c’est la branche 1 (donc le Synchro1 vaut 1) qui est maintenant corrélée. Nous voyons que la machine à états passe par les états Sb1, Sbn1 et Sbn2.

Page 137: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-126-

Figure III. 34. Simulation de l’organe déphaseur et du nouveau générateur de PN-Code.

III.3.2.2.4.2 Le générateur de PN-Code adapté à la synchronisation N branches.

Le deuxième organe modifié pour permettre une synchronisation N branches est le générateur de PN-Code qui comporte à présent deux nouveaux signaux en entrée :

le signal maj commande la mise à jour des registres des générateurs (actifs à l’état 1). le mot d_int[0:11] qui est la valeur des registres à décalage du générateur.

L’organigramme du générateur de PN-Code devient le suivant :

Figure III. 35. Organigramme du générateur de PN-Code pour une synchronisation N branches.

Page 138: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-127-

L’organigramme du générateur de PN-Code pour une synchronisation N branches est composé deux processus :

Le premier processus (celui de gauche) permet initialisation des registres pendant un reset.

Le deuxième processus (celui de droite) permet l’affectation des registres à décalage (mot dint) et la création du signal dump définissant le temps symbole. La mise à jour des registres à décalage se fait pendant l’état haut du signal maj.

III.3.2.2.4.3 Résultats de simulation du récepteur en bande de base

La structure que nous venons de décrire a été implantée en VHDL. Outre les signaux présentés lors des simulations précédentes, nous montrons les signaux du récepteur (III.3.2.2.1.4) permettant la validation du modèle sur la figure suivante :

Figure III. 36. Simulation du récepteur dans le cas d’une synchronisation 15 branches.

Nous observons que c’est bien la voie 8 qui est corrélée au départ puisque le signal synchro7 symbolisant la corrélation existante sur la 8ème voie est mis à 1. La fonction sélection joue alors son rôle :

la machine à états (signal sync0) bascule successivement dans l’état Sbn1, sbn2 puis sbn3.

après concaténation, le vecteur k_out, initialement à 0, prend la valeur 128.

La branche 8 (27) est celle délivrant une corrélation correcte. Enfin, la valeur du vecteur passe à 1, ce générateur de code venant de recaler le délai, la corrélation correcte finale s’effectue sur la branche numéro 0 (20).

La branche numéro 1 devient alors corrélée après un temps symbole. Les signaux du récepteur deviennent alors correctes et correspondent aux signaux que nous avions dans le cas d’une synchronisation simple branche (Figure.III.16). Au vu de cette simulation nous pouvons donc valider notre modèle de synchronisation 15 branches.

Page 139: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-128-

III.3.3 Description des parties analogiques La modélisation des étages radiofréquences de la chaîne d’émission-réception tire partie

de la fonctionnalité analogique et mixte du langage VHDL-AMS. Les étages radiofréquences sont constitués d’oscillateurs locaux (analogiques), de multiplieurs (analogiques et mixtes) et de filtres (analogiques).

III.3.3.1 Description des parties radio-fréquences

Figure III. 37. Schéma global des étages radio-fréquences pour l’émission et la réception.

Ces étages radiofréquences sont donc constitués de multiplieurs et d’oscillateurs effectuant la modulation BPSK sur fréquence porteuse, de filtres Passe-Bande et d’un filtre Passe-Bas pour éliminer les fréquences doubles en sortie du démodulateur. La modélisation du canal englobe un canal AWGN dont le niveau de bruit peut être paramétrable.

III.3.3.1.1 La modulation et démodulation BPSK

III.3.3.1.1.1 La modulation BPSK

La modulation BPSK (Chapitre II §V.I) consiste à matérialiser le signal binaire par un changement de phase de la porteuse ; un déphasage de π devra être interprété à la réception comme un ‘1’ binaire et l’absence de déphasage comme un ‘0’. Ceci se traduit à l’émission par la mise en œuvre d’un multiplieur numérique - analogique : un mélange entre le signal binaire (data_étalé) et une porteuse (ici 2,44GHz). Cette opération nécessite la transformation des données étalées au format NRZ (Etats -1 ;+1). Cette fonction est décrite à partir de l’organigramme suivant (Figure III. 38).

Figure III. 38. Organigrammes de fonctions composant la modulation BPSK.

Page 140: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-129-

L’instruction break permet l’interaction entre le noyau numérique dans lequel sont définis les signaux numériques de l’émetteur et le noyau analogique dans lequel est définie la porteuse. Les signaux de sorties de l’oscillateur et du multiplieur sont décrits au moyen de terminaux qui définissent des connexions analogiques.

Figure III. 39. Résultats de simulation du modulateur BPSK.

Les résultats de la Figure III. 39 montrent que chaque front sur la donnée étalée se traduit par un saut de phase.

III.3.3.1.1.2 La démodulation BPSK

Le schéma classique de la démodulation BPSK est utilisé à la réception et permet de transposer directement le signal étalé en bande portée en bande de base (Figure III. 40). Outre un oscillateur local (OL) et un multiplieur, le filtre passe-bas rejette la composante spectrale de fréquence double (Figure III. 41).

Figure III. 40. Démodulateur BPSK utilisé à la réception.

Figure III. 41. Résultats de simulation en sortie du démodulateur BPSK.

Le gabarit du filtre passe-bas est déterminé dans la partie suivante.

Oscillateur local

Sortie haute fréquence

Saut de phase

Sortie OLSortie Filtre Passe-bas

Page 141: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-130-

III.3.3.1.2 Les Filtres analogiques

III.3.3.1.2.1 Choix des paramètres des filtres analogiques

Pour choisir les différents filtres analogiques utiles dans la chaîne radiofréquence, nous nous sommes basés sur une étude comparative [NIVE99] décrivant les différents filtres analogiques. Le bilan est le suivant :

Les filtres Passe - Bande en sortie du modulateur et en entrée du démodulateur ont pour rôle de borner la bande d’émission en accord avec la bande ISM (Bande passante d’émission = 80MHz). La fonction de transfert retenue est [NIVE99] :

41939221122

2

44

33

2210

2210

10.4,410.37,110.88,310.13,310.4,4)(

ppppp

papapapaapbpbbpH −− ++++

=++++

++= [Eq.III. 14]

Le filtre de Tchébyscheff apporte la configuration optimale. Ce filtre a été retenu pour sa bonne réjection malgré une mauvaise linéarité en phase et une oscillation de sa réponse fréquentielle dans la bande utile. Les caractéristiques retenues sont : un filtre de Tchébyscheff d’ordre 5, de fréquences de coupure 2,44GHz ± 40MHz avec une ondulation dans la bande passante de 0,05dB.

Pour le filtre Passe - Bas en sortie du démodulateur le filtre de Bessel détient les meilleures propriétés. En effet, la réjection est moindre du fait de l’écart de fréquence entre le signal utile et le signal à rejeter (4,88GHz). Il déforme peu la réponse impulsionnelle et présente une très bonne linéarité en phase. Le filtre de Bessel d’ordre 5 et de fréquence de coupure 40MHz a été retenu [NIVE99] dont la fonction de transfert s’écrit :

4353252178 10.83,710.08,110.51,510.22,1.145

50)(

pppppH

−−−− ++++= [Eq.III. 15]

III.3.3.1.2.2 Description des filtres implantés en VHDL-AMS

En VHDL-AMS, le comportement d’un filtre peut être exprimé de deux manières soit sous forme de fonction de transfert, soit sous d’une équation différentielle. Déjà exprimer sous forme de fonction de transfert, nous avons décrit les filtres sous cette forme. Elle s’exprime sous l’attribut prédéfini ‘ltf, qui accepte comme argument les tableaux de coefficients de polynôme num et den, représentant respectivement polynôme du numérateur et du dénominateur. Les filtres n’ont alors qu’une instruction simultanée qui permet d’exprimer la fonction de transfert du filtre dans le domaine de LAPLACE. Les entrées et les sorties de ces filtres sont définies à l’aide de terminaux (points de connexions analogiques).

III.3.3.2 Le canal AWGN (Additif White Gaussian Noise) Dans toute application de ce type, les mesures issues des simulations (gain en traitement,

rapport signal sur bruit SNR, taux d’erreur sur le bit TEB) s’effectuent en milieu bruité. Il est donc nécessaire de développer un modèle de canal AWGN dans lequel nous pouvons aisément paramétrer les niveaux de bruit, permettant de voir directement le rapport signal sur bruit. Pour cela, les fonctions développées pour la modélisation du canal, en VHDL-AMS, sont :

une atténuation (B) un retard Td (B) un générateur de bruit blanc gaussien (A), intégrant une fonction spécifique capable de

générer de manière implicite le niveau de bruit correspondant à un rapport signal sur bruit souhaité (C).

Page 142: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-131-

Ces fonctions sont schématisées sur la Figure III. 42.

Figure III. 42. Description fonctionnelle du module du canal AWGN.

Ces fonctions développées en VHDL-AMS, sont détaillées dans les paragraphes suivants.

III.3.3.2.1 Génération d’un bruit blanc Gaussien Comme nous l’avons déjà vu (Chapitre 1( § IV.2.3)), les bibliothèques de bruit en

VHDL-AMS sont quasiment inexistantes, nous avons donc développé notre propre modèle de bruit. Pour cela, nous nous sommes basés sur la méthode de BOX-MULLER [BOXM58] permettant de transformer deux variables définies par une distribution uniforme en une variable basée sur une loi normale.

Définition de la transformation de BOX MULLER

Soit x1 et x2 deux variables uniformes et distribuées indépendamment entre 0 et 1, alors z1 définit comme suit est une distribution normale de valeur moyenne µ nulle et de variance σ² égale à 1.

)2cos(ln2 211 xxz π−= [Eq.III. 16]

La loi décrite par la variable z1 est appelée aussi loi normale centrée réduite et permet de définir un signal blanc gaussien.

Description du bruit blanc gaussien en VHDL-AMS

La génération du bruit blanc gaussien se déroule en deux étapes [KARR04,NORM04]. La première étape permet de décrire les deux variables uniformes X1 et X2. Pour ce faire, nous utilisons la fonction UNIFORM [LECU88] de la bibliothèque « Math_real ». Cette fonction retourne un nombre x pseudo-aléatoire basé sur une distribution uniforme dans l’intervalle

Page 143: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-132-

[0.0, 1.0]. Ces variables sont ensuite composées par la transformation de Box-Muller au moyen de l’équation (Eq.III.8). L’organigramme suivant (Figure III. 43) décrit cette génération du bruit blanc gaussien en VHDL-AMS.

Figure III. 43. Organigramme de la génération d’un bruit blanc gaussien.

Les variables aléatoires x et y de l’organigramme permettent de définir la variable gaussienne « noise ». L’instruction concurrente break permet de forcer le calcul à un instant défini par le temps d’échantillonnage (Tps_echant).

La Figure III. 44 représente la densité de probabilité issue du bruit généré à l’aide de la transformation de BOX-MULLER en VHDL-AMS comparée à la théorie calculée sous MATLAB [GUIL05G]. Ce résultat permet de valider la génération d’un bruit blanc gaussien.

Figure III. 44. Densité de probabilité à l’aide du modèle VHDL-AMS et du modèle mathématique sous

MATLAB.

III.3.3.2.2 Le délai dans le canal En VHDL-AMS, le délai dans le canal a été créé grâce à la fonction DELAYED qui

recopie l’entrée sur la sortie après un temps réglable. Cette modélisation sera notamment utile pour la validation du modèle du récepteur et en particulier l’organe de synchronisation. En effet, cette déviation temporelle paramétrable dans le canal permet de mesurer la fonction

MATLAB VHDL-AMS

Page 144: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-133-

d’autocorrélation en sortie de l’organe de corrélation du récepteur, sans synchronisation. Par la suite, cette fonction est aussi mise en œuvre pour la modélisation d’un canal multitrajet.

III.3.3.2.3 Implantation d’un rapport signal sur bruit paramétrable L’implantation d’un signal « bruit » dans le canal au moyen d’un additionneur permet de

reproduire le comportement en milieu bruité du prototype [GUIL05E]. Cependant, les étapes de mesures associées, comme la détermination du rapport signal sur bruit en entrée du récepteur, sont contraignantes : mesure de la puissance du signal seul (S) injection du bruit, mesure de la fréquence totale, déduction de la puissance du bruit (B). La syntaxe du VHDL-AMS permet de développer un modèle de canal dans lequel nous fixons comme paramètre d’entrée, directement le rapport signal sur bruit (SNR). Le modèle fonctionnel complet du canal AWGN est présenté sur la Figure III. 45.

Figure III. 45. Structure interne du canal AWGN paramétrable.

Nous retrouvons comme variables d’entrée le retard Td et l’atténuation A, auxquelles s’ajoute le niveau de rapport signal sur bruit en décibel. Le signal de l’entrée du sommateur s’écrit :

Noise_generator_out=10(Level/20.0)×Noise [Eq.III. 17]

dans lequel Level représente le niveau de bruit implicite dans le canal, noise le bruit blanc gaussien généré avec la méthode de BOX-MULLER et Noise_generator_out le bruit gaussien généré pour le niveau Level.

Page 145: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-134-

Le niveau de bruit Level est calculé en fonction du rapport signal sur bruit désiré (SNR) et du niveau du signal Ve, qui peut être atténué (A1) par rapport au signal en entrée du canal. Pour cela, il est donc nécessaire de mesurer Ve (en dB) au prélable :

Level(dB) = Ve (dB)-SNR(dB) [Eq.III. 18]

Le module « CANAL AWGN » comporte donc deux processus concurrents. Le premier processus calcule la valeur du niveau du signal seul à l’entrée du canal Ve(dB). Le second processus génère le bruit blanc gaussien adaptatif. Il crée le bruit Noise grâce la transformation de Box-Muller et calcule le niveau Level en fonction du SNR et du niveau Ve en dB. Lorsque Level est calculé le niveau de bruit est injecté dans le canal par l’intermédiaire du signal Noise_generator_out.

Figure III. 46. Simulation des différents signaux du module « CANAL AWGN ».

La Figure III. 46 décrit les différents signaux mis en jeu dans l’organe CANAL AWGN. Le signal (a) représente le signal en entrée du canal , le signal(b) Noise est le bruit blanc gaussien généré, le signal (c) Noise_generator_out décrit le bruit injecté dans le canal et enfin le signal (d) représente la sortie du canal.

La figure ci-dessous présente la densité de probabilité pour deux rapports signal sur bruit (SNR =15 dB à gauche et SNR=10 dB à droite) générés. La valeur moyenne du « bruit paramétrable » est nulle, mais la variance évolue en fonction du rapport signal sur bruit (SNR).

Figure III. 47. Représentation du bruit gaussien avec différents niveaux de bruits.

Ces derniers résultats permettent de valider le module canal AWGN modélisé en VHDL-AMS.

-d-

-c-

-b-

-a-

SNR=15 dB SNR=10 dB

Page 146: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-135-

III.3.4 Description du Convertisseur Analogique / Numérique A l’entrée du récepteur, après les étages radiofréquences, le signal en bande de base est

échantillonné par la transformation analogique/numérique. Ce composant est le seul élément mixte analogique/numérique de la chaîne de communication. Le nombre de bits en sortie du convertisseur analogique/numérique est un paramètre important, et influe directement sur la taille et la complexité du circuit final. Une architecture à taille de mots réduits sera potentiellement plus rapide qu’une architecture à mots plus longs. L’étude de l’influence de ce paramètre sur le gain en traitement Gp [MELE01] a montré qu’une architecture du récepteur à 4 bits assure un bon compromis entre les performances et la largeur du bus du récepteur.

Le modèle que nous avons développé est un convertisseur analogique/numérique utilisant un processus d’approximations successives pour calculer le mot de sortie. Nous avons adapté un modèle inclus dans la bibliothèque standard du VHDL-AMS pour que la plage de tension et le temps de conversion soient configurables pour l’utilisateur. Dans ce convertisseur, quatre états sont développés : l’entrée de la donnée analogique, le maintien, la conversion et la sortie du mot sur 4 bits. Le process est constitué d’une série d’instructions séquentielles déclenchée par un front montant de l’horloge d’échantillonnage. Les signaux en entrée sont le signal issu du canal (ain), un signal de début de conversion (start), l’horloge d’échantillonnage (640MHz) pour la conversion (clk). Les signaux en sortie sont un signal détectant la fin de conversion (eoc) et le signal dout converti en numérique sur 4 bits.

La valeur du signal analogique est prélevée lorsque le signal start vaut ‘1’. A chaque période d’échantillonnage clk =’1’, la valeur Vin est stockée dans un variable Vtmp. Cette valeur est alors quantifiée dans la variable Dtmp avant d’être affectée à la sortie sous forme signée codée sur 4 bits.

III.4 Résultats de simulation

III.4.1 Simulation de la fonction d’autocorrélation

La validation du principe de l’étalement de spectre [GUIL05B] est effectuée pour différentes simulations au niveau du récepteur pour une longueur de code égale à 15 en présence d’un canal non-bruité. La fonction suivante est obtenue, et comparée à la fonction théorique (Figure III. 48).

Page 147: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-136-

-0,2

0

0,2

0,4

0,6

0,8

1

1,2

0 50 100 150 200 250 300 350 400 450

tau (ns)

Rc(

tau)

ThéorieSimulation

Figure III. 48. Fonction d’autocorrélation théorique et simulée pour N=15.

Nous obtenons une courbe comparable à la théorie (Chapitre 2 §III.6.2) avec un pic

d’autocorrélation maximal de valeur 1 pour un délai nul, et minimal (de valeur N1− ) en dehors

de la zone de corrélation. A la différence de la théorie, la fonction d’auto-corrélation forme des paliers pendant environ 6ns, qui s’expliquent par le calcul de l’intégration sur une fréquence d’échantillonnage de 160MHz. Cette simulation permet de valider la fonction de désétalement de notre modèle, et valident qualitativement le modèle développé tout au long de ce chapitre.

III.4.2 Simulation de la chaîne complète Emetteur/Récepteur Toutes les fonctions mixtes analogiques et numériques décrites dans ce chapitre

(émetteur, canal, récepteur) sont implantées dans le logiciel SystemVision, constituant ainsi notre prototype virtuel en langage de haut niveau.

Nous illustrons les différentes ondes temporelles principales mises en jeu dans la chaîne de l’émetteur/récepteur par la figure suivante (Figure III. 49).

Page 148: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-137-

Figure III. 49. Résultats de simulation des principaux signaux de l’émetteur/récepteur.

Les principaux signaux de l’émetteur, du canal et du récepteur représentés sont :

A l’émission : Data_source, Data_encodee et Data_etalée sont respectivement la trame à émettre, la trame encodée différentiellement et cette donnée est ensuite étalée. Ce dernier signal est modulé avec un oscillateur de 2,44GHz, puis filtré à l’aide d’un filtre passe-bande.

Dans le canal: Entrée_canal et Sortie_canal sont les signaux en entrée et en sortie du canal.

A la réception : ain et data_codee sont les signaux d’entrée du récepteur. Ain est le signal après la modulation BPSK, dont le résultat après la conversion analogique/numérique donne le signal data_codee. Ce signal est ensuite corrélé avec le PN-Code du récepteur (code_clk_40nco) ce qui donne lieu au signal data_desetalee. Cette donnée est ensuite comparée (data_av_decodee), puis décodée en différentiel pour donner le signal en sortie du récepteur (sortie_clk160nco).

Nous observons que le signal data_av_decodee du récepteur et Data_encodee de l’émetteur correspondent bien. Enfin, les signaux data_source et sortie_clk160nco sont identiques mais avec une certaine latence.

Page 149: 83240798 These Celine

CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau

-138-

Page 150: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-139-

IV CHAPITRE 4 : Etude et développement de la maquette Emetteur-Récepteur

Ce chapitre présente l’intégration du prototype complet. Ainsi nous décrivons le choix du circuit programmable utilisé et les différentes procédures de tests réalisées. Nous expérimentons l’intégralité des fonctions numériques de notre système en axant nos tests sur la généricité du système implanté et l’organe de synchronisation comportant plusieurs branches. 1 Introduction ............................................................................................................................................... 141 2 Cible d’implantation.................................................................................................................................. 141

2.1 Description du FPGA....................................................................................................................... 142 2.2 Le logiciel de commande Quartus II ................................................................................................ 143 2.3 Etapes d’implantation...................................................................................................................... 143

3 Les modules périphériques spécifiques développés .................................................................................. 144 3.1 Paramétrage du canal...................................................................................................................... 145 3.2 Paramétrage du débit....................................................................................................................... 148 3.3 Module de calcul de TEB................................................................................................................. 148 3.4 Interface logicielle ........................................................................................................................... 149

4 Résultats de synthèse................................................................................................................................. 150 5 Evaluation des performances mesurées ..................................................................................................... 151

5.1 Test en milieu non bruité.................................................................................................................. 152 5.2 Mesures en milieu bruité.................................................................................................................. 155

6 BILAN....................................................................................................................................................... 156

Page 151: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-140-

Page 152: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-141-

IV.1 Introduction Cette dernière partie portera sur la réalisation d’une maquette Emetteur/Récepteur à

circuit programmable comprenant tous les étages numériques. Dans un premier temps, nous testerons les fonctions principales de l’émetteur et du récepteur en bande de base et nous nous focaliserons en particulier sur l’organe important pour un émetteur/récepteur à étalement de spectre qui est la partie synchronisation. Dans un deuxième temps, nous ajouterons un délai « numérique » avec/sans bruit dans le canal pour évaluer les performances de notre système.

IV.2 Cible d’implantation Nous présentons tout d’abord le choix de notre cible pour l’implantation des étages

numériques écrits dans le langage haut niveau VHDL.

A partir de l’étude menée dans le premier chapitre, nous avons décidé de choisir comme cible d’implantation un circuit programmable FPGA, pour sa souplesse de conception (facilité d’utilisation, facilité de programmation).

Depuis plusieurs années, les constructeurs de FPGA ont augmenté la complexité de leur circuit, tout en rendant disponibles gratuitement (via internet) ou à faible coût les logiciels pilotes associés. Ceci est un donc un sérieux avantage pour un développement basé sur un composant programmable. Ces logiciels actuels associés pour la synthèse conviennent dans la plupart des cas lorsque la conception devient plus difficile (fréquence élevée, nombre de portes importantes, contraintes temporelles fortes…), il est alors nécessaire d’utiliser d’autres outils que ceux des fournisseurs de FPGA comme l’outil de synthèse de Mentor Leornardo Spectrum (ou plus récemment Precision RTL) ou bien encore Synplify Pro de Synplicity. Le placement – routage est naturellement exclusivement fait par les fabricants de FPGA qui sont amenés à connaître le plus précisément possible les caractéristiques physiques de leurs circuits.

Le tableau suivant permet de comparer les différents outils logiciels des fabricants de FPGA.

Editeur Actel Altera Lattice Xilinx Nom de l’outil Libero Quartus II IspLever ISE

Points marquants

Vue graphique de la conception au niveau logique et physique

Editeur de paramétrage des E/S

Outil de calcul de la consommation

Compilation incrémentale Conception et implantation

indépendantes des modulesOutil graphique de

connexion d’IP et de cœurs de processeurs

Simulateur disponible

Outil de gestion de projet Simulateur propre avec édition et visualisation des chronogrammes

Outil d’analyse et d’estimation de temps

critique sans recompilation

Préplacement de blocs intégrant des contraintes

de timing Assignation automatique des broches de FPGA

pour le circuit Outil de débogage temps réel avec déclenchement

croisé avec le logiciel Principaux outils

tiers utilisés dans le flot de

conception

Simulation ModelSim(Mentor)

Génération Test Bench Synthèse

Synplify FGPA (Synplicity)

Leonardo (Mentor) Synthèse physique

Palace (Magma)

Simulation ModelSim(Mentor) NC Sim(Cadence) Sirocco(Synopsis)

Synthèse Design Compiler(Synopsis)

Leonardo (Mentor) Analyse statistique de

délais Prime time (Synopsis)

Simulation ModelSim(Mentor)

Synthèse Synplify FGPA

(Synplicity)

Simulation ModelSim(Mentor) NC Sim(Cadence) Sirocco(Synopsis)

Synthèse Synplify FGPA

(Synplicity) Leonardo (Mentor)

Synthèse physique Palace (Magma)

Tableau IV. 1. Flots de conception des fabricants de FPGA [GAU04].

Pour des raisons de disponibilité de matériel au laboratoire, nous avons choisi de nous limiter aux produits d’ALTERA. Comme nous en avions fait état dans notre étude de marché (Chapitre 1 §III.2) le Stratix II est le plus performant de la famille ALTERA mais son coût est

Page 153: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-142-

prohibitif (≈ 2000€) et le rend impossible d’utilisation. Pour un moindre coût, le FPGA Cyclone II présente un bon compromis coût / performances. Possédant des performances inférieures au Stratix II, il semble nous satisfaire pour notre projet car il est capable d’utiliser 2 millions de portes, avec des fréquences d’horloge pouvant aller à 800 MHz. Cependant nous disposons au laboratoire d’un kit de développement ALTERA APEX 20KE200E. Les performances intrinsèques sont certes inférieures à celles présentées par les modèles précédents, mais elles pourront tout de même satisfaire un premier prototype.

IV.2.1 Description du FPGA Le FPGA ALTERA APEX 20KE200EFC484 se trouve sur la carte de développement

EXCALIBUR que nous pouvons voir sur la Figure IV. 1.

Figure IV. 1. Carte de développement NIOS EXCALIBUR.

La carte de développement Excalibur comprend :

1. Le composant FPGA Apex20K200EFC484. 2. Un port SERIE RS-232. 3. Une mémoire flash de 1Mbyte. 4. Une mémoire SRAM de 256Kbytes. 5. Un oscillateur d’une fréquence de 33.33MHz.

Il offre en autre la possibilité d’utiliser jusqu’à 80 entrées/sorties. Ses caractéristiques sont résumées dans le tableau suivant :

1 4 3

5

2

Page 154: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-143-

Nom du FGPA

Nombre de portes maximum du

système

Portes typiques

Nombre d’éléments logiques

Nombre de blocs système

incorporé

PLL

526 000 200 000 8320 52 2 Tension

d’alimentation Maximum

de bits RAM

Maximum µcellule

Maximum d’entrée/sortie

Différentes tensions d’alimentation

20K200E

1.8V 106496 832 376 1.8V,2.5V,3.3V,5.0VTableau IV. 2 Résumé des caractéristiques du FPGA utilisé (APEX).

Notons qu’en raison des performances présentées par notre FPGA, nous avons choisi de diviser par 4 nos fréquences d’horloge. Ainsi, la fréquence d’échantillonnage, initialement à 160MHz, évolue maintenant à une fréquence de 40 MHz et la fréquence rythmant le bit du code d’étalement devient une fréquence de 10 MHz.

IV.2.2 Le logiciel de commande Quartus II Nous avons mis en œuvre QUARTUS II version 5.0 disponible gratuitement via le site

internet d’ALTERA [ALTWW]. Son utilisation est indispensable pour configurer un FPGA, car il exécute le placement routage et génère les fichiers qui permettent de configurer le FPGA. QUARTUS permet aussi de concevoir des systèmes, faire les simulations prenant en compte le choix du FPGA cible, ce qui peut nous guider pour le choix de ce dernier. De plus, il calcule un certain nombre de paramètres tels que la fréquence maximale et la puissance consommée.

IV.2.3 Etapes d’implantation La Figure IV. 2 montre les différentes phases pour l’implantation de fichiers VHDL sur

un FPGA de la famille Altéra.

Figure IV. 2. Méthodologie pour un FPGA de la famille ALTERA

Etages Numériques VHDL Synthétisable

Configuration du FPGA APEX20KE

Synthèse Logique Placement routage

Fitter

Synthèse (Génération de Netlist) Analysis & Synthesis

Analyse Fréquentielle et temporelle

Fichiers VHDL Synthétisable Quartus II

Bibliothèques du constructeur

Choix de l’architecture

Environnement VHDL-AMS Quartus Environment

Cahier des charges

Etages Analogiques VHDL -AMS

Vérification Electrique et temporelle

Analyser & Timing Analyser

Page 155: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-144-

Nous trouvons 4 phases :

L’outil « Analysis & Synthesis » vérifie la syntaxe et la sémantique du code et réduit au minimum la logique de conception. Il génère ensuite une netlist qui détermine le nombre d’éléments logiques utiles à la réalisation du système et la connexion entre ces éléments logiques. Un élément logique est composé pour l’APEX20K200E d’un registre ou/et d’une LUT (Look Up Table). Le registre permet de faire toutes les affectations de signaux (par exemple détection sur front montant) alors que la LUT déclare dans une table la valeur des signaux (utiles par exemple pour la définition des paramètres).

La deuxième phase est le placement/routage qui est défini à partir de la netlist des éléments logiques. C’est la phase qui consomme le plus de temps car c’est lors de cette étape que le logiciel choisit les positions physiques des cellules et les chemins des signaux pour une utilisation optimale et réduite.

La phase suivante correspond à la vérification des choix faits lors de la phase précédente et la génération des fichiers vers le FPGA. Elle permet d’analyser les différents chemins et les délais de propagation. Après cette étape, nous pourrons connaître le délai pour le chemin le plus critique. Les résultats de cette phase sont établis sous forme de rapport et déterminent les performances du composant (occupation du FPGA, Puissance, température de fonctionnement, schémas des connexions …).

La dernière phase implante le circuit conçu par programmation et configure les interrupteurs en fonction des résultas du placement/routage.

IV.3 Les modules périphériques spécifiques développés

Le synoptique du système est illustré par la Figure IV. 3.

Figure IV. 3. Synoptique du système de tests du FPGA.

Il se compose d’un module de bruit analogique, du kit de développement pour le FPGA APEX 20K200E, d’une interface en Visual Basic spécifiquement développée et d’un analyseur logique 16 voies.

Page 156: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-145-

IV.3.1 Paramétrage du canal

IV.3.1.1 Le retard dans le canal Lors de nos tests, le canal paramétrable permet de choisir différents instants, entre autre,

un délai correspondant à un retard de propagation ou à une réflexion. Quatres valeurs de délais ont été privilégiées, correspondant à des points clés de la fonction d’autocorrélation (pic de corrélation (Cas 11), entre le pic de corrélation et le temps chip (Cas 00)), entre les 2 pics de corrélation (Cas 01), et sur le deuxième pic de corrélation (Cas 10).

Figure IV. 4 : Représentation des différents délais commandés dans le canal.

Tableau IV. 3. Valeur des points intéressants de la courbe d'auto corrélation.

La solution retenue pour la génération des retards est un registre à décalage de la bibliothèque de Altera. La cascade de plusieurs de ces registres forme le composant « altshift ». Le nombre de registres associés, huit pour notre exemple, fixe le retard de propagation (Tableau IV. 3).

Valeurs théoriques (N=15, Tc=25ns) Formules Signal selPente de corrélation (Cas 00)

12,5 ns ½ Tc 00

Pas de corrélation (Cas 01)

200 ns 8Tc 01

Pic de corrélation (Cas 10)

375 ns 15Tc 10

Aucun retard (Cas 11)

0 ns 0 11

Page 157: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-146-

Figure IV. 5 : Schéma du bloc retard_canal

Le paramètre générique « width » fixe la taille du bus d’entrée-sortie et le paramètre « depth » le nombre de bascules. Le port de sortie est constitué des signaux retardés en fonction du nombre de bascules déterminé par le paramètre « depth ». Le code et un exemple de cet organe sont illustrés sur la figure ci-dessous :

component altshift is generic ( WIDTH : INTEGER := 0; -- largeur de l'entrée et de la sortie DEPTH : INTEGER := 8 -- profondeur ); port ( data : IN STD_LOGIC_VECTOR (WIDTH-1 DOWNTO 0); --entrée du registre clock : IN STD_LOGIC := '0'; --horloge à front montant aclr : IN STD_LOGIC := '0'; clken : IN STD_LOGIC := '1'; result : OUT STD_LOGIC_VECTOR (WIDTH-1 DOWNTO 0) -- sortie du registre ); end component;

Figure IV. 6: Description du composant altshift (a) et circuit associé(b) (Depth =8,with=0)

Le signal « sel » du Tableau IV. 3 est un mot de 2 bits fixé par l’utilisation, et fixant la sélection du retard dans le canal au moyen d’un multiplieur.

Le module retard canal doit être comme tous les autres modules, utilisable pour n’importe quelle longueur de code (de N=7 à N=2047). Nous avons donc développé une « matrice » de fonctions retard_canal, dont chacune comporte des modules adaptés en nombre de registres suivants la valeur du temps symbole. Les chronogrammes après synthèse sous QUARTUS sont présentés sur la Figure IV. 7. Lorsque le mot « sel » vaut ‘00’ (Pente de corrélation) la sortie (sortie_clk160nco ) est équivalente à l’entrée des données, tandis que dans le cas ‘01’ la sortie est active à 1.

(a)

(b)

altshift

altshift

altshift

Page 158: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-147-

Figure IV. 7 : Chronogramme des signaux émetteur/récepteur avec retard programmable

IV.3.1.2 Génération du bruit dans le canal Dans tout système de communication, il est nécessaire d’évaluer ses performances en

milieu bruité. Ce bruit doit avoir un contrôle de niveau afin de calculer le rapport signal/bruit. Pour injecter un bruit blanc gaussien dans le canal, la solution suivante a été envisagée :

Les constructeurs de FPGA mettent à disposition des modules VHDL réalisant des fonctions pré-établies (IP ou Intellectual Property). Le module « AWGN » permet de bruiter le signal directement sur le FGPA, sans avoir à importer du matériel externe. Sachant que les FPGA servent essentiellement de nos jours à mettre au point des systèmes et que le bruit et un point très important dans une conception, XILINX a créé ce module pour faciliter le travail des ingénieurs. Dans ce module, nous entrons le niveau du signal sur le bruit souhaité. L’utilisation de ce module pour un FPGA Altera entraînerait un temps de conception prohibitif dû au portage de cette IP Xilinx sur un FPGA de la famille ALTERA. Cette solution a donc été écartée pour cause de complexité de portage.

La solution retenue est basée sur un circuit analogique externe dont la source de bruit est générée par un générateur incluant cette fonction. Le générateur HEWLETT PACKARD 33120A possède une fonction bruit (noise) qui génère un bruit dont nous pouvons faire varier l’amplitude entre 0.5 mV et 10V.

Le circuit externe se compose du générateur de bruit (GBF) à l’entrée d’un sommateur avec le signal en sortie de l’émetteur (Figure IV. 8).

.

Cas ‘00’ Cas ‘01’Corrélation décorrélation

Page 159: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-148-

R

R

R

R

FPGA

Générateur de bruit

Signal étalée

Signal étalé bruité

+

-

Figure IV. 8. Circuit analogique réalisant la fonction bruit.

IV.3.2 Paramétrage du débit Le cahier des charges nous oblige à paramétrer le débit de notre émetteur entre 4 kps et

1,5 Mbps. Pour cela, nous fixons dans une bibliothèque dénommée parameter les valeurs du coefficient c(n) permettant de fixer la longueur du PN-Code. Comme nous l’avons vu dans le (Chapitre 2 §V.2.1) ce coefficient c(n) permet le choix de neuf débits différents de 4,75Kbps à 1,43Mbps. Pour choisir ce coefficient et par mesure d’économie de bit, nous l’avons codé sur un mot de 4 bits, accédant aux neufs possibilités. Chacune des valeurs renvoie un coefficient c(n) qui sert pour le calcul du PN-Code. La fréquence du chip est fixée à 10 MHz, soit un temps chip de 100ns. La longueur de code est donc égale à N.Tc .

Les liens entre la longueur du code d’étalement, le coefficient c(n) et les paramètres associés sont résumés dans le tableau suivant :

N COEFFICIENT C(N)

VALEUR DU PN-CODE DEBIT EN

(KBPS)

CODE 4 BITS

TEMPS SYMBOLE

(µS) 7 000000000101 1110100 1428 0000 0,70 15 000000001001 111101011001000 667,5 0001 1,5 31 000000010010 101011101100011111001101001… 322,5 0010 3,1 63 000000100001 111111010101100110110100100… 158,75 0011 6,3 127 000001000100 100100110100111101110000111… 78,75 0100 12,7 255 000010001110 101100011110100001111111100… 39,25 0101 25,5 511 000100001000 100010001100100011101010110… 19,5 0110 51,1 1023 001100001001 111101011110110010011111110.. 9,75 0111 102,3 2047 010000000010 101010101011101110111001001… 4,75 1000 204,7

Tableau IV. 4. Correspondance entre N, le débit et le mot de programmation sur 4 bits.

IV.3.3 Module de calcul de TEB Le bruit étant créé, nous allons quantifier son influence à l’aide d’un module de taux

d’erreurs sur le bit (TEB). Pour cela, nous devons comparer la trame qui est envoyée à la trame que nous obtenons en réception et compter le nombre d’erreurs que nous avons obtenu. La solution d’implanter deux récepteurs de même nature, l’un pour un trame d’entrée bruitée, l’autre une trame d’entrée non bruitée a été mis en œuvre. D’après l’équation (Eq.II.2) du

Page 160: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-149-

chapitre II, le calcul du TEB se fait par la division du nombre d’erreurs obtenues par le nombre de bits envoyés.

IV.3.4 Interface logicielle Cette interface permet à l’utilisation de contrôler :

la séquence de la trame d’entrée (8 bits), répétée jusqu’à la fin de l’émission,

la longueur du code d’étalement sur 4 bits (de N=7 à N=2047),

la valeur du retard dans le canal (corrélation, non corrélation, demi-corrélation et pic de corrélation),

le nombre d’échantillons,

un gestionnaire d’erreur permettant à la fin de l’émission le calcul du TEB.

Figure IV. 9. Capture d’écran de l’interface graphique de commande FPGA.

En aucun cas nous ne pouvons envoyer une configuration qui n’a pas été définie au préalable auprès du FPGA. Cette interface communique avec le FPGA sur le port parallèle et fonctionne selon les 4 modes suivant :

1) Etat non actif (Reset =1) : rien ne se passe 2) Etat de « configuration » : Les valeurs issues de l’interface sont chargées dans

le FPGA. 3) Etat de « Marche » : Le système Emetteur-Récepteur fonctionne et le calcul du

TEB est actif. 4) Etat de « Rapport » : L’interface reçoit la valeur du TEB.

Lorsque l’envoi des trames est terminé, selon le nombre d’échantillons choisi, un signal de fin de fonctionnement « end_transmit » passe à l’état « 1 » et ce dernier commande le

Page 161: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-150-

passage à l’état « envoie_du_teb », ainsi nous envoyons le nombre d’erreurs à l’interface toujours sur les fronts de l’horloge du PC.

IV.4 Résultats de synthèse Le nombre de branches de l’organe de synchronisation, ainsi que le nombre de registres

(fonctions de la longueur du code) à utiliser pour paramétrer les retards voulus dans le canal sont extrêmement consommateurs de place dans le FPGA. Quatre exemples de synthèse ont été effectués (Tableau IV. 5), pour des valeurs extrêmes et moyennes du nombre de branches B de l’organe de synchronisation et de la longueur N du code d’étalement. La synthèse N°2, utilisant un nombre égal (N=B=255) relativement élevé est irréalisable à partir de notre matériel (taux d’occupation 332%). Nous avons retenu un compromis de configuration (N=B=63), permettant d’utiliser un code de longueur N=63 et son nombre de branches de synchronisation équivalent. A partir de cette configuration d’implantation, les résultats de synthèse, en terme d’occupation de nombre de cellules, font état d’une répartition par fonction détaillée sur la Figure IV. 10.

Tableau IV. 5: Résumé des différentes synthèses effectuées.

Synthèse N°1 Synthèse N°2 Synthèse N°3 Synthèse N°4 Occupation du FPGA 20% 332% 5% 76%

Canal Test N=2047 N=255 N=63 N=63 Synchronisation

(B=nombres de branches de synchronisation)

B=1 B=255 B=1 B=63

Longueur de code maximum

N=2047 N=255 N=63 N=63

Page 162: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-151-

0

1000

2000

3000

4000

5000

6000

7000

Nom

bre

de c

ellu

les

utili

sées

Canal emission parametre Recepteur

RegistresLUT

Figure IV. 10. Occupation en nombres de cellulles des principales fonctions de l’émetteur (a) et du

récepteur (b).

IV.5 Evaluation des performances mesurées Cette dernière partie a pour objectif d’évaluer et mesurer les performances de notre

prototype complet incluant la totalité des fonctions développées tout au long de ce mémoire : émetteur complet en bande de base, canal bruité, retard paramétrable, récepteur avec synchronisation série à N branches et boucle à verrouillage de délai. Enfin, nous mesurons l’évolution du taux d’erreur sur le bit, en fonction du rapport signal sur bruit dans le canal et le comparerons à des résultats de mesures effectuées en environnement réel.

0

1000

2000

3000

4000

5000

6000

Nom

bres

de

cellu

les

utili

sées

Poursuite Reception_ss_synchro Synchronisation_globale

RegistresLUT

0

20

40

60

80

100

120

140

Nom

bres

de

cellu

les

utili

sées

encodeur Generateur trames Gene_code_emission multi_emission

RegistresLUT

EmissionRécepteur

Page 163: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-152-

IV.5.1 Test en milieu non bruité

IV.5.1.1 Emetteur-récepteur Simple Branche

IV.5.1.1.1 Mesures pour différents longueurs de codes Pour trois longueurs de code différentes, nous relevons et comparerons les données

d’entrées avec les données en sortie du récepteur.

Figure IV. 11. Chronogrammes mesurés pour différentes longueurs de code N=7,N=15 et N= 31.

Ces trames sont identiques permettant d’affirmer que les fonctions propres à l’étalement de spectre sont correctes. Le temps symbole est ici fixé à Tc=100ns, ce qui implique un temps symbole égal à (700, 1500 et 3100ns respectivement pour N=7, 15 et 31). Notons une latence globale, égale à 1,43µs.

IV.5.1.1.2 Mesures pour différents délais Nous n’appliquons pas de retard en plus de celui induit par la propagation des signaux,

nous sommes dans le cas où sel « 11 » du module de bruit (Chapitre 4 § IV.3.1.1). Le signal étalé data_étalée est directement lié à data_étalée_retardée qui est le signal d’entrée du récepteur. Le chronogramme suivant a été obtenu pour une longueur de PN-Code N=7.

Figure IV. 12. Chronogramme système corrélé dans le cas sel =11.

La propagation du signal data_étalé provoque un décalage de 4ns en sortie du canal data_étalée_retardée , une valeur négligeable car nous sommes sur le premier pic d’autocorrélation (Cas 11 du module de retard), donc le système est parfaitement corrélé. Le signal de sortie du récepteur « sortie » est décalé par rapport au signal de l’émetteur de 1,43 µs. Cette valeur est dûe à la propagation à l’intérieur du composant dans le cas N=7.

Pour ce test, nous nous plaçons dans le cas où sel (10) du module de retard. Le retard utilisé est alors égal à 8 Tc (Temps Chip) pour des longueurs de PN-Code valant

N=7 Ts7=700ns

N=15 Ts15=1500ns

N=31 Ts31=3100ns

Ts31

Ts15 Ts7

Page 164: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-153-

respectivement 15,31,63 et de 4 Tc pour N=7. Ce dernier cas est le cas que nous allons présenter sur le chronogramme suivant :

Figure IV. 13. Chronogramme système non corrélé.

Nous constatons que le retard introduit entre le signal « data_etalée » et le signal « data_etalée_retardée » est de 400ns ce qui nous positionne entre le deux pics de corrélation. Nous constatons que le signal « sortie » est toujours égal à « 1 ». Le système est donc incapable de décorréler le signal, conformément à nos attentes.

Nous avons par la suite focalisé nos mesures sur deux paramètres que sont le temps d’accrochage (TA) correspondant au temps de synchronisation et la latence totale, écart entre le signal d’entrée et la sortie (TL). Ces deux paramètres sont présentés sur la figure suivante :

Figure IV. 14. Représentation du temps d’accrochage(TA) et de la latence (TL).

Le tableau suivant résume les différentes mesures effectuées pour des longueurs de code variables.

Tableau IV. 6. Résumé des différentes mesures pour des longueurs de PN-Code différents.

Les différentes mesures renseignées dans le Tableau IV. 6 montrent que pour un même retard le temps d’accrochage augmente en fonction de la longueur du PN-Code.

IV.5.1.2 Emetteur-récepteur avec synchronisation N branches La synchronisation série, développée dans le chapitre III (§III.3.1.1.4), est synthétisée et

implantée dans le FPGA associée à la boucle à verrouillage de délai. Le test comprend à présent les fonctionnalités suivantes :

- Emission d’une trame pour des longueurs de code N=7 à N=63. - Récepteur qui permet de décoder les codes d’étalement précédemment cités pour

l’émission. - Synchronisation qui détecte lorsque la corrélation est existante sur une des 63

branches de l’organe. - Recherche de la branche corrélée.

Longueur du PN-Code N=7 N=15 N=31 TA(temps d’accrochage de la synchronisation)

1µs 1,8µs 8µs aucun retard (Cas 11)

TL(latence globale) 1,34µs 2,5µs 6,04µs décorrélé (Cas 01)

TA Pas d’accrochage

Pas d’accrochage

Pas d’accrochage

TA 1,2µs 2µs 8,25µs Demi-corrélation (Cas 00)

TL 1,5µs 5,5µs 6,5µs

Ecart TLEcart TA

Page 165: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-154-

- Poursuite qui permet de maintenir la corrélation.

Le test présenté sur la Figure IV. 15 est effectué avec un retard nul dans le canal (Cas où sel = 11). Nous avons visualisé les différents signaux évaluant la synchronisation en sortie des différentes branches. Notre analyseur logique ne comprenant que 16 voies, nous avons sélectionné les branches les plus susceptibles d’être validées en fonction des différents retards.

Figure IV. 15. Chronogramme des signaux de synchronisation (retard canal seul).

Le test a été effectué pour une longueur de PN-Code de N=15. Les signaux synchro(n) représentent l’état de la corrélation relative à la branche n. Ainsi, lorsque la 31ième branche est corrélée, le signal synchro(31) passe à l’état 1. Le signal synchro quant à lui est à l’état haut lorsqu’une synchronisation est détectée. Le chronogramme montre la corrélation effective sur les branches 0 et 31. Ceci correspond aux résultats escomptés, puisque pour tous les temps symboles la corrélation est détectée. Notons que la sortie est correcte et comporte un écart TL avec l’entrée data_source.

Nous allons maintenant observer le mot k dont la valeur désigne la branche corrélée. Le prochain chronogramme a été effectué pour un retard de 8Tc dans le canal et une longueur de PN-Code N=15.

Figure IV. 16. Chronogramme du mot k_out pour un canal retardé de 8Tc.

Comme escompté dans le mode décorrélé du canal (cas 01), le signal de sortie vaut 1. Le mot k_out [0 :6] devrait quant à lui détecter la 8ème branche. Ce n’est ici pas le cas puisque la valeur du mot k_out [0 :6] oscille entre les valeurs 9 (0001001b) ou 10 (0001010b). Cette erreur est dû au fait que nous ne connaissons pas exactement la valeur du retard dans le canal qui évolue en fonction du temps de propagation des portes.

Le Tableau IV. 7 fait état des mesures du temps d’accrochage et de la latence globale (TA et TL) d’une synchronisation comportant N branches.

TA

TL

Temps

Mot k_out {

Page 166: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-155-

Tableau IV. 7. Mesures associées à une synchronisation comportant N branches.

Nous pouvons remarquer que le temps TL est doublé (dans le cas N=15) par rapport au temps TL de l’implémentation d’une synchronisation simple branche. Comme nous l’avions prévu, nous retrouvons un temps d’accrochage plus faible. En effet nous avons divisé d’un facteur et temps d’accrochage 2,5 TA par rapport à une synchronisation simple branche.

IV.5.2 Mesures en milieu bruité Nous testons maintenant notre système émetteur-récepteur en milieu bruité. Pour cela,

nous utilisons les modules de génération de bruit à partir de la carte analogique et le module de calcul de taux d’erreur par bit.

Un niveau de bruit est appliqué sur notre signal en sortie de l’émetteur dont nous pouvons visualiser les effets sur la figure suivante dans le cas d’un niveau égal à 50mV.

Figure IV. 17. Visualisation des effets d’un niveau de bruit de 50mV en sortie du canal.

En appliquant un niveau de bruit (1V), nous remarquons (Figure IV. 18) l’apparition de bits erronés.

Nombres de branches (équivalent à lalongueur du PN-Code)

N=7 N=15 N=31

TA(temps d’accrochage de la synchronisation)

1,04µs 1,84µs 3µs

TL(Latence totale) 2,88µs 5,28µs 11,68µs

aucun retard ( Cas 11)

Branches détectées N° :0,8,15 N° : 0,16,31 N° :0,31 décorrélé (Cas 01)

TA Pas d’accrochage

Pas d’accrochage

Pas d’accrochage

Branches détectées N° :7,14 Oscillation entre N°9 et N°10.

N° :9

TA 1,36µs 2,48µs 3,5µs TL 3,04µs 6,88µs 12,72µs

Pic de corrélation (Cas 10) Branches détectées N° :0,8,15 N° : 0, 16, 31 N° : 0, 31

Signal non bruité

Signal bruité

Page 167: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-156-

Figure IV. 18. Chronogramme du système avec une tension de bruit de 1V.

Le taux d’erreur sur le bit correspondant, fourni par le module interface est de 2.10-1. Le rapport signal sur bruit associé s’écrit :

dBVbruitVsignalSNR 7

15log10log10 =⎟⎠⎞

⎜⎝⎛×=⎟

⎠⎞

⎜⎝⎛×=

Les mesures pour différentes tensions de bruit permettant de reproduire l’évolution du taux d’erreur sur le bit, sont présentées sur la Figure IV. 19.

1,00E-05

1,00E-04

1,00E-03

1,00E-02

1,00E-01

1,00E+000 2 4 6 8 10 12 14 16 18 20 22

Rapport Signal sur bruit (dB)

Taux

d'e

rreu

r sur

le b

it

Figure IV. 19. Mesure de TEB du récepteur simple implanté sur le FPGA.

IV.6 Bilan

Au cours de ce chapitre nous avons intégré dans un circuit programmable le prototype complet présenté dans le chapitre III. Pour cela une première étude sur les outils existants a été menée. Le composant choisi est un FPGA « APEX20KE » d’ALTERA pour des raisons de disponibilité et de flexibilité. A l’aide du logiciel QUARTUS II fourni par le constructeur, nous avons implanté les fichiers synthétisables du modèle VHDL-AMS.

Bits erronés

Page 168: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-157-

Pour la procédure de test, nous avons développé deux organes supplémentaires. Le premier (canal paramétrable) nous a permis de tester les différents états du système, et le second (module de calcul d’un taux d’erreur sur le bit) de caractériser notre système en milieu bruité. Pour pouvoir communiquer avec le composant programmable nous avons enfin développé une interface en Visual Basic.

L’étape de synthèse nous a montré rapidement que la capacité d’intégration du composant était insuffisante pour traiter toutes les branches de notre modèle complet (synchronisation avec 2047 branches maximum) et les modules complémentaires. Ces résultats nous ont conduit à limiter les longueurs de PN-Codes à N = 63 et de supprimer le récepteur qui servait de comparateur dans le module de calcul du taux d’erreur de bit. Avec ces limitations, nous utilisons 75% de la capacité d’intégration du FPGA. C’est pourquoi les horloges pour l’étude de notre modèle ont été divisées par quatre. Ainsi, le temps chip (TC) est désormais fixé à 100ns.

Malgré ces limitations nous avons pu expérimenter les fonctions principales de notre système. Nous avons axé nos tests sur la généricité du système implanté (tests pour différentes longueurs de PN-Code) et sur l’organe de ,bre de branches augmentait la latence globale entre l’entrée et la sortie mais en contre partie la détection de la synchronisation est plus rapide.

Page 169: 83240798 These Celine

CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur

-158-

Page 170: 83240798 These Celine

CONCLUSION ET PERSPECTIVES

-159-

CONCLUSION ET PERSPECTIVES

Page 171: 83240798 These Celine

CONCLUSION ET PERSPECTIVES

-160-

Page 172: 83240798 These Celine

CONCLUSION ET PERSPECTIVES

-161-

Le travail présenté dans ce mémoire constitue une contribution au prototypage virtuel basé sur la norme VHDL-AMS. Le travail développé nous permet de disposer d’un prototype virtuel mixte complet décrit dans un langage de haut niveau pour un émetteur/récepteur à étalement de spectre. Afin d’être en adéquation avec les nouvelles méthodologies de conception, ce prototype se positionne sur une approche de réutilisation de blocs matériels dans une application de télécommunication sans fil.

Un état de l’art sur la conception système, présenté dans le premier chapitre, nous a permis de constater la complexification et la miniaturisation des composants électroniques. Nous avons mis en avant les méthodologies de conception actuelles permettant de réduire les cycles de conception et les coûts de développement en insistant tout particulièrement sur le prototypage virtuel. Différentes cibles de conception ont alors été présentées et comparées. Les outils de conception étant devenus une nécessité dans ce type de développement, nous avons conclu ce chapitre par le choix du langage multidisciplinaire VHDL-AMS.

Dans le deuxième chapitre, nous avons présenté le système de communication hertzien émetteur/récepteur dans la bande libre ISM. Le système doit être multi-capteurs et multi-utilisateurs en milieu bruité pour un environnement clos. Il nécessite de plus un haut niveau de sécurité de transmission. A partir de ce cahier des charges, nous avons exposé les éléments de base d’une chaîne de communication numérique et avons proposé un schéma fonctionnel du modèle émetteur/récepteur. Nous avons comparé ensuite différentes architectures de synchronisation et de poursuite pour établir au terme de ce chapitre les différents organes de notre système communicant.

Après avoir défini le langage VHDL-AMS, nous avons traité dans la troisième partie, la description des étages numériques et analogiques du système. Nous avons étudié et simulé différentes topologies d’architectures. Nous avons opté pour une synchronisation de type SERIE avec une boucle à verrouillage de délai cohérente dans laquelle nous avons inclus la possibilité pour l’utilisateur de choisir la longueur de la séquence pseudo-aléatoire, le temps de propagation dans le canal et le rapport signal sur bruit. Notons que ce rapport signal sur bruit est défini directement par l’utilisateur, le niveau de bruit étant calculé de manière implicite par le langage VHDL-AMS. En vue d’améliorer les performances du récepteur à étalement de spectre, nous avons développé une synchronisation N branches et un organe de sélection. Les résultats de simulations semblent en parfait accord avec les résultats théoriques attendus. Au terme de ce chapitre, nous avons établi les fonctions numériques devant être implantées dans un FPGA.

La dernière partie développe donc la réalisation d’un prototype matériel de l’émetteur/récepteur en bande de base. Nous présentons tout d’abord notre platine de test et les modules spécifiques associés pour mener à bien nos mesures. Les performances du circuit en terme de capacité d’intégration sont évaluées. Nous avons montré que la fonction synchronisation SERIE, retenue au second chapitre, occupe à elle seule la majorité du circuit programmable, soit environ 5500 cellules élémentaires. La capacité relativement réduite de notre FPGA (8000 cellules) limite le nombre de branches de cette synchronisation à 63. Les tests effectués, valident les fonctions de notre prototype de communication, en milieu idéal et bruité. Ce prototype nous a permis de tester différentes fonctionnalités du système dans un environnement bruité : fonction d’autocorrélation, temps d’accrochage, latence et rapport signal sur bruit. En milieu faiblement bruité, nous avons pu mesuré un taux d’erreur sur le bit de l’ordre de 10-5, valeur qui évolue défavorablement lorsque le bruit augmente.

Page 173: 83240798 These Celine

CONCLUSION ET PERSPECTIVES

-162-

L’étude en bande de base du prototype matériel, a permis de valider la globalité des organes numériques de notre émetteur/récepteur. Les organes doivent à présent être couplés aux étages radiofréquences. Le système complet pourra alors être configuré avec plusieurs émetteurs, afin d’expérimenter le comportement de la communication multi-capteurs. Nous porterons un intérêt particulier à la mesure de débit pour les fréquences d’horloges élevées et à la stabilité de la boucle à verrouillage de délai en fonction du délai dans le canal.

Les marchés et les technologies sont toujours appelés à évoluer. C’est pourquoi à terme nous prévoyons d’intégrer les étages radiofréquences et la partie traitement du signal en bande de base sur une seule puce (System On Chip : SoC). Par ailleurs, l’essor et l’évolution actuels des circuits FPGA pourront aussi donner lieu à une étude plus fine de notre système émetteur/récepteur avec l’utilisation de composants présentant une capacité d’intégration bien supérieure (par exemple « STRATIX II », « VIRTEX IV »). Ces derniers composants semblent d’autant plus intéressants qu’ils intégrent une propriété intellectuelle (IP) permettant de générer un bruit blanc additif gaussien (AWGN) [XILI02]. Ce fichier pourrait être en particulier utilisé pour mesurer les performances du taux d’erreur par bit de notre système de communication.

Enfin, les langages associés au VHDL-AMS, tels que le C/C++, permettront à notre prototype virtuel d’inclure un protocole de communication. Pour cela, le système devra être couplé à des simulateurs réseaux, tels que les logiciels Network Simulator, Opnet, Qualnet, permettant ainsi de pouvoir simuler la globalité des trois couches basses du modèle OSI d’un système communicant (Figure 0.2).

Figure 0. 2 .Architecture en couches du modèle OSI.

PhysiqueLiaison de données

Réseau

Page 174: 83240798 These Celine

REFERENCES

-163-

REFERENCES

Page 175: 83240798 These Celine

REFERENCES

-164-

[802.11] IEEE Computer Society «IEEE 802.11 standard Wireless ». 1996. [802.15.1] IEEE Computer Society «IEEE 802.15.1 standard Wireless ». 2002 [802.15.3] IEEE Computer Society «IEEE 802.15.3 standard Wireless ». 2003 [802.15.4] IEEE Computer Society «IEEE 802.15.4 standard Wireless ». 2003. [802.16] IEEE Computer Society «IEEE 802.16 standard Wireless ».2004. [802.20] IEEE Computer Society «IEEE 802.20 standard Wireless ». 2002 [ACTEWW] ACTEL, http://www.actel.com [ALTEWW] ALTERA , http://www.altera.com [ANOLWW]Analog Device, http://www.analog.com [ANSO03] ANSOFT Corporation, http://www.ansoft.com/products/em/simplorer « System modeling ». ANSOFT Corporation. Etats unis d’amérique 2003. [BAGH02] A.BAGHADADI « Exploration et conception systèmatique d’architectures multiprocesseurs monopuces dédiées à des applications spécifiques » Thèse de doctorat, Institut national polytechnique de Grenoble, Mai 2002. [BAUD02] G.BAUDOIN (Collectif d’auteurs) « Radiocommunications numériques /1. Principes et modélisation et simulation » Collection DUNOD 2002. ISBN : 2100055801 [BELL02] M. BELLANGER « Traitement numérique du signal Théorie et pratique » DUNOD 2002. ISBN :2 10 0063111. [BLIN04] J.BLIN « UWB se veut-il le futur de tous les sans-fils ?»http://www.01net.com/outils/article=231215. 02/2004 [BORE99] J.Borel « Design Automation in MEDEA :Present and Future »IEEE Micro, Vol. 19, N°5,pp71-79, Sep. 1999. [BOUR00] S.Bourdel « Modélisation et Simulations fonctionnelles d’un émetteur et d’un récepteur radiofréquence à étalement de spectre pour une application domotique » , INSA , Toulouse. Oct. 2000. [BOXM58] G.E.P BOX and M.E MULLER « A note on the generation of random normal deviates » Ann. Math. Stat , pp 610-611, 1958. [BRAC05] B.Brackenridge « Bluetooth et UWB nous vivons une époque intéressante » http:/ /www.eetimes.fr. 9 Août 2005. [BROW96] S.Brown and J.Pose FPGA and CPLD Architectures. A tutorial IEEE Design&Test of computers Summer 1996. [CAFF00] J. Caffery, G.L. Stüber, « Effects of multiple-access interference on the noncoherent delay lock loop. », IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 48, N°12, Dec. 2000. [CHAN00] H.S. Chang, Y.W. Park, Y.H. Lee, « DS-SS code acquisition based on simultaneous search and verification. », Dept. of electrical engineering, KAIST, 0090-6778/00/99, 2000 IEEE. [CHAN99] Chang H., Cooke L., Hunt M., Martin G., McNelly A., Todd L., « SURVIVING the SOC Revolution- A Guide to Plateforme-Based Design », Kluwer Academic Publisher , 1999.

Page 176: 83240798 These Celine

REFERENCES

-165-

[CHIE94] C. Chien, R. Jain, E.G. Cohen, H. Samueli, « A single-chip 12.7MChips/s digital IF BPSK Direct Sequence Spread-Spectrum Tansceiver in 1.2µm CMOS. », IEEE JOURNAL OF SOLID-STATE CIRCUIT, VOL. 29, N° 12, Dec. 1994. [CHRIWW] « Qu’est-ce qu’un réseau sans fil » http://www.chirido.com/wifi_networks.cfm [CHUN93] B.Y. Chung, C. Chien, H. Samueli, R. Jain, « Performance analysis of an All-digital BPSK direct sequence spread-spectrum IF receiver architecture. », IEEE JOURNAL ON SELECTED AREAS COMMUNICATIONS, VOL. 11, N°7, 0733-8716/93, Sept. 1993. [CLOU01] CLOUTE.F« Etude de la conception des systèmes embarqués sur silicium : une approche de codesign matériel/logiciel », Thèse de doctorat, Institut National Polytechnique de Toulouse, 2001. [CLOU02] A.CLOUARD, G.MASTROCO, F.CARBOGNANI, A.PERRIN, F.GHENASSIA « Toward Bridging the Precision Gap between SoC Transactional and Cycle-Accurate Levels » DATE, PARIS 2002. [DUTE02] J-M DUTERTRE « Circuits Reconfigurables Robustes »Thèse de doctorat, Université de Montpellier II, Oct. 2002. [ELHO05] S.ELHOMSI : « Etude et proposition des méthodes et d’outils pour un système de communication de capteurs/actionneurs sans fil repartis basé sur la technologie Bluetooth ».Thèse de doctorat. Université Toulouse II Le Mirail, Toulouse. Sept. 2005. [EVAN03] Evans Data Corporation, « Embedded Systems Developement Survey, Volume 1, 2003 », http://www.evansdata.com/n2c/surveys/embedded_toc_03_2.shtml,2003. [FOUR05] N. FOURTY, T.VAL, P.FRAISSE, J.J MERCIER « Comparative analysis of a new high data rate wireless communication technologies-From WiFi to WiMAX » IEEE ICNS’05, Papeete, Tahiti, French Polynesia. Oct. 2005. [FREE05] Freescale Semiconductor, MC 13192 2,4GHz Low Power Transceiver for the IEEE 802.15.4 Standard : Reference Manual. Document # MC13192RM Rev.1.3, Apr. 2005. [GARTWW] GARTNER DATAQUEST, http://www.gartner.com/ dataquest_overview.html [GAUT04] F.GAUTHIER « Les flots de FPGA complexes se structurent »Electronique Le mensuel de conception des ingénieurs, N°143, pp 38-40, Jan. 2004. [GAUD91] R.D. Gaudenzi, M. Luise, « Decision-Directed coherent delay-lock tracking loop for DS-Spread-Spectrum signals. », IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 39, N°5, 0090-6778/91/0500-0758, May 1991. [GAUD93] R.D. Gaudenzi, M. Luise, R. Viola, « A digital chip timing recovery loop for band-limited direct-sequence spread-spectrum signal. », IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 41, N°11, 0090-6778/93, Nov. 93. [GUIL03] C.GUILLEMINOT, L.ANDRIEUX « COMMUNICATIONS NUMERIQUES CDMA : Simulation d’une boucle à verrouillage numérique » CNRIUT’03, Colloque National de recherche IUT 2003, Tarbes, France, Mai 2003. [GUIL04E] C.GUILLEMINOT, L.ANDRIEUX « Design methodolgies in electronics : application to a W-CDMA multirate transceiver for noisy environment » Eurosim’04, Marne la Vallée, France, Sept. 2004.

Page 177: 83240798 These Celine

REFERENCES

-166-

[GUIL04J] C.GUILLEMINOT, L.ANDRIEUX « Simulation de systèmes de synchronisation/poursuite pour les télécommunications en étalement de spectre » JNRDM’04, Journées Nationales du Réseau Doctoral de Microélectronique, Marseille, France, Mai 2004. [GUIL05B] C.GUILLEMINOT, L.ANDRIEUX, JJ.MERCIER « A contribution to a virtual prototyping for a spread spectrum telecommunication system using VHDL-AMS » IEEE BMAS’05, SanJose,Californie,USA, 22-23 Sept. 2005. [GUIL05E] C.GUILLEMINOT, L.ANDRIEUX, JJ.MERCIER « Virtual Prototype design using VHDL-AMS for transceiver model » IEEE EUROCON’05, BELGRADE, Serbie&Montenegro, 21-24 Nov. 2005. [GUIL05G] C.GUILLEMINOT « Contribution au prototypage virtuel d’un système de télécommunication à étalement de spectre en VHDL-AMS » GEET ’05, Journées de l’école doctorale Génie Electrique, Electronique, Télécommunications, Toulouse, France, Mai 2005. [HAMO05] HAMON Juan-Carlos « Méthodes et outils de la conception amont pour les systèmes et les microsystèmes » Thèse de doctorat de l’institut National Polytechnique de Toulouse , Fév. 2005. [HASH93] H.Hashemi « The Indoor Radio propagation Channel », Proceedings of IEEE, pp 943-968, Vol.81, N°7, Juil.1993. [HERV02]Y.HERVE « VHDL-AMS Applications et enjeux industriels », DUNOD ISBN 2100058886 [HIND93] J.K. Hinderling, T. Rueth, K. Easton, D. Eagleson, D. Kindred, R. Kerr, J. Levin, « CDMA Mobile Station Model ASIC. », IEE JOURNAL OF SOLID-STATE CIRCUIT, VOL. 28, N° 3, Mar. 1993. [HUAN98] W. Huang, I. Andonovic, M. Nakagawa, « PLL performance of DS-CDMA Systems in the presence of phase noise, multiuser interference, and additive Gaussian Noise. », IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 46, N° 11, Nov. 1998. [HUAN98b] W. Huang, I. Andonovic, « Code Tracking of DS-CDMA Systems in the Presence of Multiuser interface and Additive Noise. », University of Strathclyde, Dept. of EEE, 1998. [IEEE1] « IEEE standard VHDL Analog and Mixed-signal Extensions »(1076.1-1999 Language Reference Manual)” disponible http://www.vhdl.org/analog/ [IEEE2] « Verilog-AMS Language Reference Manual) » http://www.eda.org/Verilog-ams/htmlpages/publics-docs/lrm [ISCC95] R.L Peterson, R.E Ziemer, D.E Borth « Introduction to Spread Spectrum Communications », Prentice Hall,1995. [ITRS03] International Technology Roadmap for Semiconductors, 2003 Edition, Executive Summary .http://public.itrs.net/Files/2003ITRS [JAIN92] R. Jain et al., « Computer –Aided Design of a BPSK Spread-Spectrum Chip Set », IEEE Journal of Solid-State Circuits, vol.27, n°1,pp. 44-57, Jan.1992.

Page 178: 83240798 These Celine

REFERENCES

-167-

[KAHN02]A.B. KAHNG,G.SMITH « A new Design cost model for the 2001 ITRS »,Proceedings of the international Symposium on Quality Electronic Design (ISQED’2002) [KARR04] M.KARRAY,P.DESGREYS,JJ CHARLOT « VHDL-AMS modelling of VCSEL including Noise » IEEE BMAS’03, San Jose, Californie, USA, Oct 2003. [KIM99] H.G. Kim, I. Song, Y.U. Lee, S.C. Kim, Y.H. Kim, « Double-dwell serial-search PN code acquisition using a nonparametric detector in DS/CDMA systems. », Dept. of electrical engineering, KAIST, 0-7803-5538-5/99, 1999 IEEE. [KPAL03] K.KPALMA, V.HAESE-COAT « Traitement numérique du signal. Théorie et applications» Ellipses collection TECHNOSUP Septembre 2003. ISBN : 2-7298-1728-X [LECU88] P.L’ECUYER « Communications of ACM »vol.31 , N°6, June 1988, pp 742-774. [LEE98] Lee D.,Lee.H, Milstein L.B, « Direct Sequence Spread Spectrum Walsh-QPSK modulation », IEEE Transactions Communications, vol.46,N°9, Spet.1998,pp.1227-1232. [LIM98] H. Lim, K. Cheun, « Analysis of decimator-based full-digital delay-locked PN code tracking loops for bandlimited direct-sequence spread-spectrum signal in AWGN. », IEICE TRANSACTIONS ON COMMUNICATIONS, VOL. E81-B, N°10, Oct. 1998. [LU93] Fang LU and al (1993)“A 700-MHz 24-b Pipelined Accumulator in 1,2µm CMOS for application as a numerically Controlled Oscillator” , IEEE Journal of Solid-State Circuits, vol. 28,n°8, pp. 878-885 [MATL03] I.A Grout and K.Keane, « A Matlab to VHDL conversion toolbox for digital control ». IFAC Symposium CACSD 2000, Salford, UK, Sep. 2000. [MAZO79] J.E MAZO « Some Theorical observation on spread spectrum communications » Bell Synth. Tech. Journal, vol.58, pp 2013-2023, Avr 1979. [MELE01]P.MELET. « Conception et réalisation d’un circuit numérique spécifique à étalement de spectre pour un système multicapteurs en milieu clos », Université Paul Sabatier, Toulouse. Dec. 2001. [MENT01] Mentor Graphics Corporation, « AdvanceMS Datasheet » Mentor Graphics Corporation 2001. [MENT03] Mentor Graphics Corporation, « System Modeling » Mentor Graphics Corporation 2001. http://www.mentor.com/systemvision/ Mentor Graphics Corporation 2003. [MILP01] E.MARTIN, A.BAGANNE, E.CASSEAU« Méthodologie et développement pour les Intellectuals properties pour l’applications telecoms ». Rapport d’avancement 1.1 Niveau comportemental : outils HLS et IPs. [MLYN01] D. MYLNEK « Design of VLSI Systems »Ecole polytechnique Fédérale de Lausane (EPFL) 2001 http://lsiwww.epfl.ch/LSI2001/teaching/webcourse/toc.html [NAGE75]L.W NAGEL Spice2 : A computer program to simulate semi-conductors circuits.Memorandum N°ERL-M520 , Electrons .Research Laboratory. [NEWM86] D.Newman, IEEE communications magazine, pp 46-47, Juillet 1986.

Page 179: 83240798 These Celine

REFERENCES

-168-

[NIVE99]F. Nivelle, S. Bourdel, P. Melet, E. Campo « Etude comparative, sous MATLAB et SABER, des principaux filtres analogiques. Application à la chaîne de communication à étalement de spectre »,Rapport Equipe ICARE, IUT B de Blagnac, Juillet 1999. [NORM04] E.NORMARK,L.YANG,C.WAKAYAMA, P.NIKITIN, R.SHI « VHDL-AMS Behavioral Modeling and Simulation of π/4 DQPSK Transceiver System », BMAS’ 04, Oct.2004. [NTRS] Semiconductor Industry Association « The National Technology Roadmap for Semiconductors » http://public.ntrs.net/Files/2003NTRS [POLY84] A. Polydoros, C.L. Weber, « A Unified Approach to Serial Search-Spectrum Code Acquisition – Part I : General Theory. », 0090-6778/84/0500-0542, IEEE 1984. [POLY84b] A. Polydoros, C.L. Weber, « A Unified Approach to Serial Search-Spectrum Code Acquisition – Part II : A Matched-Filter Receiver. », 0090-6778/84/0500-0550, IEEE 1984. [PEYR05] F.PEYRARD « La sécurité des réseaux WiFi » Seminaire L2I, Blagnac Jul.2005. [ROBE02] M.Robert « Circuits et systèmes intégrés micro-électronique : technologie,conception » http://www.lirmm.fr/~robert /cours/SyntheseASIC2002.pdf [RON99] Ron.W « Is SoC really different ? » EETimes 8 November 1999. http:// www.eetimes.com/story/OEG19991108S0009. [RUSC01] L. Ann Rusch, « Indoor Wireless Communications : Capacity and Coexistence on the Unlicensed Bands. », Intel Corporation 2001. [SAGE64] G.F.Sage « Serial Synchronisation of Pseudonoise Systems »,IEEE Transactions on communications.,Vol.CT-12, pp.123-127, Dec.1964. [SASON04] SASONGKO Arif « Prototypage basé sur une plateforme reconfigurable pour la vérfication des systèmes monopuces » Thèse de doctorat de l’université Joseph Fourier. Oct. 2004. [SCHW01] R. Schwarz, F. Sigtek Inc, « An introduction to linear recursive sequences in spread spectrum systems. », Dec. 2001. [SEAMww] http:// www.mentor.com/products/fv/hwsw_coverification/seamless/index.cfm. [SEMA] SEMATECH (SEmiconductor MAnufacturing TECHnology) Consortium de fabricant de puce : http://sematech.org [SHEE94] W.H. Sheen, G.L. Stüber, « Effects of multipath fading on delay-locked loops for spread spectrum systems. », IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 42, N°2/3/4, Feb/March/April 1994. [SIME03]SIMEC « hAMSter The high Performance AMS tool for Engineering and research » http // :www .hamster-ams.com. [SIMO77] M.K Simon, « Noncoherent Pseudonoise Code tracking Performance of Spread Spectrum Receiver ». IEEE Transactions on Communications, Vol. Com-25, N°3, pp.327-345, Mars 1977.

Page 180: 83240798 These Celine

REFERENCES

-169-

[SIMO94] M.K.SIMON, J.K OMURA, R.A SHOLTZ, B.K LEVITT, “Spread Spectrum Communications Handbook”, Mac Graw-Hill, 1994. [SMAS05] SMASH 5.5 « Logic, Analog and Mixed Simulation » http://www.dolphin.fr/medal/smash/smash_overview.html. [SMIT98] D.SMITH « HDL Chip Design : A pratical Guide for Designing, Synthesis & Simulating Asics &FPGAs using VHDL or Verilog » Doone Pubns . ISBN : 0965193438 [SNAI04] S.SNAIDERO « Modélisation multidisciplinaire VHDL-AMS de systèmes complexes : vers le prototypage virtuel », Thèse de doctorat de l’université L.Pasteur de Strasbourg , Décembre 2004. [SU97] S.L. Su, N.Y. Yen, « Performance of digital code tracking loops for direct-sequence spread-spectrum signals in mobile radio channels. », IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 45, N°5, May 1997. [Syno00] Synopsys, « Hardware/Software Co-Verification with Synopsys Eaglei Tools », Synposys Inc, Etats-Unis d’Amérique 2000. [SYNO03] Synopsys, « SaberHDL : language-Independant Mixed –Signal Multi-Technology Simulator », Synposys Inc, Etats-Unis d’Amérique 2003. [TEXWW]Texas Instrument http://www.ti.com [VACH02] A.VACHOUX « Modélisation de systèmes integrés Analogiques et mixtes; Intorduction à VHDL-AMS » http://lsmwww.epfl.ch [VALD98]C.A VALDERRAMA « Prototype virtuel pour la génération des architectures mixtes logicielles/matérielles » Thèse de doctorat de l’institut national polytechnique de grenoble, Oct.1998. [VDBO05] A. VAN DEN BOSSCHE, T. VAL, E. CAMPO «Proposition of a full deterministic medium access method for wireless network in a robotic application» Soumission IEEE Vehicular Technology Conference (VTC’2006), May 2006. [VERD01]S.VERDU, « MULTIUSER DETECTION »Cambridge, ISBN 0521593735 [VERM02]F.VERMEULEN « Reuse of System-Level Design components in data- dominated Digital systems », Thèse de doctorat de l’université catholique de Leuven (Belgique), Décembre 2002. [VITE85] Viterbi.A.J, « When not to spread spectrum a sequel », IEEE Communications magazine, vol.23, pp 12-18, Avr 1985. [VLAD94]A.VLADIMIRESCU. The Spice Book. J.Wiley&Sons, Inc,New York, 1994. ISBN :047160969 [WARD77]R.B Ward,K.P.Yiu »Acquisition of pseudonoise Signals by Recursion-Aided Sequential Estimation »,IEEE Transactions on communications, vol.com-25, N°8, pp.784-794,Nov.1978. [WELT94] A.L. Welti, B.Z. Bodbrovsky, « Mean time to lose lock for the “Langevin”-type delay-locked loop. », IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 42, N°8, Aug. 1994.

Page 181: 83240798 These Celine

REFERENCES

-170-

[WILD95] A. Wilde, U.P. Bernhard, « Mean time to lose lock for a second order extended tracking range delay-locked loop. », 0-7803-3002-1/95, 1995 IEEE. [WILD96] A. Wilde, « On the performance of extended tracking range delay-locked loops. », May 1996. [WU97] Jen-Shi Wu, Ming-Luen Liou, Hsi-Pin Ma, Tzi-Dar Chiueh « A 2.6-V, 44MHz All-Digital QPSK Direct-Sequence Spread-Sprectrum Transceiver IC », IEEE Journal of Solid-State Circuits, VOL. 32, N° 10 October 1997 0018-9200/97. [XILIWW] XILINX http://www.xilinx.com [YEN96] N.Y. Yen, S.L. Su, S.C. Hsieh, « Performance analysis of digital delay lock loops in the presence of Doppler shift. », IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 44, N°6, June 1996. [YOON00] S. Yoon, I. Song, S.Y. Kim, S.R. Park, « A DS-CDMA code acquisition scheme robust to residual code phase offset variation. », IEEE TRANSACTIONS ON VEHICULAR TECHNOLOGY, VOL. 49, N°6, 0018-9545/00, Nov. 2000.

Page 182: 83240798 These Celine

REFERENCES

-170-

ANNEXES

Page 183: 83240798 These Celine

ANNEXES

-172-

ANNEXES 1 : Fichier Test Bench -************************************************************************************** -- Fichier de test de l'emetteur-recepteur avec le canal AWGN --16/03/2005 --Fichier regroupant les fonctions de l'émetteur, du recepteur et les composants externes -- emission, generateur de trame en entree de l'emetteur, l'horloge, -- le controle de l'emetteur, et le recepteur(CAN) avec le canal de transmission radio --*************************************************************************************** library IEEE,DISCIPLINES; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; use DISCIPLINES.electromagnetic_system.all; use work.parameter.all; entity test_reception_avec_radio is -- pas de ports externes end test_reception_avec_radio; architecture arch_test_reception_avec_radio of test_reception_avec_radio is --*************************************************************************************** --Définition des signaux de jonctions --*************************************************************************************** signal clk_40e : std_logic; signal rst : std_logic; signal data_source : std_logic; signal cn_code : std_logic_vector(11 downto 0); signal data_etalee : std_logic; signal clock : std_logic; --Horloge de 40Mhz de l'entrée du recepteur terminal ain : electrical; --signal reset : std_logic; signal clock_640 : std_logic; signal eoc : std_logic; signal sortie_clk160nco : std_logic; --*************************************************************************************** --Définition des composants --*************************************************************************************** component emission port( clk_40e: in std_logic; rst: in std_logic; data_source : in std_logic; cn_code : in std_logic_vector(11 downto 0); data_etalee : out std_logic ); end component; component Gene_trame1 port( reset: out std_logic; datasource : out std_logic ); end component; component horloge_40 port( clock : out std_logic ); end component; component controle port( cn_code: out std_logic_vector(11 downto 0)

Page 184: 83240798 These Celine

ANNEXES

-173-

); end component; COMPONENT horloge_640 PORT ( clock : out std_logic); END COMPONENT; component recepteur_CAN port( clock : in std_logic; --Horloge de 40Mhz de l'entrée terminal ain : electrical; -- ADC's analog input terminal eoc : out std_logic; -- End Of Conversion pin reset : in std_logic; clock_640: in std_logic; cn_code : in std_logic_vector (11 downto 0); sortie_clk160nco : out std_logic ); end component; component radio port( data_etalee : in std_logic; terminal ain : electrical; terminal ref : electrical ); end component; --*************************************************************************************** --Définition des port map --*************************************************************************************** begin generation_de_trame: Gene_trame1 port map ( datasource => data_source , reset => rst ); horloge_chip : horloge_40 port map( clock => clk_40e ); horloge_40MHz_entree_recep : horloge_40 port map( clock => clock ); Gene_coef_code_emission : controle port map ( cn_code => cn_code ); E1 : emission port map ( clk_40e => clk_40e, rst => rst, data_source => data_source, cn_code => cn_code, data_etalee => data_etalee ); AWGN : radio port map ( data_etalee => data_etalee, ain => ain, ref => electrical_ground

Page 185: 83240798 These Celine

ANNEXES

-174-

); horloge_640MHz : horloge_640 port map ( clock => clock_640 ); R2 : recepteur_CAN port map ( clock => clock, ain => ain, reset => rst, clock_640 => clock_640, cn_code => cn_code, eoc => eoc, sortie_clk160nco => sortie_clk160nco ); end arch_test_reception_avec_radio;

Page 186: 83240798 These Celine

ANNEXES

-175-

ANNEXES 2. Fonctions numériques de l’émetteur

Page 187: 83240798 These Celine

ANNEXES

-176-

Page 188: 83240798 These Celine

ANNEXES

-177-

EMETTEUR (Emission)

Paramètres Longueur du PN code Fréquence de Génération I iti li ti d PN CODE

Fonction « Multiplication »

(Mult_e)

Encodeur Différentielle

(Codeur)

Générateur de PN Code

(Gene_code_e)

Page 189: 83240798 These Celine

ANNEXES

-178-

Figure A.1 Organigramme de la fonction Emetteur

--************************************************************************************** -- Fonction-emetteur-teste -- 04/04/2005 --Fichier regroupant les fonctions de l'émetteur --Description des fonctions suivantes de l'émetteur : codeur(codeur), fonction « multiplication »(mult_e), du générateur de -- PN CODE Emission (gene_code_e) et des bascules pour resynchroniser (2 bascules D) *************************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; use work.parameter.all; entity emission is port( clk_40e: in std_logic; rst: in std_logic; data_source : in std_logic; cn_code : in std_logic_vector(11 downto 0); data_etalee : out std_logic ); end emission; architecture arch_emission of emission is --*************************************************************************************** --Définition des signaux de jonctions --*************************************************************************************** signal data_encodee_clk40e : std_logic; signal data_encodee_re_clk40e: std_logic; signal dump_e_clk40e : std_logic;

Page 190: 83240798 These Celine

ANNEXES

-179-

signal code_e_clk40e : std_logic; signal code_retardee_e_clk40e : std_logic; signal code_retardee2_e_clk40e : std_logic; signal code_retardee3_e_clk40e : std_logic; --*************************************************************************************** --Définition des composants --*************************************************************************************** component codeur port( clk_40e: in std_logic; rst : in std_logic; dump_e_clk40e : in std_logic; data_source : in std_logic; data_encodee_clk40e : out std_logic ); end component; component mult_e port( code_e_clk40e : in std_logic; data_encodee_clk40e : in std_logic; data_etalee : out std_logic ); end component; component gene_code_e port( clk_40e : in std_logic; rst : in std_logic; cn_code : in std_logic_vector(11 downto 0); code_e_clk40e : out std_logic; dump_e_clk40e : out std_logic ); end component; component bascule_d port( clk_40e: in std_logic; rst: in std_logic; code_e_clk40e :in std_logic; code_retardee_e_clk40e:out std_logic ); end component; --*************************************************************************************** --Définition des port map --*************************************************************************************** begin encodeur: codeur port map ( clk_40e =>clk_40e, rst =>rst , dump_e_clk40e => dump_e_clk40e, data_source => data_source, data_encodee_clk40e => data_encodee_clk40e ); multi_emission : mult_e port map( code_e_clk40e =>code_retardee3_e_clk40e,

Page 191: 83240798 These Celine

ANNEXES

-180-

data_encodee_clk40e =>data_encodee_re_clk40e, data_etalee => data_etalee); --Générateur de Pn_Code_Emission Gene_code_emission:gene_code_e port map ( clk_40e =>clk_40e, rst=>rst, cn_code =>cn_code, code_e_clk40e => code_e_clk40e, dump_e_clk40e => dump_e_clk40e); --1er bascule pour un clock de retard bascule_d1:bascule_d port map ( clk_40e =>clk_40e, rst =>rst , code_e_clk40e =>code_e_clk40e, code_retardee_e_clk40e =>code_retardee_e_clk40e); --2eme bascule pour être en phase bascule_d2:bascule_d port map ( clk_40e =>clk_40e, rst =>rst , code_e_clk40e=>code_retardee_e_clk40e, code_retardee_e_clk40e =>code_retardee2_e_clk40e); --15/03/2005 Ajout d'une bascule D pour la multiplication du récepteur bascule_d3:bascule_d port map ( clk_40e =>clk_40e, rst =>rst , code_e_clk40e=>code_retardee2_e_clk40e, code_retardee_e_clk40e =>code_retardee3_e_clk40e); --17/09/2005 Rajout Bascule pour soit en phase avec code_retardee3_e_clk40e bascule_Encodeur:bascule_d port map ( clk_40e =>clk_40e, rst =>rst , code_e_clk40e=>data_encodee_clk40e, code_retardee_e_clk40e =>data_encodee_re_clk40e); end ;

Page 192: 83240798 These Celine

ANNEXES

-181-

**************************************************************************** --GENERATEUR DE PN CODE de l'émetteur -- 04/04/2005 --Génération de PN Code à partir des coefficients CN_CODE --Paramètres: (à définir)longueur du PN CODE, initialisation DU PN CODE --19/03 Pour que le dump soient de 375 ns laisser les calculs pour le registre à l'extérieur du process --20/05/2005 Test de la version complète --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; entity gene_code_e is port ( clk_40e : in std_logic; rst : in std_logic; cn_code : in std_logic_vector(11 downto 0); code_e_clk40e : out std_logic; dump_e_clk40e : out std_logic ); end gene_code_e; architecture arch of gene_code_e is signal a : std_logic_vector (0 to 11); signal q : std_logic_vector (1 to 11); signal dump1_e_clk40e :std_logic; -- initialisation du registre des bascules d --signal d : std_logic_vector(0 to 11) := "100000000000";

Page 193: 83240798 These Celine

ANNEXES

-182-

signal d : std_logic_vector(0 to 11); begin --calcul des valeurs binaires réinjectées dans le registre : a(0) <= cn_code(0) and d(0); a(1) <= cn_code(1) and d(0); a(2) <= cn_code(2) and d(0); a(3) <= cn_code(3) and d(0); a(4) <= cn_code(4) and d(0); a(5) <= cn_code(5) and d(0); a(6) <= cn_code(6) and d(0); a(7) <= cn_code(7) and d(0); a(8) <= cn_code(8) and d(0); a(9) <= cn_code(9) and d(0); a(10) <= cn_code(10) and d(0); a(11) <= cn_code(11) and d(0); --calcul des prochaines valeurs du registre : q(1) <= d(1) xor a(0); q(2) <= d(2) xor a(1); q(3) <= d(3) xor a(2); q(4) <= d(4) xor a(3); q(5) <= d(5) xor a(4); q(6) <= d(6) xor a(5); q(7) <= d(7) xor a(6); q(8) <= d(8) xor a(7); q(9) <= d(9) xor a(8); q(10) <= d(10) xor a(9); q(11) <= d(11) xor a(10); -- initialisation du registre --processus de réaffectation du registre : p1 : process(clk_40e,rst) begin if(rst = '1') then --19/03 Ajout du reset seulement d <= "100000000000"; dump1_e_clk40e <= '0'; elsif (rising_edge(clk_40e)) then --génération de l'horloge de bloquage : if q(1 to 11)&a(11)="100000000000" and dump1_e_clk40e='0' then dump1_e_clk40e <= '1'; else dump1_e_clk40e<='0'; end if; --réaffectation du registre: d(0) <= q(1); d(1) <= q(2); d(2) <= q(3); d(3) <= q(4); d(4) <= q(5); d(5) <= q(6); d(6) <= q(7); d(7) <= q(8); d(8) <= q(9); d(9) <= q(10); d(10)<= q(11); d(11)<= a(11); end if; end process p1; dump_e_clk40e<=dump1_e_clk40e;

Page 194: 83240798 These Celine

ANNEXES

-183-

code_e_clk40e<=d(0); end arch; --********************************************************************** -- ENCODEUR EMETTEUR -- 04/04/2005 Mise à jour dans projet DLL seule --Fonction permettant l'encodage des données issues des capteurs --paramètre: Horloge de temps symboles --********************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; entity codeur is port ( clk_40e: in std_logic; rst : in std_logic; dump_e_clk40e : in std_logic; data_source : in std_logic; data_encodee_clk40e : out std_logic ); end codeur; architecture arch of codeur is signal data_out1_clk40e : std_logic; signal detect_front_clk40e : std_logic; signal dump_e_rideau1 : std_logic; signal dump_e_rideau2 : std_logic; begin data_encodee_clk40e<=data_out1_clk40e;--permet d'avoir un clock d'horloge d'écart (plus de front descendant) re_synchro: process (rst,clk_40e) begin if (rst='1') then dump_e_rideau1 <= '0'; dump_e_rideau2 <= '0'; elsif(rising_edge(clk_40e)) then dump_e_rideau1 <= dump_e_clk40e; dump_e_rideau2 <= dump_e_rideau1; end if; end process re_synchro; --processus calculant la sortie à chaque front montant de l'horloge de bloquage p1 : process(clk_40e,rst) begin if (rst = '1') then data_out1_clk40e <= '0'; detect_front_clk40e <= '0'; elsif rising_edge(clk_40e) then--permet de réagir sur le front montant de dump (rising_edge(dump)) if (dump_e_rideau1 = '1'and dump_e_rideau2 = '0' and detect_front_clk40e = '0') then data_out1_clk40e <= not(data_out1_clk40e xor data_source); detect_front_clk40e <='1'; else detect_front_clk40e <='0'; data_out1_clk40e <= data_out1_clk40e; end if;--If dump end if;--If clk_40e end process p1; end arch;

Page 195: 83240798 These Celine

ANNEXES

-184-

--***************************************************************************** --MULTIPLIEUR EMETTEUR --02/11/2004-- Mise à jour des fichiers --31/03/2005--Mise à jour dans nouveau projet --Multiplication de la donnée encodée avec le PN_code --20/05/2005 Test de la version complète --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; entity mult_e is port ( code_e_clk40e : in std_logic; data_encodee_clk40e : in std_logic; data_etalee : out std_logic ); end mult_e; architecture arch of mult_e is begin data_etalee <= not(data_encodee_clk40e xor code_e_clk40e); end arch;

Page 196: 83240798 These Celine

ANNEXES

-185-

ANNEXES 3 . Fonctions transmission

--**************************************************************** -- Multiplicateur RF en sortie de l'emetteur (numerique->analogique) -- 15/03/05 -- transposition de la frequence de base vers la RF --**************************************************************** library ieee,ieee_proposed; use ieee.std_logic_1164.all; use ieee_proposed.electrical_systems.all; entity mult_digit is port(in1 : in std_logic; terminal sin ,out1,ref : electrical); end mult_digit; architecture arch of mult_digit is quantity v1 across sin to ref; quantity v2 across i through out1 to ref; begin break on in1; if in1='0' use v2==v1; else v2==-v1; end use; end architecture arch; -****************************************************************

Page 197: 83240798 These Celine

ANNEXES

-186-

-- Filtre passe-bande de gabarit --**************************************************************** library ieee,ieee_proposed; use ieee.std_logic_1164.all; use ieee_proposed.electrical_systems.all; use IEEE.math_real.all; entity filtre_bande is port( terminal in1,out1,ref: electrical); end filtre_bande; architecture arch of filtre_bande is quantity vi across in1 to ref; quantity vo across i through out1 to ref; --définitions des coefficients du polynôme du dénominateur constant a4 : real :=8.517935e-19; constant a3 : real :=1.377222e-9; constant a2 : real :=3.882865e+2; constant a1 : real :=3.130874e+11; constant a0 : real :=4.402075e+22; --définition du numérateur et du dénominateur de la fonction de transfert constant num : real_vector :=(0.0,0.0,1.0); constant den : real_vector :=(a0,a1,a2,a3,a4); begin --affectation de la sortie filtrée vo== vi'ltf(num, den); end architecture arch; --****************************************** -- CANAL AWGN -- 16/05/05 --****************************************** library IEEE,IEEE_PROPOSED,DISCIPLINES,mgc_ams; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; use DISCIPLINES.electromagnetic_system.all; use IEEE.math_real.all; use mgc_ams.conversion.all; entity canal is generic ( tps_propa : time := 0.0 ns ;-- temp de propagation de l'onde electromagnetique entre l'emetteur et le recepteur SNR : real := -10.0 ; -- SNR en dB attenuation : real := 0.5 -- valeur comprise entre 1.0 et 0.0 ); port( terminal entree_canal,ref,sortie_canal: electrical); end canal; architecture arch of canal is quantity Vo across sortie_canal to ref; -- electrical_ground ou ref quantity Ve across entree_canal to ref; quantity Va through sortie_canal to ref; -- POUR LE CRITERE DE SOLVABILITE signal out1 : real := 0.0; -- bruit injecte dans le canal signal noise_s : real := 0.0; -- bruit seul non adapte au SNR (0dB)

Page 198: 83240798 These Celine

ANNEXES

-187-

signal ve_max, ve_max1: real := 0.01; -- valeur max du niveau en entree du canal signal ve_rms : real := 0.01; -- valeur RMS du niveau en entree du canal signal ve_db : real := 0.0; -- valeur du niveau en entree du canal en dB signal level : real := -60.0; -- niveau de buit a injecter dans le canal pour avoir un SNR donne signal ve1 : real := 0.01; -- valeur absolu du signal a l'entree du canal constant retard : real := time2real(tps_propa); constant racine_de_deux :real := 1.414; begin calcul_niveau_entree : process begin ve1 <= ABS (ve*attenuation); --prend en compte l'attenuation dans le cannal wait for 10 ns; ve_max <= REALMAX (ve1 ,ve_max1); --valeur max de ve ve_rms <= ve_max/racine_de_deux; ve_db <= 20.0*log10 (ve_rms); --valeur en dB de ve ve_max1 <= ve_max - 0.01; --sert a mettre a jour la valeur max de ve end process calcul_niveau_entree; p0 : process variable seed11:integer:=2000 ; variable seed12:integer:=100000000 ; variable x,y :real ; begin uniform (seed11,seed12,x); uniform (seed11,seed12,y); noise_s <= 1.0*(sqrt(-2.0*log(x))*cos(2.0*math_pi*y)); --generation du bruit blanc gaussien wait for 1 ns; level <= (ve_db - SNR); --calcul de niveau de bruit a agouter dans le canal en dB out1 <= 10.0**(level/20.0)*noise_s; --regle out1 = noise_s au niveau de level (en dB) end process p0; break on out1; vo == ve'DELAYED (retard) * attenuation + out1; --affectation de sortie_canal (vo) avec le retard, le bruit et l'attenuation end architecture arch; --**************************************************************** -- Multiplicateur RF en entree du recepteur (analogique->analogique) -- 15/03/05 -- transposition de la RF vers la frequence de base --**************************************************************** library ieee,ieee_proposed; use ieee.std_logic_1164.all; use ieee_proposed.electrical_systems.all; entity mult_analog is port(terminal in1 ,sinus, out1,ref : electrical); end mult_analog; architecture arch of mult_analog is quantity v1 across in1 to ref; quantity v2 across sinus to ref; quantity v3 across i3 through out1 to ref;

Page 199: 83240798 These Celine

ANNEXES

-188-

begin v3==v1*v2; end architecture arch; --**************************************************************** -- Filtre passe-bas --**************************************************************** library ieee,ieee_proposed; use ieee.std_logic_1164.all; use ieee.math_real.all; use ieee_proposed.electrical_systems.all; entity filtre_bas is port( terminal in1,out1,ref: electrical); end filtre_bas; architecture arch of filtre_bas is quantity vi across in1 to ref; quantity vo across i through out1 to ref; --constant b5 : real :=432710406.0; constant b4 : real :=7.832322887179808e-35; constant b3 : real :=1.083750705598370e-25; constant b2 : real :=5.518945839655140e-17; constant b1 : real :=1.224571370534976e-8; constant b0 : real :=1.0; constant num : real_vector :=(1.0,0.0); constant den : real_vector :=(b0,b1,b2,b3,b4); begin vo== vi'ltf(num, den); end architecture arch;

Page 200: 83240798 These Celine

ANNEXES

-189-

ANNEXE.4. Fonctions du récepteur

Page 201: 83240798 These Celine

ANNEXES

-190-

Param: Nombres de branches

Param: Gain du discriminateur

Param: Coeff m (en fonction N)

Param: Pas NCO Frequence NCOGain NCO

Param: Longueur du PN code Coeff m (en fonction N) Vecteur initialisation

Param: Cte de temps Coefficients RII Gain du filtre de boucle

Récepteur (Recepteur_CAN)

Poursuite(Poursuite)

Désétalement (Desetalement)

Décodage Différentielle

(Decodeur)

Test donnée (Test_donnee)

Discriminateur(discriminateur)

Diviseur (Diviseur)

NCO (nco)

Générateur PN-Code Récepteur N branches

(gene_code_r_N_synchro)

Filtre de boucle (filtre_fifobis) Fonction

« multiplication »(Multiplieur_r)

Intégrateur/bloqueur (Integ_dump)

Synchronisation (Synchronisation)

Récepteur_sans_synchronisation (Recepteur_ss_synchro)

Param: Valeur du seuil

Param: Coefficients RII

Valeur absolu

(Absolu)

Test Seuil pour 1 branche

(Test_seuil)

Sélection PN_CODE(Dephaseur_PN_code)

Filtre Correlation (filtre_fifobis)

Soustracteur

HHiiéérraarrcchhiiee RRéécceepptteeuurr Convertisseur

Analogique/Numérique (CAN2)

Désétalement synchronisation

(multiplieur_r,integ_dump)

Désétalement poursuite

(multiplieur_r,integ_dump,absolu)

Page 202: 83240798 These Celine

ANNEXES

-191-

--************************************************************ -- Organe RECEPTEUR DE TRANSCEIVER_synthétisable --31/01/2005 -- Fichier comprenant CAN avec temps de conversion, Récepteur_ss_synchro, Poursuite , synchronisation -- et Diviseur --************************************************************ LIBRARY work; LIBRARY ieee,ieee_proposed; USE work.parameter.all; use ieee_proposed.electrical_systems.all; USE ieee.numeric_std.all; USE ieee.std_logic_1164.all; ENTITY recepteur_CAN IS port ( clock : in std_logic; --Horloge de 40Mhz de l'entrée terminal ain : electrical; reset : in std_logic; clock_640: in std_logic; cn_code : in std_logic_vector (11 downto 0); --start:in std_logic; eoc : out std_logic; --synchro_clk160nco: out std_logic ; sortie_clk160nco : out std_logic ); END; ARCHITECTURE arch_recepteur OF recepteur_CAN IS --********************************************************** --DEFINITION DES SIGNAUX DE JONCTIONS --********************************************************** SIGNAL clk80nco :std_logic; SIGNAL clk40nco :std_logic; SIGNAL clk160nco:std_logic; SIGNAL clk_simu:std_logic; SIGNAL dump_r_clk40nco : std_logic; SIGNAL code_out_clk40nco : std_logic; SIGNAL data_codee_clk40e : signed (3 downto 0); SIGNAL data_conv : signed (3 downto 0); -- SIGNAL synchro_clk160nco: boolean; SIGNAL synchro_clk160nco: std_logic; SIGNAL clock_NCO: std_logic; --SIGNAL eoc:std_logic; --********************************************************** -- Définition des components --********************************************************** component CAN2 is generic ( Vmax : voltage := 0.05; -- ADC's maximum range delay : time := 1 ns -- ADC's conversion time ); port ( signal start : in std_logic; -- Start signal signal clk : in std_logic; -- Strobe clock terminal ain : electrical; -- ADC's analog input terminal signal eoc : out std_logic := '0'; -- End Of Conversion pin signal dout : out signed(3 downto 0)); -- Digital output end component; component inversion is port (

Page 203: 83240798 These Celine

ANNEXES

-192-

signal dout : in signed(3 downto 0); --Données en sortie du convertisseur signal data_convertie: out signed(3 downto 0)); --Données étalées et converties end component; component reception_ss_synchro is port( clk160nco : in std_logic; rst : in std_logic; data_codee_clk40e : in signed (3 downto 0); code_clk40nco : in std_logic;--PN code devra être en phase dump_r_clk40nco: in std_logic;--Signal permettant le test donnée sortie_clk160nco : out std_logic ); end component; component synchronisation is port( clk160nco : in std_logic; rst : in std_logic; data_codee_clk40e : in signed (3 downto 0); code_clk40nco : in std_logic;--PN code devra être en phase dump_r_clk40nco: in std_logic;--Signal permettant le test donnée synchro_clk160nco : out std_logic ); end component; component poursuite IS port( clk40nco : in std_logic; clk160nco : in std_logic; clk_640:in std_logic; rst : in std_logic; cn_code : in std_logic_vector (11 downto 0); data_codee_clk40e : in signed (3 downto 0); synchro_clk160nco: in std_logic; dump_r_clk40nco : out std_logic; code_out_clk40nco : out std_logic; clock_NCO :out std_logic ); END component; COMPONENT horloge_simu PORT ( clock : out std_logic); END COMPONENT; component diviseur is port( clk : in STD_LOGIC ; clk_divise_2 : out STD_LOGIC ); end component;

Page 204: 83240798 These Celine

ANNEXES

-193-

--*************************************************************************************** --définition des port map --*************************************************************************************** BEGIN Convertisseur1: CAN2

generic map ( Vmax => 0.05, -- ADC's maximum range delay => 1 ns ) port map ( start =>clock, clk =>clock_640, ain => ain, eoc =>eoc, -- ADC's analog input terminal dout => data_conv ); INVERSE:INVERSION port map ( dout => data_conv, data_convertie =>data_codee_clk40e ); reception1: reception_ss_synchro PORT MAP ( clk160nco => clk160nco, rst => reset, --data_codee_clk40e => data_codee_clk40e, data_codee_clk40e => data_conv,-- 23/09/2005 Element inversion enleve dump_r_clk40nco => dump_r_clk40nco, code_clk40nco => code_out_clk40nco, sortie_clk160nco => sortie_clk160nco); synchronisation1 :synchronisation PORT MAP ( clk160nco => clk160nco, rst => reset, data_codee_clk40e => data_codee_clk40e, dump_r_clk40nco => dump_r_clk40nco, code_clk40nco => code_out_clk40nco, synchro_clk160nco => synchro_clk160nco); org_poursuite: poursuite PORT MAP ( clk40nco => clk40nco, clk160nco => clk160nco, clk_640 => clock_640, rst => reset, cn_code => cn_code, data_codee_clk40e => data_codee_clk40e, synchro_clk160nco => synchro_clk160nco, code_out_clk40nco => code_out_clk40nco , clock_NCO =>clock_NCO, dump_r_clk40nco => dump_r_clk40nco ); HorlogeSimu : horloge_simu port map ( clock =>clk_simu );

Page 205: 83240798 These Celine

ANNEXES

-194-

diviseur1: diviseur port map ( clk =>clock_NCO, clk_divise_2 => clk80nco ); diviseur2: diviseur port map ( clk =>clk80nco, clk_divise_2 => clk40nco ); clk160nco<=clock_NCO; END;

Page 206: 83240798 These Celine

ANNEXES

-195-

--****************************************************************************************** -- Convertisseur Analogique/Numérique --18 /01/2005 --Les entrées et sorties -- Entrée START qui définie le début de conversion -- Entrée CLK qui eshorloge du système -- Entrée Analogique à convertir -- Sortie EOC qui définit la fin de conversion -- Sortie DOUT qui définit le signal de sortie -- Paramètre du CAN: Plage maximun de tension Vmax, temps de conversion delay -- Lorsque nous avons un front montant sur EOC les données devront être récuppérer en sortie --****************************************************************************************** library IEEE; library IEEE_PROPOSED; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; use IEEE_PROPOSED.electrical_systems.all; entity CAN2 is generic ( Vmax : voltage := 0.05; -- ADC's maximum range delay : time := 1ns -- ADC's conversion time ); port ( signal start : in std_logic; -- Start signal signal clk : in std_logic; -- Strobe clock terminal ain : electrical; -- ADC's analog input terminal signal eoc : out std_logic := '0'; -- End Of Conversion pin signal dout : out signed(3 downto 0)); -- Digital output end entity CAN2; architecture sar of CAN2 is type states is (input,hold, convert, output); -- Three states of A2D Conversion quantity Vin across Iin through ain to electrical_ref; -- ADC's input branch --quantity Vin across ain to electrical_ref; -- quantity Vsortie across Isortie through Vcan to electrical_ref; --signal Vsortie_temp : real := 0.0; begin sa_CAN2 : process variable thresh : voltage := Vmax; -- Threshold to test input voltage -- against variable Vtmp : voltage := Vin; -- Snapshot of input voltage when -- conversion starts variable dtmp : signed(3 downto 0); -- Temp. output data variable status : states := input; -- Begin with "input" CASE begin case status is when input => -- Read input voltages when start goes high wait on start until start = '1' or start = 'H'; thresh := Vmax; -- Vtmp := Vin; eoc <= '0'; status :=hold; when hold => wait on clk until clk = '1' or clk = 'H'; Vtmp := Vin; status := convert; -- Go to convert state when convert => -- Begin successive approximation conversion if Vtmp<0.0 then dtmp(3):='1';

Page 207: 83240798 These Celine

ANNEXES

-196-

Vtmp := Vtmp+(thresh); else dtmp(3):='0'; end if; if Vtmp >= (thresh/2.0) then dtmp(2):='1'; --Vtmp := Vtmp-0.25; Vtmp := Vtmp-(thresh/2.0); else dtmp(2):='0'; end if; if Vtmp >= (thresh/4.0) then dtmp(1):='1'; --Vtmp:=Vtmp-0.125; Vtmp := Vtmp-(thresh/4.0); else dtmp(1):='0'; end if; if Vtmp >= (thresh/8.0) then dtmp(0):='1'; else dtmp(0):='0'; end if; if dtmp="1000" then dtmp:="1001"; end if; status := output; -- Go to output state when output => -- Wait for output enable, then put data on output pins eoc <= '1' after delay; dout <= dtmp after delay; --wait on eoc until eoc = '1'; --dout<= dtmp; status := input; -- Set up for next conversion end case; end process sa_CAN2; Iin == 0.0;--cette équation est utile pour le critère de solvabilité. end architecture sar --****************************************************************************** --FICHIER regroupant les fonctions du discriminateur -- 04/04/2005 Mise à jour dans projet DLL seule -- fichier comprenant le port map du discriminateur de la DLL ----20/05/2005 Test de la version complète --****************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; use work.parameter.all; entity discriminateur is port( clk160nco : in std_logic; rst : in std_logic; data_codee_clk40e : in signed (3 downto 0);

Page 208: 83240798 These Celine

ANNEXES

-197-

code_early_clk40nco : in std_logic;--PN code devra être en avance code_late_clk40nco : in std_logic;--PN code devra être en retard dump_early_clk40nco: in std_logic;--Signal en avance pour la branche early dump_late_clk40nco: in std_logic;--Signal en retard pour la branche late discri: out signed(M downto 0) ); end discriminateur ; architecture arch_discriminateur of discriminateur is --*************************************************************************************** --Définition des signaux de jonctions --*************************************************************************************** signal data_multi_discri_early_clk40nco:signed (3 downto 0); signal data_multi_discri_late_clk40nco:signed (3 downto 0); signal data_destalee_early_clk160nco: signed (M downto 0); signal data_destalee_late_clk160nco: signed (M downto 0); signal data_absolu_early_clk160nco: signed (M downto 0); signal data_absolu_late_clk160nco: signed (M downto 0); --*************************************************************************************** --Définition des composants --*************************************************************************************** ----------------------------------------------------------------- --Définition du multiplieur ----------------------------------------------------------------- component multiplieur_r is port ( rst: in std_logic; code_clk40nco : in std_logic; data_codee_clk40e : in signed (3 downto 0); data_multi_clk40nco: out signed (3 downto 0) ); end component; ----------------------------------------------------------------- --Définition de l'intégrateur/bloqueur ----------------------------------------------------------------- component integ_dump is port ( clk160nco : in std_logic; rst : in std_logic; dump_clk40nco : in std_logic; data_multi_clk40nco : in signed (3 downto 0); result_clk160nco : out signed (M downto 0) ); end component; ----------------------------------------------------------------- --Définition de la valeur absolu ----------------------------------------------------------------- component absolu is

Page 209: 83240798 These Celine

ANNEXES

-198-

port ( rst : in std_logic; data_clk160nco : in signed(M downto 0); data_absolu_clk160nco: out signed(M downto 0) ); end component; ----------------------------------------------------------------- --Définition du soustracteur ----------------------------------------------------------------- component soustracteur is port ( data_absolu_late_clk160nco : in signed(M downto 0); data_absolu_early_clk160nco : in signed(M downto 0); discri: out signed(M downto 0) ); end component; --*************************************************************************************** --Définition des port map --*************************************************************************************** begin multiplieur_early : multiplieur_r port map ( rst =>rst , code_clk40nco=> code_early_clk40nco, data_codee_clk40e=> data_codee_clk40e, data_multi_clk40nco => data_multi_discri_early_clk40nco ); multiplieur_late : multiplieur_r port map ( rst =>rst , code_clk40nco=> code_late_clk40nco, data_codee_clk40e=> data_codee_clk40e, data_multi_clk40nco => data_multi_discri_late_clk40nco ); integrateur_early: integ_dump port map ( clk160nco =>clk160nco, rst =>rst , dump_clk40nco => dump_early_clk40nco , data_multi_clk40nco => data_multi_discri_early_clk40nco, result_clk160nco=> data_destalee_early_clk160nco ); integrateur_late: integ_dump port map (

Page 210: 83240798 These Celine

ANNEXES

-199-

clk160nco =>clk160nco, rst =>rst , dump_clk40nco => dump_late_clk40nco, data_multi_clk40nco => data_multi_discri_late_clk40nco, result_clk160nco=> data_destalee_late_clk160nco ); absolu_early: absolu port map ( rst =>rst , data_clk160nco => data_destalee_early_clk160nco, data_absolu_clk160nco => data_absolu_early_clk160nco ); absolu_late: absolu port map ( rst =>rst , data_clk160nco => data_destalee_late_clk160nco, data_absolu_clk160nco => data_absolu_late_clk160nco ); soustracteur_discri: soustracteur port map ( data_absolu_early_clk160nco => data_absolu_early_clk160nco , discri => discri, data_absolu_late_clk160nco => data_absolu_late_clk160nco ); END; --************************************************************************** -- Fonction Test de donnée --02/11/2004 --31/03/2005--Mise à jour dans nouveau projet --01/04/2005-- Test de donnee avec seuil sur I&DUMP --20/05/2005 Test de la version complète --************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity test_donnee is port ( --detect_front : in std_logic;--01/04--signal de début de symbole data_desetalee_clk160nco : in signed(M downto 0);--signal issu du I&D correlation:out std_logic; data_av_decodee_clk160nco: out std_logic --signal entre 0 et 1 en fonction du bit de signe ); end test_donnee; architecture arch of test_donnee is

Page 211: 83240798 These Celine

ANNEXES

-200-

signal valeur_seuil_max: signed(M downto 0); signal data_correle :std_logic; --affectation du bit de signe begin data_av_decodee_clk160nco <= not(data_desetalee_clk160nco(M));--permet d'obtenir selon le bit de signe un 1 ou 0 pour la sortie correlation <='1'; end arch; --************************************************************************************* -- Changement de test donnee qui detecte 1 ou 0 en fonction de la valeur de result --01/04/2005 --********************************************************************************** --begin --detection :process --begin --wait until detect_front='1'; --if (detect_front ='1') then --valeur_seuil_max <= abs (data_desetalee_clk160nco); --if(valeur_seuil_max < "0010110100" ) then -- --if(valeur_seuil_max < "0101000000" ) then (faux) --correlation <= '0';--Signal decorrele --else --if (valeur_seuil_max < "0101011110" ) then -- data_correle <= '0' ; -- else data_correle <='1'; --end if; --correlation <='1'; --end if; --end process detection; --data_av_decodee_clk160nco <= data_correle ; --end arch; --***************************************************************************** --DECODEUR DIFFERENTIELLE -- 04/04/2005 Mise à jour dans projet DLL seule --Permet le décodage différentielle dn=not(tn XOR tn-1) --15/03/2005 resynchronise data_n pour que le XOR se fasse correctement --17/03/2005 Suppression de detect_front --20/05/2005 Test de la version complète --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; entity decodeur is port ( clk160nco:in std_logic; rst:in std_logic;

Page 212: 83240798 These Celine

ANNEXES

-201-

dump_r_clk40nco : in std_logic;--Signal de début de symbole data_av_decodee_clk160nco : in std_logic;--Signal issu de test donnee (signal entre 0 et 1) sortie_clk160nco : out std_logic--signal en sortie du système Emetteur /Récepteur ); end decodeur; architecture arch of decodeur is signal data_n : std_logic;--15/03permet de faire le décodage différentielle (donnée -1) signal data_n_1 : std_logic; signal detect_front_clk160nco : std_logic;--17/03--signal détectant le front sur dump signal dump_intermediaire_clk160nco: std_logic; signal dump_resynchronise_clk160nco: std_logic; signal dump_rideau1 : std_logic; signal dump_rideau2 : std_logic; signal sortie1_clk160nco: std_logic;--16/03 begin --Resynchronisation du signal dump sur une horloge 160Mhz re_synchro: process (rst,clk160nco) begin if (rst='1') then dump_intermediaire_clk160nco <= '0'; dump_resynchronise_clk160nco <= '0'; data_n <= '0'; --15/03 data_n_1 <= '0'; --15/03 dump_rideau1 <= '0'; dump_rideau2 <= '0'; elsif(rising_edge(clk160nco)) then data_n_1 <=data_av_decodee_clk160nco;--15/03 data_n <=data_n_1;--15/03 dump_intermediaire_clk160nco <= dump_r_clk40nco; dump_resynchronise_clk160nco <= dump_intermediaire_clk160nco; dump_rideau1 <= dump_resynchronise_clk160nco; dump_rideau2 <= dump_rideau1; end if; end process re_synchro; decodage : process(clk160nco,rst) begin if (rst = '1') then sortie1_clk160nco <='0'; detect_front_clk160nco <= '0'; elsif rising_edge(clk160nco) then --Permet de reagir sur le front montant de dump -- if (dump_intermediaire_clk160nco = '1'and dump_resynchronise_clk160nco='0' and detect_front_clk160nco = '0') then -- if (dump_intermediaire_clk160nco = '1'and dump_resynchronise_clk160nco='0') then if (dump_rideau1 = '1'and dump_rideau2='0' and detect_front_clk160nco = '0') then sortie1_clk160nco <= not(data_n_1 xor data_n); detect_front_clk160nco<= '1';--17/03 else detect_front_clk160nco <='0'; --17/03 sortie1_clk160nco <= sortie1_clk160nco; end if; --If dump end if;--If clk_c end process decodage; sortie_clk160nco <= sortie1_clk160nco; end arch;

Page 213: 83240798 These Celine

ANNEXES

-202-

--************************************************* --Multiplication pour la réception --03/11/2004 --31/03/2005--Mise à jour dans nouveau projet --20/05/2005 Test de la version complète --************************************************* library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; entity multiplieur_r is port ( rst: in std_logic; code_clk40nco : in std_logic; data_codee_clk40e : in signed (3 downto 0); data_multi_clk40nco: out signed (3 downto 0) ); end multiplieur_r; architecture arch of multiplieur_r is signal pn_code_bus : std_logic_vector(3 downto 0); signal data_multi_clk40nco_int : std_logic_vector(3 downto 0); begin --data_multi_clk40nco <= "0000" when(rst = '1') --Définition comportementale de la fonction « multiplication » -- else data_codee_clk40e when(code_clk40nco = '1') -- modif CG -- else -data_codee_clk40e ; -- modif CG -- else data_codee_clk40e ; -- modif CG pn_code_bus(3 downto 0) <= "0111" when(code_clk40nco = '1') else "1001";-- Mise sur 4 bits du PN_Code data_multi_clk40nco_int(3) <= not(data_codee_clk40e(3) xor pn_code_bus(3)) after 1 ns; data_multi_clk40nco_int(2) <= not(data_codee_clk40e(2) xor pn_code_bus(2)) after 1 ns; data_multi_clk40nco_int(1) <= not(data_codee_clk40e(1) xor pn_code_bus(1)) after 1 ns; data_multi_clk40nco_int(0) <= not(data_codee_clk40e(0) xor pn_code_bus(0)) after 1 ns; data_multi_clk40nco <= "0111" when(data_multi_clk40nco_int = "0001") else "1001"; end arch; --***************************************************************************** -- INTEGRATEUR/BLOQUEUR -- Intégrateur /Bloqueur avec comme fréquence d'échantillonnage de 160Mhz --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity integ_dump is port ( clk160nco : in std_logic; rst : in std_logic; dump_clk40nco : in std_logic; data_multi_clk40nco : in signed (3 downto 0); detect_front: out std_logic;--01/04/2005 result_clk160nco : out signed (M downto 0) );

Page 214: 83240798 These Celine

ANNEXES

-203-

end integ_dump; architecture arch of integ_dump is signal acc_clk160nco : signed (M downto 0); -- signal accumulation pour l'integrateur signal acc_test_clk160nco : signed (M+1 downto 0); -- signal accumulation pour l'integrateur signal result1_clk160nco : signed (M downto 0);--signal donnant le résultat final (donc à chaque dump) signal detect_front_clk160nco : std_logic;--permet de détecter le front montant sur dump signal dump_intermediaire_clk160nco: std_logic; signal dump_resynchronise_clk160nco: std_logic; begin --Resynchronisation du signal dump sur une horloge 160Mhz re_synchro: process (rst,clk160nco) begin if (rst='1') then dump_intermediaire_clk160nco <= '0'; dump_resynchronise_clk160nco <= '0'; elsif(rising_edge(clk160nco)) then dump_intermediaire_clk160nco <= dump_clk40nco; dump_resynchronise_clk160nco <= dump_intermediaire_clk160nco; end if; end process re_synchro; integration:process(clk160nco,rst)--Horloge de 160 Mhz begin if (rst = '1') then --result_clk160nco <=(M downto 0 => '0'); result1_clk160nco <=(M downto 0 => '0'); acc_test_clk160nco <=(M+1 downto 0 => '0'); acc_clk160nco <=(M downto 0 => '0'); detect_front_clk160nco <= '0'; elsif rising_edge(clk160nco ) then if (dump_intermediaire_clk160nco = '1'and dump_resynchronise_clk160nco='0' and detect_front_clk160nco = '0') then if(acc_test_clk160nco(M+1) = '0') then if(acc_test_clk160nco(M) = '1') then result1_clk160nco(M) <= '0'; result1_clk160nco(M-1 downto 0) <= (others => '1'); else result1_clk160nco <= ('0' & acc_test_clk160nco(M-1 downto 0)); end if; else if(acc_test_clk160nco(M) = '0') then result1_clk160nco(M) <= '1'; result1_clk160nco(M-1 downto 0) <= (others => '0'); else result1_clk160nco <= ('1' & acc_test_clk160nco(M-1 downto 0)); end if; end if; acc_clk160nco <= (others => '0'); acc_test_clk160nco <= (others => '0'); detect_front_clk160nco <='1'; else detect_front_clk160nco <='0'; acc_clk160nco <= acc_clk160nco + data_multi_clk40nco; if(data_multi_clk40nco(3) = '0') then

Page 215: 83240798 These Celine

ANNEXES

-204-

acc_test_clk160nco <= acc_test_clk160nco + ('0' & data_multi_clk40nco); else acc_test_clk160nco <= acc_test_clk160nco + ('1' & data_multi_clk40nco); end if; end if;--If dump end if;--If Clk_160 end process integration; result_clk160nco <= result1_clk160nco when(detect_front_clk160nco <='1') else (others => '0') when(rst = '1'); end arch; --***************************************************************************** --SELECTION PN_CODE --15/04/2005 -- MODULE permettant de remettre la synchro sur la voie 1. -- Etat Repos: Initialisation -- Etat Sb1: Synchronisation sur la voie 1 -- Etat Sbn1:Synchronisation sur une voie k , mise à jour (maj) de la valeur d -- Etat Sbn2:Synchronisation sur une voie k , remise à 0 de maj -- Etat Sbn3:Cas d'une desynchronisation --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all;--Bibliothèque utilisé pour un nombre signed entity dephaseur_pncode is port ( clk40nco :in std_logic; rst :in std_logic; maj: out std_logic; k_n : in std_logic_vector(14 downto 0); d : out std_logic_vector(0 to 11) ); end dephaseur_pncode; architecture arch of dephaseur_pncode is type sync0_type is(repos, sb1, sbn1, sbn2, sbn3); signal Sync0 : Sync0_type; signal d_table:std_logic_vector(0 to 11); begin d_table <= x"800" when(k_n="000000000000001") else x"b00" when(k_n="000000000000010") else --X"900" x"b00" when(k_n="000000000000100") else x" b00" when(k_n="000000000001000") else x"700" when(k_n="000000000010000") else x"E00" when(k_n="000000000100000") else x"500" when(k_n="000000001000000") else--X500 x"b00" when(k_n="000000010000000") else x"D00" when(k_n="000000100000000") else x"300" when(k_n="000001000000000") else x"600" when(k_n="000010000000000") else x"C00" when(k_n="000100000000000") else x"100" when(k_n="001000000000000") else x"200" when(k_n="010000000000000") else x"400" when(k_n="100000000000000") ; p1:process(clk40nco,rst)

Page 216: 83240798 These Celine

ANNEXES

-205-

begin if (rst = '1') then d <= x"800"; Sync0 <= repos; maj <= '0'; elsif rising_edge(clk40nco) then case Sync0 is when repos => maj <= '0'; d <= x"800"; if(k_n="000000000000001" or k_n="000000000000000" ) then Sync0 <= sb1; else Sync0 <= sbn1; end if; when sb1 => d <= x"800"; maj <= '0'; if(k_n="000000000000001" or k_n="000000000000000" ) then Sync0 <= sb1; else Sync0 <= sbn1; end if; when sbn1 => d <= d_table; maj <= '1'; Sync0 <= sbn2; when sbn2 => d <= d_table; maj <= '0'; if(k_n="000000000000000" or k_n="000000000000001" ) then Sync0 <= sbn3; else Sync0 <= sbn2; end if; when sbn3 => d <= d_table; maj <= '0'; if(k_n="000000000000001" or k_n="000000000000000" ) then Sync0 <= sbn3; else Sync0 <= sbn1; end if; when others => null; end case; end if; end process; end arch; --************************************************************************** -- Fonction Test de seuil --02/11/2004 --************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity test_seuil is port ( detect_front : in std_logic;--01/04--signal de début de symbole data_desetalee_clk160nco : in signed(M downto 0);--signal issu du I&D SEUIL : in signed(15 downto 0);

Page 217: 83240798 These Celine

ANNEXES

-206-

correlation:out std_logic; data_av_decodee_clk160nco: out std_logic --signal entre 0 et 1 en fonction du bit de signe ); end test_seuil; architecture arch of test_seuil is signal valeur_seuil_max: signed(M downto 0); signal data_correle :std_logic ; --affectation du bit de signe begin detection :process begin wait until detect_front='1'; if (detect_front'EVENT and detect_front ='1') then valeur_seuil_max <= abs (data_desetalee_clk160nco); if(valeur_seuil_max > SEUIL) then data_av_decodee_clk160nco <= not(data_desetalee_clk160nco(M));--permet d'obtenir selon le bit de signe un 1 ou 0 pour la sortie correlation <='1'; else data_av_decodee_clk160nco <= '1'; correlation <= '0'; --Signal decorrele end if; end if; end process detection; end arch; --**************************************************************************************** -- Filtre de correlation avec fifo -- Filtre de correlation où l'on mémorise l'entrée . Ceci permet facilement de changer l'équation aux différences -- 2 process fifo une pour l'entrée (X(n)) et l'autre pour la sortie (Y(n)) -- Eq différence du filtre de corrélation -- Y(n)=6 X(n)+4 X(n-1)- Y(n-1) .Les cstes 4 et 6 sont definit pour 1µs --20/05/2005 Test de la version complète ---*************************************************************************************** library IEEE; library std; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; entity filtre_fifobis is port ( clk160nco: in std_logic; rst: in std_logic; data_absolu_clk160nco : in signed(9 downto 0); --data_filtre_clk160nco: out signed(9 downto 0) data_filtre_clk160nco: out signed(10 downto 0) ); end filtre_fifobis; architecture arch of filtre_fifobis is --déclaration des variables de la fifo pour le filtre avec constantes CT1(12)/CT2(998)/CT3(1024) signal data_out_clk160nco : signed(10 downto 0); signal fifo_x_n_clk160nco : signed(10 downto 0); --Signal de droite de la fifo_X --06/04/2005

Page 218: 83240798 These Celine

ANNEXES

-207-

signal fifo_x_nm_clk160nco : signed(10 downto 0); --signal de gauche de la fifo_X(n-1)--06/04/2005 signal fifo_y_nm_clk160nco : signed(10 downto 0);--Signal de droite de la fifo_Y --06/04/2005 signal fifo_y_n_clk160nco : signed(10 downto 0);--signal de gauche de la fifo_y(n-1) --06/04/2005 signal dump_r_rideau1:std_logic; signal dump_r_rideau2:std_logic; signal somme : signed(10 downto 0); begin --Définition de la fifo pour X fifo_x:process(clk160nco,rst) begin if (rst = '1') then fifo_x_n_clk160nco <= (others =>'0');--def X(n)--06/04/2005 fifo_x_nm_clk160nco <= (others =>'0');--def X(n-1)--06/04/2005 elsif rising_edge(clk160nco) then if(data_absolu_clk160nco(9) = '1') then fifo_x_nm_clk160nco(10 downto 0) <= data_absolu_clk160nco(9) & '1' & data_absolu_clk160nco(8 downto 0) ; else fifo_x_nm_clk160nco(10 downto 0) <= data_absolu_clk160nco(9) & '0' & data_absolu_clk160nco(8 downto 0) ; end if; --If data_absolu fifo_x_n_clk160nco <= fifo_x_nm_clk160nco ; end if; --If rst end process fifo_x; --Définition de la fifo pour Y fifo_y:process(clk160nco,rst) begin if (rst = '1') then fifo_y_n_clk160nco <= (others =>'0');--def y(n) fifo_y_nm_clk160nco <= (others =>'0');--def y(n-1) elsif rising_edge(clk160nco) then fifo_y_nm_clk160nco <= data_out_clk160nco; fifo_y_n_clk160nco <= fifo_y_nm_clk160nco ; end if; --If rst end process fifo_y; --Définition de l'équation aux différences somme <= ( fifo_x_nm_clk160nco + fifo_x_n_clk160nco); --data_out_clk160nco <= ( fifo_x_nm_clk160nco + fifo_x_n_clk160nco) / 2;--Bonne valeur pour le gain data_out_clk160nco <= ( fifo_x_nm_clk160nco + fifo_x_n_clk160nco) / 2; --Affectaiton sur 10 bits --data_filtre_clk160nco<=data_out_clk160nco(10 downto 1); data_filtre_clk160nco <= data_out_clk160nco; end arch;

Page 219: 83240798 These Celine

ANNEXES

-208-

-- ************************************************************************************ -- NUMERICAL CONTROLLED OSCILLATOR ( NCO ) -- oscillateur controlé numériquement permet d'avoir en fonction des données -- 02/11/2004 ---Mise à jour des fichiers --01/04/2005 --Mise à jour des fichiers -- Sortie: Horloge dont la période varie en fonction du mot d'entrée --20/05/2005 Test de la version complète -- ************************************************************************************ library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity nco is port ( clk_640 : in std_logic; rst : in std_logic; -- discri_moyennee_clk160nco : in signed (10 downto 0); discri_moyennee_clk160nco : in signed (9 downto 0); clk_NCO : out std_logic ); end nco; architecture arch of nco is signal n : signed(15 downto 0); --signal n : signed(13 downto 0); signal clk_out2 :std_logic:='0'; signal clk_NCO1 :std_logic:='0'; signal clk_out1 :std_logic:='0'; signal discri_divise : signed (9 downto 0); begin -- processus d'incrémentation du registre de la valeur de l'entrée à chaque front montant p1 :process(clk_640, rst) begin if (rst = '1') then clk_NCO1 <='1'; n (15 downto 0) <= (others => '0'); elsif rising_edge(clk_640) then n <= n+16384+discri_moyennee_clk160nco; --16384 = 2(exp14) -- affectation de la sortie (bit de poids fort) clk_NCO1 <= n(15); end if;--fin du clock end process p1; p : process(clk_NCO1) begin if falling_edge(clk_NCO1) then clk_out1 <= not clk_out1; end if; end process p; p3 : process(clk_out1) begin if falling_edge(clk_out1) then

Page 220: 83240798 These Celine

ANNEXES

-209-

clk_out2 <= not clk_out2; end if; end process p3; clk_NCO <= clk_NCO1; discri_divise(9 downto 0) <= "11" & discri_moyennee_clk160nco(8 downto 1) when(discri_moyennee_clk160nco(9) = '1') else "00" & discri_moyennee_clk160nco(8 downto 1); end arch; --**************************************************************************** -- GENERATEUR DE PN CODE du récepteur pour synchronisation N branches -- --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity gene_code_r_N_synchro is port ( rst:in std_logic; clk40nco : in std_logic; cn_code : in std_logic_vector(11 downto 0); synchro_clk160nco: in std_logic ; maj: in std_logic; d: in std_logic_vector(0 to 11); code_clk40nco : out std_logic; dump_clk40nco : out std_logic ); end gene_code_r_N_synchro; architecture arch of gene_code_r_N_synchro is signal a : std_logic_vector (0 to 11); signal q : std_logic_vector (1 to 11); signal dump1_e_clk40e :std_logic; -- initialisation du registre des bascules d --signal d : std_logic_vector(0 to 11) := "100000000000"; signal d_int : std_logic_vector(0 to 11); signal quatre : unsigned(1 downto 0);--signal pour diviser par 4 begin --calcul des valeurs binaires réinjectées dans le registre : a(0) <= cn_code(0) and d_int(0); a(1) <= cn_code(1) and d_int(0); a(2) <= cn_code(2) and d_int(0); a(3) <= cn_code(3) and d_int(0); a(4) <= cn_code(4) and d_int(0); a(5) <= cn_code(5) and d_int(0); a(6) <= cn_code(6) and d_int(0); a(7) <= cn_code(7) and d_int(0); a(8) <= cn_code(8) and d_int(0); a(9) <= cn_code(9) and d_int(0); a(10) <= cn_code(10) and d_int(0); a(11) <= cn_code(11) and d_int(0); --calcul des prochaines valeurs du registre : q(1) <= d_int(1) xor a(0); q(2) <= d_int(2) xor a(1);

Page 221: 83240798 These Celine

ANNEXES

-210-

q(3) <= d_int(3) xor a(2); q(4) <= d_int(4) xor a(3); q(5) <= d_int(5) xor a(4); q(6) <= d_int(6) xor a(5); q(7) <= d_int(7) xor a(6); q(8) <= d_int(8) xor a(7); q(9) <= d_int(9) xor a(8); q(10) <= d_int(10) xor a(9); q(11) <= d_int(11) xor a(10); -- initialisation du registre --processus de réaffectation du registre : p1 : process(clk40nco,rst) begin if(rst = '1') then d_int <= "100000000000"; dump1_e_clk40e <= '0'; quatre <= "00"; elsif (rising_edge(clk40nco)) then quatre <= quatre + "01"; if(maj='1') then d_int <=d; end if; --génération de l'horloge de bloquage : if q(1 to 11)&a(11)="100000000000" and maj='0' then -- and dump1_e_clk40e='0' then dump1_e_clk40e <= '1'; else dump1_e_clk40e<='0'; end if; if (quatre = "00" ) and maj='0' then --pour division par quatre --réaffectation du registre: d_int(0) <= q(1); d_int(1) <= q(2); d_int(2) <= q(3); d_int(3) <= q(4); d_int(4) <= q(5); d_int(5) <= q(6); d_int(6) <= q(7); d_int(7) <= q(8); d_int(8) <= q(9); d_int(9) <= q(10); d_int(10)<= q(11); d_int(11)<= a(11); end if; end if; end process p1; dump_clk40nco<=dump1_e_clk40e; code_clk40nco<=d_int(0); end arch;

Page 222: 83240798 These Celine

GLOSSAIRE

-211-

GLOSSAIRE

Page 223: 83240798 These Celine

GLOSSAIRE

-212-

ASIC : Application-Specific Integrated Circuit AWGN : Additif White Gaussian Noise CAO : Conception assisté par Ordinateur CDMA : Carrier Division Multiple Access DBPSK : Differential Quadrature Phase Shift Keying DSP : Digital Signal Processing DLL : Delay Locked Loop (boucle à verrouillage de délai) DS-SS : Direct Sequence Spread Spectrum FPGA : Field Programmable Gate Array Gp : Gain en traitement HDL : Hardware Description Language IP : Intellectual Property ( propriété intellectuelle) ISM : Industrial Scientific & Medical ITRS : International Technology Roadmap for Semiconductors LUT : Look Up Table M : Nombre d’échantillons par symbole N : Longueur de PN-Code NCO : Numerical Controlled Oscillator (Oscillateur Numérique Contrôlé en Tension) PN-Code : Pseudo-Noise Code (Code pseudo-aléatoire) RASE : Rapid Acquistion by Sequential Estimation RII : Réponse Impulsionnelle Infinie RTL : Register transfer language SNR : Signal Noise Ratio SOC : System On Chip TEB : Taux d’erreur sur le Bit TDL : Tau Dither Loop VHDL : VHSIC Hardware Description Language VHDL-AMS : VHDL Analog and Mixed Signal

Page 224: 83240798 These Celine

RESUME

-213-

« Etude et intégration numérique d’un système multicapteurs AMRC de télécommunication basé sur un prototype virtuel utilisant le langage de haut

niveau VHDL-AMS » Résumé :

L’industrie des composants et des modules électroniques est orientée vers des systèmes de plus en plus complexes et intégrés. Aujourd’hui, la conception système tend vers la conception multidisciplinaire et doit faire cohabiter sur une même puce des fonctions mixtes spécifiques analogiques/numériques, des microprocesseurs et également des interfaces logicielles. Le récent standard VHDL-AMS (Very High Description Language – Advanced and Mixed System) semble répondre à cette problématique de conception, en ajoutant à la modélisation des signaux discrets la gestion des signaux à temps continus. Les travaux de thèse présentés dans ce mémoire appliquent la notion de prototypage virtuel à un système multicapteurs et multiutilisateurs de communication hertzienne émetteur/récepteur dans la bande libre ISM. La première partie présente un état de l’art de la conception système ainsi que les outils logiciels dédiés. Par suite, tous les étages numériques et analogiques sont développés sous le standard VHDL-AMS. Notre étude se focalise alors sur le choix de la topologie de l’organe de synchronisation et de poursuite, fonctions clés des communications à étalement de spectre. Afin de compléter les bibliothèques dédiées aux télécommunications en langage VHDL-AMS, un modèle de canal AWGN est proposé, intégrant un générateur de bruit (méthode mathématique de Box-Muller) et un module de retard paramétrable. Enfin, un prototype de tests est développé, basé sur une implantation des fonctions numériques dans un circuit FPGA, nous permettant d’évaluer les performances d’un tel système en terme de débit, de taux d’erreurs sur le bit et d’occupation matérielle.

Mots clés : Langage VHDL-AMS, prototypage virtuel, étalement de spectre par séquence directe, synchronisation série, boucle à verrouillage de délai, circuit FPGA.

« Study and digital integration of a CDMA multisensors

telecommunications system based on a virtual prototype using VHDL-AMS high level language »

Abstract :

Today, requirements in system designs are extending more and more from electronic design (analogue and digital) to multidiscipline design. These current needs imply implementation of methodologies to optimize and to make the CAD product reliable. The recent VHDL-AMS standard seems to fit very well. This thesis presents an application of virtual prototype dedicated to a multisensor and multiuser DS-SS (Direct Sequence Spread Spectrum) transceiver system using ISM unlicensed band. The first part describes the state of the art of system design and software tools. After this, the whole digital and analogue stages will be developed under VHDL-AMS standard. Our study will focus on the synchronization and tracking entity topology choice, which are the main functions of a spread spectrum communication device. In order to complete VHDL-AMS library dedicated to telecommunication, a model of AWGN channel including a noise generator (Box-Muller method) will be proposed. Finally, a hardware prototype will be developped, based on digital function implantations in a FPGA chipset allowing to assess such a system data rate, bit error rate and size performances.

Key words : VHDL-AMS language, virtual prototype, Direct Sequence Spread Spectrum (DSSS), serial synchronization, Delay Locked Loop (DLL), FPGA circuit.