Travaux Pratiques de VHDL. Fabrice Monteiro



Documents pareils
Université de La Rochelle. Réseaux TD n 6

Manipulations du laboratoire

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

Expérience 3 Formats de signalisation binaire

Fonctions de la couche physique

Transmission de données. A) Principaux éléments intervenant dans la transmission

Acquisition et conditionnement de l information Les capteurs

Chaine de transmission

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

TP Modulation Démodulation BPSK

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION

LABO PROJET : IMPLEMENTATION D UN MODEM ADSL SOUS MATLAB

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Les techniques de multiplexage

VIII- Circuits séquentiels. Mémoires

TEPZZ A_T EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 ( ) G06K 19/077 (2006.

ISO/CEI NORME INTERNATIONALE

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Chapitre 2 : communications numériques.

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

EMETTEUR ULB. Architectures & circuits. Ecole ULB GDRO ESISAR - Valence 23-27/10/2006. David MARCHALAND STMicroelectronics 26/10/2006

Systèmes de transmission

IFT1215 Introduction aux systèmes informatiques

Initiation à LabView : Les exemples d applications :

I. TRANSMISSION DE DONNEES

Filtres passe-bas. On utilise les filtres passe-bas pour réduire l amplitude des composantes de fréquences supérieures à la celle de la coupure.

ELP 304 : Électronique Numérique. Cours 1 Introduction

Chapitre 2 : Techniques de transmission

Fiche technique CPU 314SC/DPM (314-6CG13)

Représentation des Nombres

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.

Le multiplexage. Sommaire

Norme comptable internationale 33 Résultat par action

SD1+ SD1+ SD1+ ENT ESC

TD1 Signaux, énergie et puissance, signaux aléatoires

Equipement. électronique

Présentation du langage et premières fonctions

Internet et Multimédia Exercices: flux multimédia

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

BeSpoon et l homme Connecté

Transmission d informations sur le réseau électrique

Modules d automatismes simples

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Transmissions série et parallèle

TD 1 - Transmission en bande de passe

Chapitre I La fonction transmission

- Instrumentation numérique -

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Projet de Traitement du Signal Segmentation d images SAR

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Logiciel de Base. I. Représentation des nombres

Conversion d un entier. Méthode par soustraction

GPA770 Microélectronique appliquée Exercices série A

C f tracée ci- contre est la représentation graphique d une

Telecommunication modulation numérique

Mesures et incertitudes

Présentation et installation PCE-LOG V4 1-5

V- Manipulations de nombres en binaire

Mesures de temps de propagation de groupe sur convertisseurs de fréquence sans accès aux OL

Logique séquentielle

Chap17 - CORRECTİON DES EXERCİCES

Transmission des signaux numériques

Evolution de l infrastructure transport

Chapitre 18 : Transmettre et stocker de l information

Signaux numériques : Multiplexage temporel : TDM

Telecommunication modulation numérique

Date : Note /20 : EVALUATION Nom : Prénom : Classe : Traitement sur mots

Continuité et dérivabilité d une fonction

Electron S.R.L. - MERLINO - MILAN ITALIE Tel ( ) Fax Web electron@electron.it

1. PRESENTATION DU PROJET

CCP PSI Mathématiques 1 : un corrigé

Organisation du module

Dan Istrate. Directeur de thèse : Eric Castelli Co-Directeur : Laurent Besacier

Multichronomètre SA10 Présentation générale

Complément d information concernant la fiche de concordance

La couche physique de l ADSL (voie descendante)

Chapitre 13 Numérisation de l information

Télécommunications. Plan

EXCEL TUTORIEL 2012/2013

Réseaux grande distance

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2

Le suivi de la qualité. Méthode MSP : généralités

i7 0 Guide de référence rapide Français Document number: Date:

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

ASR1 TD7 : Un microprocesseur RISC 16 bits

Extrait des Exploitations Pédagogiques

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Chapitre 22 : (Cours) Numérisation, transmission, et stockage de l information

Introduction aux systèmes temps réel. Iulian Ober IRIT

Précision d un résultat et calculs d incertitudes

CONFIGURATION DE L AUTOMATE SIEMENS

La Recherche du Point Optimum de Fonctionnement d un Générateur Photovoltaïque en Utilisant les Réseaux NEURO-FLOUS

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Transcription:

Travaux Pratiques de VHDL Fabrice Monteiro Version: avril 2006

Table des matières 1 Temporisateurs 2 1.1 Introduction.................................... 2 1.2 Proposition d une méthode de résolution..................... 4 2 Sémaphores adaptatifs 5 2.1 Description du problème............................. 5 2.2 Circuit de commande à référence temporelle interne............... 5 2.3 Proposition d une méthode de résolution..................... 6 2.4 Circuit de commande à référence temporelle externe.............. 8 3 Modulateur DQPSK 9 3.1 Présentation du problème et cahier des charges................. 9 3.1.1 Conversion numérique/analogique par PWM.............. 9 3.1.2 Modulations PSK, QPSK et DQPSK................... 10 3.1.3 Modulateur................................ 11 4 Systèmes complexes à virgule fixe 13 4.1 Présentation du problème............................. 13 4.2 Cahier des charges................................ 13 1

Chapitre 1 Temporisateurs 1.1 Introduction La mesure du temps dans un système numérique synchrone est un problème classique auquel il convient d apporter une solution pratique, aussi simple et générale que possible. En effet, nombreux sont les systèmes dans lesquels des mesures du temps sont indispensables. Parmi les différentes mesures habituellement réalisées, l une des plus fréquentes consiste à «générer un délai d attente» de longueur librement et dynamiquement fixée par l utilisateur, c est-à-dire, pendant le fonctionnement normal du système. Deux approches différentes sont à mettre en œuvre selon que la mesure est effectuée à l aide de la référence de temps interne (horloge interne clk du système) ou d une référence de temps externe. FIG. 1.1 Schémas symboliques (vue externe) des temporisateurs. Les dispositifs matériels consacrés à cette mesure sont généralement connus sous le nom de temporisateur. La figure 1.1 présente les schémas symboliques (vue externe) typiques de temporisateurs à référence de temps interne (itempo) et externe (etempo). Le temporisateur itempo possède deux entrées et une sortie dont les rôles respectifs sont décrits ci-dessous (par souci de simplification des schémas, les entrées habituelles rst et clk d un système synchrone ne sont pas représentées). L entrée depart est utilisée pour signaler le début d une mesure de délai par l occurence d un front montant sur cette d entrée. Dans la pratique, la détection de front montant doit être synchrone. Il s agit donc de reconnaitre une transition du signal d entrée de 0 à 1 entre deux cycles consécutifs de l horloge clk. Le comptage du délai commence alors immédiatement, lors du cycle d horloge où la détection du front est effective. La valeur du délai (en nombre de cycles de l horloge clk) doit être présente sur l entrée valeur au moment de sa prise en compte, c est-à-dire, lors de la détection de front montant sur l entrée depart. La sortie ok est par défaut au niveau 1. Elle passe au niveau 0 dès le début du décomptage d un délai et repasse à 1 dès que le délai requis (nombre de cycles d horloge) est écoulé. Le fonctionnement de temporisateur itempo est illustré dans l exemple de la figure 1.2. Lors de l activation de rst, la sortie ok du temporisateur passe à 0 pour revenir à 1 dès que rst est 2

relaché. Le temporisateur itempo est réamorçable à tout moment : une nouvelle demande sur depart doit être satisfaite, même s il faut pour cela abandonner une temporisation en cours. FIG. 1.2 Exemple de fonctionnement du temporisateur itempo. Le temporisateur etempo possède trois entrées et une sortie. La différence principale par rapport à itempo est la présence de l entrée reftps dont le rôle est de fournir une référence de temps indépendante de l horloge clk. En effet, en lieu et place des fronts d horloge, etempo compte les impulsions sur l entrée reftps. Dans la pratique, ce sont les fronts montants qui sont pris en compte de manière synchrone. Les rôles des entrées et sorties est donc le suivant. L entrée reftps est celle sur laquelle seront observées les impulsions servant de référence temporelle. Pour le bon fonctionnement du temporisateur, la fréquence du signal d entrée doit impérativement être inférieure ou égale à f clk /2. L entrée depart est utilisée pour signaler le début d une mesure de délai par l occurence d un front montant sur cette d entrée. La détection de front montant doit être synchrone. Le comptage du délai commence alors immédiatement, lors du cycle d horloge où la détection du front est effective. La valeur du délai (en nombre d impulsions sur l entrée reftps) doit être présente sur l entrée valeur au moment de sa prise en compte, c est-à-dire, lors de la détection de front montant sur l entrée depart. La sortie ok est par défaut au niveau 1. Elle passe au niveau 0 dès le début du décomptage d un délai et repasse à 1 dès que le délai requis (en nombre d impulsions sur l entrée reftps) est écoulé. Le fonctionnement de temporisateur etempo est illustré dans l exemple de la figure 1.3. Comme pour itempo, lors de l activation de rst, la sortie ok de etempo passe à 0 pour revenir à 1 dès que rst est relaché. De même, etempo est réamorçable à tout moment : une nouvelle demande sur depart doit être satisfaite, même s il faut pour cela abandonner une temporisation en cours. FIG. 1.3 Exemple de fonctionnement du temporisateur etempo.

1.2 Proposition d une méthode de résolution Plusieurs approches sont possibles pour implanter les temporisateurs itempo et etempo. Parmi celles-ci, l une des plus directes et efficaces consiste à employer un décompteur. Celui-ci est initialisé lors de la détection synchrone de front montant sur depart à la valeur présente sur l entrée valeur, représentative de la durée à décompter. Cette valeur est ensuite décrémentée jusqu à zéro, à chaque front actif de l horloge clk pour itempo, ou lors de la détection synchrone de front montant sur reftps pour etempo. La sortie ok est maintenue au niveau 0 tant que le décompteur n a pas atteint zéro.

Chapitre 2 Sémaphores adaptatifs 2.1 Description du problème Deux routes, l une orientée selon l axe Ouest-Est et l autre selon l axe Nord-Sud, se coupent à un carrefour contrôlé par des sémaphores. La circulation étant en moyenne plus importante (en nombre de véhicules par unité de temps) sur l axe Ouest-Est, la gestion des sémaphores doit privilégier cet axe. Elle doit cependant prendre en compte les fluctuations permanentes de la circulation. Une approche simpliste du problème consisterait à fixer les durées de temporisation des sémaphores de façon différente pour les deux axes (durée du feux «vert» plus longue pour l axe Ouest-Est que pour l axe Nord-Sud). Cependant, cette approche ne convient pas car elle ne permet pas de s adapter aux fluctuations de la circulation. Par conséquent, la solution à retenir doit permettre l adaptation dynamique des durées, de manière à les adapter à la circulation du moment. Dans cette optique, des capteurs ont été placés dans la chaussée au niveau des feux, permettant de vérifier la présence ou non de véhicules. Le circuit de commande des sémaphores doit donc tenir compte en permanence des informations fournies par les capteurs. Dans la suite, l objectif est de réaliser un circuit synchrone de commande des sémaphores. Deux version différentes du circuit seront développées, utilisant des références temporelles différentes (interne pour l une, externe pour l autre) pour les effectuer les diverses mesures de temporisation. 2.2 Circuit de commande à référence temporelle interne Dans cette version du circuit de commande, les différentes durées de temporisation sont mesurées en utilisant l horloge interne clk du système comme référence temporelle. Ce sont donc des temporisateurs de type itempo qui seront employés. La figure 2.1 représente le carrefour et la vue externe du circuit de commande. Les signaux clk et rst constituent respectivement, l horloge système et la commande globale de réinitialisation asynchrone. Les signaux capoe et capns indiquent la présence 1 ou l absence 0 de véhicule sur les axes Ouest-Est et Nord-Sud respectivement. Les signaux feuxoe et feuxns représentent les bus de commande des sémaphores des axes Ouest-Est et Nord-Sud respectivement. La convention suivante est utilisée pour ces bus de commande : les fils d indice 2, 1 et 0 contrôlent respectivement les lampes rouge, orange et verte. L extrait de code VHDL suivant représente la vue externe du contrôleur correspondant à la description précédente. 5

FIG. 2.1 Illustration du carrefour à controler et du circuit de commande. library ieee; use ieee.std_logic_1164.all; entity controleur is port (rst,clk,capoe,capns: in std_logic; feuxoe,feuxns: out std_logic_vector(2 downto 0)); end controleur; Le contrôleur devra respecter l ensemble des contraintes suivantes. 1. Règles sur les priorités de circulation (a) en absence de circulation sur un axe, l autre axe bénéficie des sémaphores à «vert» (b) en absence de circulation, l axe Ouest-Est bénéficie des sémaphores à «vert» 2. Règles sur les durées des feux et sur les conditions d attente (a) la durée minimale d un feux «vert» est de 10 cycles d horloge (b) le feux «orange» dure 1 cycle d horloge (c) à partir de la détection d un véhicule en attente sur un axe à «rouge», le sémaphore devra repasser à «vert» dans un délai n excédant pas 30 cycles d horloge pour l axe Ouest-Est, et 120 cycles pour l axe Nord-Sud 3. Autres règles ou contraintes (a) les informations fournies par les capteurs (relevées à chaque cycle d horloge) sont du type tout ou rien ( 1 ou 0 ) et sont regroupées par axes (capoe et capns) (b) les sémaphores Ouest et Est ont la même valeur et sont commandés par le même bus feuxoe (c) les sémaphores Nord et Sud ont la même valeur et sont commandés par le même bus feuxns (d) la combinaison «rouge / rouge» n existe pas, le passage de «rouge» à «vert» sur un axe est simultané au passage de «orange» à «rouge» sur l autre axe 2.3 Proposition d une méthode de résolution Le circuit de commande des sémaphores peut être construit à l aide du graphe d états de la figure suivante. Il correspond à une machine de «Moore».

L emploi de cette machine requiert l utilisation de 3 temporisateurs auxiliaires de type itempo capables de décompter respectivement 10, 29 et 119 cycles d horloge. Par conséquent, la machine d état doit générer les signaux de commande des temporisateurs en plus des commandes des feux (feuxoe et feuxns). FIG. 2.2 Diagramme de transition d états du controleur. 1. Signification des états A : point de départ après un RESET tous les feux sont éteints B : feuxoe à «vert» et feuxns à «rouge» aucun véhicule en attente en Nord-Sud C : feuxoe à «vert» et feuxns à «rouge» véhicules en attente en Nord-Sud D : feuxoe à «orange» et feuxns à «rouge» E : feuxns à «vert» et feuxoe à «rouge» aucun véhicule en attente en Ouest-Est F : feuxns à «vert» et feuxoe à «rouge» véhicules en attente en Ouest-Est G : feuxns à «orange» et feuxoe à «rouge» 2. Conditions de transition C-ab : capns= 0 C-ac : capoe= 1 and capns= 1 C-ae : capoe= 0 and capns= 1 C-bb : capns= 0 C-bc : capns= 1 C-cc : ok119= 0 and (ok10= 0 or capoe= 1 ) C-cd : ok119= 1 or (ok10= 1 and capoe= 0 ) C-de : capoe= 0 C-df : capoe= 1 C-ee : capoe= 0 C-ef : capoe= 1 C-ff : ok29= 0 and (ok10= 0 or capns= 1 ) C-fg : ok29= 1 or (ok10= 1 and capns= 0 ) C-gb : capns= 0 C-gc : capns= 1 Dans les conditions de transition précédentes, les signaux ok10, ok29 et ok119 représentent les signaux connectés aux sorties ok respectives des trois temporisateurs.

2.4 Circuit de commande à référence temporelle externe Dans cette version du circuit de commande, les différentes durées de temporisation sont mesurées en utilisant une référence de temps externe. Ce sont donc des temporisateurs de type etempo qui seront employés. FIG. 2.3 Vue externe du circuit de commande à référence temporelle externe. La figure 2.3 représente la vue externe du circuit de commande. On peut constater par rapport au circuit de la figure 2.1, la présence du signal reftps qui constitue l entrée pour la référence temporelle externe. Pour la réalisation de cette version du circuit de commande, on peut s inspirer de la méthodologie employée pour la version précédente (à référence temporelle interne). On remarquera cependant que le graphe de transition doit être un peu modifié. En effet, dans le graphe de la figure 2.2, la durée de séjour dans les états D et G était d un seul cycle d horloge : il n était pas nécessaire d employer de temporisateur pour mesurer cette durée. Pour le nouveau circuit de commande, les durées ne sont plus comptées en cycles d horloge mais en nombre d impulsions sur l entrée reftps ce qui oblige à modifier le graphe de contrôle précédent.

Chapitre 3 Modulateur DQPSK 3.1 Présentation du problème et cahier des charges 3.1.1 Conversion numérique/analogique par PWM Les modulations par impulsions codées (MIC), sont des techniques permettant de générer des signaux analogiques à partir de trains d impulsions. Parmi les différentes techniques MIC, l une d entre elle est particulièrement simple à mettre en oeuvre : la modulation par impulsions codées en largeur, nomée Pulse Width Modulation (PWM) en anglais (Modulation de Largeur d Impulsion ou MLI en français). Elle permet de réaliser une conversion numérique/analogique à l aide d un simple filtre analogique de lissage de type passe-bas. FIG. 3.1 Exemple de génération de signal par PWM : (a) avant filtrage, (b) après filtrage. La figure 3.1 montre le processus de génération d un signal analogique : le signal (b) peut être généré (via un filtre passe-bas adapté) à partir du train d impulsion (a). Les bares verticales délimitent les échantillons et indiquent donc la fréquence d échantillonnage. L amplitude des impulsions étant fixe en PWM, la valeur d un échantillon est codé par la durée de l impulsion correspondante. On dit que la durée (ou largeur) de l impulsion est «modulée» par la valeur de l échantillon. D où la dénomination de PWM (ou MLI). Lorsqu un train d impulsions est généré, il représente une succession d échantillons. Le signal analogique correspondant est obtenu après filtrage analogique du train d impulsion. Par conséquent, la synthèse d un signal analogique par PWM consiste simplement à générer un train d impulsions «modulées» en largeur. La figure 3.2 représente un schéma possible d implantation d un générateur de PWM. Il est constitué de deux temporisateurs de type itempo dont l un est utilisé pour mesurer la durée du cycle d échantillonnage et l autre pour mesurer la durée des impulsions. Les entrées NE et NV sont utilisées pour indiquer respectivement les durées de cycle 9

FIG. 3.2 Schéma d implantation d un générateur de PWM. d échantillonnage et d impulsion. Dans la pratique, la durée d un échantillon aura pour valeur T ech = (NE + 1) T clk et la largeur d impulsion T imp = NV T clk, où T clk est la période d horloge. 3.1.2 Modulations PSK, QPSK et DQPSK Les modulations à saut de phase font partie des techniques couramment utilisées en télécommunications. La technique PSK (Phase Shift Keying) est la plus simple d entre elles : c est une modulation qui aux deux valeurs 0 et 1 que peut prendre un bit, associe respectivement deux états de phases opposées φ 0 et φ 1. En QPSK (Quadrature PSK), quatre phases différentes et en quadrature (φ 00, φ 01, φ 10 et φ 11 ) sont utilisées pour représenter des symboles de deux bits. Les figures 3.3 et 3.4 illustrent les principes de fonctionnement respectifs de la PSK et de la QPSK. FIG. 3.3 Modulation PSK. FIG. 3.4 Modulation QPSK. L inconvénient de ces deux types de modulations est leur grande sensibilité aux bruits de phase et aux références temporelles permettant d évaluer la phase du signal. En effet, toute dérive entre la référence de l émetteur et celle du récepteur sera interprétée comme une erreur de phase dont l amplitude s accroît avec le temps. La modulation DQPSK permet de s affranchir des problèmes de références absolue de phase. Elle est de plus particulièrement appréciée pour sa faible sensibilité aux bruits de phase

et à sa robustesse face aux éventuelles dérives temporelles. La différence fondamentale entre les modulations QPSK et DQPSK est le choix de la références de phase. Alors qu une référence absolue de phase est nécessaire en QPSK, c est une référence relative qui est utilisée en DQPSK : en effet, ce n est pas la valeur absolue de la phase qui est prise en considération, mais le saut de phase entre deux symboles successifs. On constatera que la valeur des sauts de phase ne dépend pas d une quelconque référence absolue de phase. Cependant, toute transmission doit commencer par l émission d un symbole non codant (ne représentant aucun bit) qui sert de référence initiale. 3.1.3 Modulateur Du point de vue pratique, un modulateur DQPSK peut être réalisé à l aide d un modulateur QPSK précédé d un transcodeur différenciel. En effet, en cumulant les sauts de phase successifs de la modulation DQPSK, on obtient des valeurs de phases absolues que l on peut virtuellement interpréter comme les valeurs de phase d une modulation QPSK. D autre part, on peut constater qu en QPSK, à valeur de phase différente correspond une combinaison particulière de deux bits. Donc, le transcodeur DQPSK / QPSK doit simplement remplacer la séquence initiale de bits où chaque paire de bits représente un saut de phase, par une nouvelle séquence ou chaque paire de bits représente directement une valeur absolue de phase. La figure 3.5 présente le schéma de principe du modulateur complet DQPSK, sur la base d un transcodeur DQPSK / QPSK, d un modulateur QPSK et d un générateur genepwm. FIG. 3.5 Schéma de principe du modulateur DQPSK. Le modulateur QPSK constitue le cœur de cette architecture. Il est généralement réalisé sous la forme de deux blocs : un codeur et le modulateur proprement dit. Le rôle du modulateur est de générer le signal modulé, de la forme : S(t k ) = A(t k ) exp j (ω(t k ) t k + φ(t k )) Le rôle du codeur est de calculer, pour chaque paire de bits, les paramètres courants de la modulation, à savoir A(t k ), ω(t k ) et φ(t k ). Dans le cas d une modulation QPSK, seul φ(t k ) varie, A(t k ) étant constant et pouvant être choisi égal à 1. Pour sa part, ω(t k ) ne dépend pas du codeur mais doit être fixé par l utilisateur car il détermine le canal d émission. Habituellement, les valeurs de A(t k ) et φ(t k ) sont fournies aux modulateur sous la forme dite I&Q de coordonnées cartésiennes : I(t k ) = A(t k ) cos(phi(t k )) Q(t k ) = A(t k ) sin(phi(t k )) Si cette approche est la plus pertinante quand le modulateur est réalisé sous la forme d un bloc analogique, elle s avère peut efficace en numérique. De plus, dans le cas présent, l amplitude est constante et égale à 1. Le schéma de la figure 3.6 sera dont préféré. En combinant les schémas 3.5 et 3.6, il est possible de combiner les deux blocs transcodeur DQPSK / QPSK et codeur QPSK en un seul que l on nomera codeur DQPSK.

FIG. 3.6 Schéma de principe du modulateur QPSK. Le schéma final complet du modulateur DQPSK est représenté dans la figure 3.7. Sur la sortie valech du modulateur se succèdent les valeurs S(t k ) du signal modulé à convertir par le bloc genepwm. Sur la sortie impulsions du bloc genepwm, se succèdent les impulsions correspondantes. FIG. 3.7 Schéma du modulateur DQPSK. Une deuxième sortie topech est présente sur le bloc genepwm et est utilisée en entrée des deux autres blocs. Ceci est nécessaire car la fréquence d horloge du système ne correspond pas à la fréquence d échantillonage. En effet, il faut plusieurs cycles d horloge pour convertir dans le bloc genepwm, une valeur présente sur l entrée en une impulsion en sortie. Pour une valeur en entrée comprise entre 0 et N 1, l impulsion en sortie doit pouvoir prendre N largeurs différentes pour un intervalle de temps total constant. Si T clk représente la variation minimale de la largeur d impulsion, l intervalle de temps total pour un échantillon sera N T clk. Par conséquent, il est nécessaire d indiquer le cycle d horloge correspondant au changement d échantillon. C est le rôle de la sortie topech. L entrée longech, indique la longueur d un échantillon. Dans la pratique, dans la majorité des architectures, la durée d un échantillon est plus longue d un cycle d horloge que cette valeur. C est la solution qui sera adoptée ici.

Chapitre 4 Systèmes complexes à virgule fixe 4.1 Présentation du problème La conception d un système complexe est une tâche relativement difficile à mener à bien, notamment dans le cadre d un travail en équipe. Généralement, l une des premières tâches consiste à trouver un découpage du problème en sous-problèmes, relativement indépendants, qui permette une implantation en sous-systèmes. Ceux-ci participent conjointement à la réalisation des tâches requises pour atteindre l objectif commun. Par conséquent, les sous-systèmes doivent obligatoirement pouvoir communiquer entre eux. Cela requiert de connaître la nature exacte des informations échangées, à savoir, les types et significations des données ainsi que la chronologie des événements. Dans la pratique, il s agit de définir pour chaque sous-système, outre ses fonctionnalités, son interface de communication. La définition d une interface de communication inclut d une part, la description de sa structure (signaux qui la constituent) et d autre part, la spécification du protocole de communication employé. Ce protocole peut être synchrone ou asynchrone (à ne pas confondre avec le type synchrone du circuit, c est-à-dire, où les blocs combinatoires constitutifs sont interconnectés par des bascules synchrones, cadencés par une horloge commune). Dans le cas d un protocole synchrone, des événements similaires (dans la communication) surviennent à des intervalles de temps réguliers, connus à l avance (numéro de cycle prédéterminé). Ce cas est le plus simple, car il n est pas nécessaire de prévoir de signaux de synchronisation dans l interface : il suffit que chaque sous-système sache dans quelle étape il se trouve (identification de l instant présent). Le cas d un protocole asynchrone est plus difficile à gérer. En effet, cette fois-ci, il est nécessaire d insérer des informations de synchronisation dans la communication, soit par l intermédiaire de signaux additionnels dans l interface, soit d informations additionnelles dans le flux de données, soit par les deux approches simultanément. L emploi d un protocole asynchrone est généralement requis quand il n est pas possible de déterminer à l avance (avant le fonctionnement), la durée de traitement requise par un sous-système (nombre de cycles) pour effectuer une tâche donnée. Dans la suite de ce chapitre, nous nous proposons de réaliser un système composé de deux sous-systèmes entre lesquels la communication requiert un protocole asynchrone. 4.2 Cahier des charges L objectif de ce TP est de réaliser un système numérique capable de calculer les racines d un polynôme du second degré. La figure 4.1 présente l interface de communication externe 13

FIG. 4.1 Définition de l interface du système PolyRes. du système global appelé PolyRes. Il s agit d un système électronique numérique synchrone (les entrées rst et clk ne sont pas représentées). L entrée start sert à indiquer au système qu un nouveau polynôme ax 2 + bx + c est présenté au niveau des entrées a, b et c, celles-ci portant alors les valeurs des coefficients (réels) respectifs du polynôme. La commande start est prioritaire et doit être prise en compte dès le front actif d horloge suivant. La sortie ok sert à indiquer que l extraction des racines du dernier polynôme présenté est terminée et que les parties réelles et imaginaires des racines sont disponibles sur le sorties r1, i1, r2 et i2, respectivement. FIG. 4.2 Définition de l interface du sous-système SqrRoot. Le système PolyRes devra être implanté sous forme de deux sous-systèmes indépendants travaillant conjointement à l extraction des racines. L un des deux sous-systèmes, SqrRoot, doit être dédié au calcul de la racine carrée d un nombre strictement positif. Son interface doit correspondre à la description de la figure 4.2. L entrée dat_ok sert à indiquer au sous-système SqrRoot qu un nombre positif est disponible sur l entrée dat_in pour le calcul de la racine carrée. La sortie rdy_in sert à indiquer que le soussystème SqrRoot est prêt à recevoir une donnée sur l entrée dat_in. La prise en compte d une donnée sur emphdat_in n est donc possible que lorsque dat_ok et rdy_in sont simultanément positionnées à 1. Le calcul de la racine peut (et doit) alors commencer. La sortie rdy_out sert à indiquer qu une donnée est présente sur la sortie res_out. Celle-ci correspond au résultat du dernier calcul de racine effectué. L entrée res_ok sert à indiquer au sous-système SqrRoot si le sous-système utilisateur de res_out est prêt à prendre en compte une donnée présente sur cette sortie, le cas échéant. La prise en compte ne peut avoir lieu que si rdy_out et res_ok sont simultanément positionnées à 1. Le sous-système SqrRoot devra être conçu en limitant le nombre d additions et multiplications réalisées dans chaque cycle d horloge à 1 pour chaque type d opération. Il est à noter que les multiplications ou divisions par des constantes égales à des puissances de 2 peuvent être réalisée par des décalages, sans la moindre utilisation de ressources matérielles. Le deuxième sous-système (interface et contenu) devra être défini dans le respect d un certain nombre de contraintes. L interface devra être compatible avec celle du système global PolyRes et celle du sous-système SqrRoot. Le nombre de multiplications et d additions par cycle d horloge est limité à 1 pour chaque type d opération. L ordonnancement des opérations devra favoriser autant que possible le fonctionnement parallèle des deux sous-sytèmes. Pour la réalisation architecturale de l ensemble du système, on utilisera la représentation en vigule fixe pour tous les nombres (réels) : 16 bits dont 4 après la virgule.