Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Introduction
4. Le codeur
5. Le générateur pseudo-aléatoire
6. Le diviseur
8.3. Codeur
1. Introduction
L’évolution des circuits intégrés numériques, en particuliers les circuits programmables
(CPLD, FPGA), conduit le concepteur à réaliser des systèmes de plus en plus complexe.
Notre mini projet a pour but de nous familiariser avec le langage VHDL par l’étude d’un
émetteur Manchester.
Nous allons segmenter notre travail en quatre(4) grandes parties :
• présentation du problème et justification de l’utilisation du code Manchester
• fonctions à implanter.
• synthèse de l’émetteur.
• reprendre la synthèse en langage VHDL.
Pour que la transmission soit optimale, il est nécessaire que le signal soit codé de façon à
faciliter la transmission sur le support physique. Il existe pour cela différents systèmes de
codage pouvant se classer en deux catégories :
-le codage à deux niveaux : le signal peut prendre uniquement une valeur strictement négative
ou strictement positive.
-le codage à trois niveaux : le signal peut prendre une valeur strictement négative, nulle ou
strictement positive.
Le codage NRZ
Le codage NRZ (non Return to zéro) est le premier système de codage, car le plus simple. Il
consiste à transformer les 0 en –X et les 1 en +X, de cette façon on a un codage bipolaire dans
lequel le signal n’est jamais nul. Par conséquent, le récepteur peut déterminer la présence ou
non d’un signal.
Il note aussi un codage NRZI qui est sensiblement différent du codage NRZ. Avec ce codage,
lorsque le bit est à 1, le signal change d’état après le top d’horloge. Lorsque le bit est à 0, le
signal ne subit aucun changement d’état.
Par contre, il possède un défaut : la présence d’un courant continu lors d’une suite de 0,
gênant la synchronisation entre émetteur et récepteur.
Le codage Manchester
Le codage Manchester, également appelé codage biphasé introduit une transition au milieu de
chaque intervalle. Il consiste en fait à faire un OU exclusif (XOR) entre le signal et le signal
d’horloge, ce qui se traduit par un front montant lorsque le bit est à 0, un front descendant
dans le cas contraire. L’utilisation de ce codage supprime alors la composante continue.
horloge
oscillateur d'émission générateur
diviseur
de référence pseudo-aléatoire
données
NRZ
codeur
CPLD
NRZ
MAN
H
NRZ =0→MAN =H
MAN = NRZ ⊕ H
Ainsi la sortie MAN ne dépend pas d’un état précédent, on a donc une fonction
combinatoire.
5. Le générateur pseudo-aléatoire
Le générateur pseudo-aléatoire génère une suite périodique de (2 -1) bits codés NRZ à partir
N
On a bien une succession de niveau aléatoire sur 15bits que l’on a ensuite periodisée, c’est
ainsi que l’on peut parler de suite pseudo-aléatoire.
A B Q (XOR) /Q (XNOR)
0 0 1 0
0 1 0 1
1 0 0 1
1 1 1 0
6. Le Diviseur
A l’aide du logiciel nous avons crée un fichier divlogiciel.gdf dont le schéma est représenté
ci-dessous.
Ainsi nous avons effectué une simulation du diviseur 16 dont le chronogramme est représenté
ci-dessous :
D Ck Qn+1 n+1
0 0 1
1 1 0
X 0 Qn n
C’est une bascule qui a deux entrées (entrée D et l’horloge) et une sortie. A chaque front
montant d’horloge, Q recopie l’entrée D.
sa fonction est donc une mémoire puisque l’information en entrée se retrouve en sortie après
chaque coup d’horloge. Cette bascule peut réaliser une division par 2 en réinjectant la sortie
a l’entrée D. c’est ainsi qu’on obtient le diviseur par 16 ci dessous en mettant 4bascules
Q
en cascades.
7. Synthèse par macro-fonctions et simulation de l’émetteur
Par le biais du logiciel MAX+plus les fonctions précédemment crées sont implantées dans des
composants qui nous permettent ainsi de simuler l’ensemble du montage.
On voit sur les chronogrammes des impulsions parasites qui sont dues à un décalage entre les
données NRZ et l’horloge d’émission. Ces impulsions parasites n’ont en générale aucune
incidence sur un système réel car elles seraient supprimées par les filtres de sortie.
Dans notre simulation la solution proposée pour ce problème consiste à resynchroniser la
sortie du codeur en utilisant un montage mémoire utilisant une bascule D (schéma ci-
dessous).
Simulation
Signal parasités
Nous observons bien que le fait de resynchroniser la sortie du codeur avec un montage
mémoire (bascule D) entraîne bien une disparition des impulsions parasites.
8. Synthèse en VHDL et simulation de l’Emetteur.
Nous avons écris un programme qui décrit un diviseur de fréquence permettant d’obtenir en
sortie deux signaux de fréquence 8 fois et 16 fois plus faible que celle du signal d’entrée.
Programme :
Nous avons effectué une simulation du programme afin de vérifier son fonctionnement.
Le chronogramme est représenté ci-dessous.
Simulation
On a bien pour le signal S8 une période 8 fois plus grande que le signal H
Idem pour le signal S16 avec une période 16 fois plus grande.
Simulation :
Le chronogramme de NRZ montre bien une séquence aléatoire e niveau logique recopiée tout
les 16 fronts d’horloge.
Ce programme peut être décris de plusieurs façons ici on remplace la boucle « for » par
l’opérateur de concaténation « & ».
8.3 - Le codeur
Le codeur est en fait une porte xor et nous avons décris son fonctionnement grâce a un
programme VHDL
H H
NRZ =0→MAN =H
Après avoir décri par VHDL touts les macro-fonctions de l’émetteur nous les avons assemblés
pour donner le montage suivant.
Simulation :
L’émetteur Manchester est bien généré par le montage. Sur les chronogrammes précédent on
peut vérifier sont fonctionnement et aussi les différente étapes de traitement du signal
notamment le diviseur de fréquence, le générateur aléatoire, le codeur et enfin la suppression
des glitchs.