Sie sind auf Seite 1von 30

PROJET VHDL

Page
1 / 23

Nombre d’annexes : 4

Projet VHDL

Détection et Affichage de l’heure émise par


l’horloge atomique de Braunscweig

Régis FOUQUET
Olivier VAUDELIN

Formation Ingénieur Maître


Promotion 2003

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 2

SOMMAIRE

1. OBJECTIFS DU PROJET 3
2. CARACTERISTIQUES DU SIGNAL 3
2.1. L'ÉMETTEUR 3
2.2. LE SIGNAL HORAIRE 4
2.3. LES INFORMATIONS CONTENUES DANS LE SIGNAL HORAIRE 4
2.4. LE RÉCEPTEUR 6
3. ANALYSE FONCTIONNELLE 7
3.1. SCHEMA BLOCS 7
4. DESCRIPTIONS FONCTIONNELLES 8
4.1. LES HORLOGES DE SYNCHRONISATION 8
4.1.1. Pour la synchronisation du signal DCF 8
4.1.1.1. Le code VHDL de la division de fréquence 8
4.1.1.2. La simulation de la division de fréquence 9
4.1.1.3. Synchronisation par bascule D et H= 1Khz 9
4.1.1.4. La simulation de la bascule D de synchro 10
4.2. BLOC DE DETECTION DE DEBUT DE TRAME 11
4.2.1. Code VHDL de la détection de début de trame 11
4.2.2. La Simulation de la détection de début de trame 12
4.3. SELECTION DE LA TRAME MINUTES ET HEURES 13
4.3.1. Code VHDL du compteur par 21 13
4.3.2. Que donne la simulation 14
4.4. LE BLOC DE CONVERSION 14
4.4.1. Code VHDL du signal CONV 15
4.4.2. Les simulations des fonctions CPT150 et CONVERT 16
4.5. LA DE-SERIALISATION DE LA TRAME 17
4.5.1. Code VHDL de la fonction DECALAGE 17
4.5.2. Simulations de la fonction 18
4.6. LE DECODAGE DE L’AFFICHAGE 19
4.6.1. Les données d’entrée, adresses 19
4.6.2. Le contenu de la memoire, le décodage BCD- 7 segments 20
4.6.3. Simulation du décodage Mémoire 20
5. INTEGRATION DES BLOCS 21
6. PROGRAMMATION ET ESSAIS 22
6.1. SCHEMA D’INSTALLATION 22
6.2. ESSAI DE DETECTION 23
7. CONCLUSION 23

ANNEXES

ANNEXE A SUJET DU PROJET


ANNEXE B TABLE DE CODAGE DU DCF-77
ANNEXE C FICHIER DE SIMULATION
ANNEXE D BROCHAGE FPGA-AFFICHEURS

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 3

1. OBJECTIFS DU PROJET

La réception des signaux horaires DCF77 est le seul moyen en Europe d'obtenir une
heure précise, de manière fiable, avec un récepteur simple et peu cher. (La réception de
signaux horaires provenant d'un satellite GPS est plus difficile à mettre en oeuvre).

On peut ainsi recevoir l'heure, la date, et le jour de la semaine. Le changement entre


l'heure d'été et d'hiver est automatique.

Le but de ce projet est de détecter, décoder et afficher en VHDL l’heure absolue émise
par l’émetteur situé en Allemagne. Le décodeur sera intégré dans un FPGA 20K70 de
chez Altera, installé sur un kit pédagogique muni de 4 afficheurs 7 segments

2. CARACTERISTIQUES DU SIGNAL

2.1. L'ÉMETTEUR

L'émetteur des signaux horaires DCF77 est situé en


Allemagne, à Mainflingen (près de Francfort), plus
précisément à 50,02° de latitude Nord, et 9,00° de longitude
Ouest. L'information horaire est donnée par l'horloge
atomique de l'INSTITUT PHYSIQUE ET DE METROLOGIE
DE BRUNSWICK. Cette horloge est très précise, puisque son
écart théorique est de ±1 seconde pour 1 millions d'années.

Grâce à sa position centrale en Europe, à sa puissance


d'émission de 50 kW, ainsi que sa grande puissance
rayonnée (30 kW), les informations de cet émetteur peuvent
être correctement reçues dans un rayon de 2000 km, c'est à
dire dans une grande partie de l'Europe, et même dans
l'extrême nord de l'Afrique.

La porteuse a une fréquence très stable, de 77,5 kHz (d'où le nom 'DCF77') et dérive de
l'horloge atomique. Les faibles fluctuations de cette fréquence sont principalement dues
à la propagation des grandes ondes dans l'atmosphère. Son écart relatif par rapport à la
fréquence de 77,5 kHz est en moyenne sur, 100 jours, de moins de 2.10E-13. Par
conséquent, elle peut être utilisée pour la synchronisation d'oscillateurs nécessitant une
grande précision.

En cas de maintenance ou de dysfonctionnement, un émetteur de réserve est mis en


fonction. Il arrive cependant que les signaux horaires cessent d'être émis, notamment
lors d'orages, pendant un temps généralement très court. Il est donc nécessaire que
l'horloge radiopilotée possède sa propre horloge interne.

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 4

2.2. LE SIGNAL HORAIRE

Le signal horaire DCF77 est composé d'une fréquence porteuse très stable de 77,5
kHz, modulée en amplitude par les signaux horaires codés en BCD (binary coded
digital).

L'onde porteuse est modulée par des impulsions, au rythme d'une par seconde. Ces
impulsions ce traduisent chaque seconde par une diminution de 25% de l'amplitude du
signal reçu. La durée d'une impulsion, détermine le niveau du bit reçu, à savoir qu'une
impulsion de 100 ms représente un bit à 0 et qu'une impulsion de 200 ms représente un
bit à 1.

Les informations horaires sont émises par trame d'une minute. Chaque trame est
divisée en soixante secondes, chacune d'entre elles débutant par le front de l'impulsion.
Il faut noter que, pour la 59ème seconde, il n'y a pas d'impulsion afin de permettre au
décodeur de repérer le début d'une trame. Ainsi, l'impulsion suivante détermine le début
de la trame suivante. Toute absence d'impulsion plus grande que 999 ms doit donc être
considérée comme le début d'une nouvelle trame.

2.3. LES INFORMATIONS CONTENUES DANS LE SIGNAL HORAIRE

Voici, sous forme schématique, la signification des 59 bits reçus durant une minute :

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 5

• 0 (M) : Début de trame (bit à 1)

• 1 - 14 : Réservé pour une utilisation future

• 15 (R) : L'emetteur de réserve est actif lorsque ce bit est à 1.

• 16 (A1) : Annonce de l'heure d'hiver.


• 17, 18 (Z1, Z2) : Ces deux bits codent le fuseau horaire actuel.
Z1 Z2 Fuseau horaire
0 1 CET
1 0 CEST
CET (Central European Time) = UTC+1h
CEST (Central European Sommer Time) = UTC+2h

CET correspond à l'heure d'hiver, et CEST correspond à l'heure d'été. Il s'agit de l'heure
légale de la plupart des pays d'Europe.
• 19 (A2) : Indique qu'une seconde va être supprimée pour corriger les irrégularités de la rotation de
la terre.
• 20 (S) : Bit de début de codage des informations horaires (toujours à 1).
• 21 - 27 : Minutes codées en BCD, bit de poids faible en premier.
N° bit 21 22 23 24 25 26 27
Valeur 1 2 4 8 10 20 40

• 28 (P1) : Bit de parité (parité paire) des minutes.


• 29 - 34 : Heures codées en BCD, bit de poids faible en premier
N° bit 29 30 31 32 33 34
Valeur 1 2 4 8 10 20

• 35 (P2) : Bit de parité (parité paire) des heures.

• 36 - 41 : Jour codé en BCD, bit de poids faible en premier.


N° bit 36 37 38 39 40 41
Valeur 1 2 4 8 10 20

• 42 - 44 : Jour de la semaine codé en BCD, bit de poids faible en premier.


N° bit 42 43 44
Valeur 1 2 4

• 45 - 49 : Mois codé en BCD, bit de poids faible en premier.


N° bit 45 46 47 48 49
Valeur 1 2 4 8 10

• 50 - 57 : Année (sur deux chiffres) codées en BCD, bit de poids faible en premier.
N° bit 50 51 52 53 54 55 56 57
Valeur 1 2 4 8 10 20 40 80

• 58 (P3) : Bit de parité 59 : Pas d'impulsion

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 6

Pour mieux fixer les idées, voici l'exemple du codage des bits 21 à 28 de la trame émise
pendant la minute 34. Ils codent donc les informations de la minute suivante, à savoir la
minute 35.

2.4. LE RÉCEPTEUR

Le signal horaire DCF77 parvient sous forme de grandes ondes, à une fréquence de
77,5 kHz, sur une antenne puis est démodulé par un récepteur accordé sur cette
fréquence. On obtient à la sortie de ce récepteur un signal logique, correspondant aux
impulsions de 100 et 200 ms émises. C’est ce signal que nous allons par un décodeur
en VHDL afin d'obtenir les informations de minutes et d’heure.

VHDL

Les modules sans décodeur produisent à partir du signal grandes ondes reçu, des
impulsions de 100 ou 200 ms. Ces signaux doivent ensuite être traités par un décodeur
adéquat (EPLD ou FPGA, ...).

Le module BN641138
Ce module récepteur DCF77 possède sa propre antenne en
ferrite. Il peut alimenté entre 1,2 et 15V, consomme environ 3
mA. La sortie se fait sur un bornier, et on a le choix entre une
sortie normale et une sortie inversée (Sortie collecteur NPN
ouvert).
Il est disponible entre autres chez Conrad et Selectronic à un
prix d'environ 12 euros.

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 7

3. ANALYSE FONCTIONNELLE

L’analyse de la trame à décoder nous amène à découper le système en plusieurs blocs


constitués de fonctions logiques, ce projet est essentiellement basé sur la conversion
série - parallèle de la trame.
• L’horloge disponible sur le kit est de 25,175 MHz., il est indispensable de créer
un diviseur de fréquence pour qu’une horloge de synchronisation interne soit
1000 fois la fréquence des signaux à traiter, soit 1000Hz
• Le premier bloc permet de synchroniser le signal entrant DCF avec l’horloge
interne de notre circuit programmable afin de créer un décodage de type
synchrone.
• Ensuite, il va falloir créer un bloc de détection de début de trame, c'est-à-dire le
bit 59 de la trame qui n’existe pas.
• Dès lors l’étape suivante consiste à mettre en place un bloc permettant d’isoler la
trame série qui possède les impulsions représentatives du codage des minutes et
des heures.
• Il est alors indispensable de mettre en place un convertisseur qui aura pour tache
de convertir les impulsions de 100ms en niveau logique ‘0’ et les impulsions de
200ms en niveau logique ‘1’
• Un bloc de conversion série – parallèle va permettre d’afficher les informations
minutes et heures de la trame au format bcd
• Le bloc de décodage de l’affichage bcd vers les 7 segments est placé en RAM

3.1. SCHEMA BLOCS

SYNCHRO
SIGNAL DCF

CLK
1 CONVERSION
KHz DETECTION SERIE - //
DEBUT DE
TRAME 4 RAM
FPGA
CLK
25
MHz SELECTION
CONVERSION
DE LA TRAME
IMPULSIONS
MINUTES &
en LOGIQUE
HEURES

Signal DCF
Légende Syncro Trame
Bus //

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 8

4. DESCRIPTIONS FONCTIONNELLES

4.1. LES HORLOGES DE SYNCHRONISATION

4.1.1. Pour la synchronisation du signal DCF

L’horloge d’entrée du circuit programmable de type Flex10K que nous utilisons sur le Kit
de programmation est de 25,175MHz.

Cette sortie 1KHz va nous permettre pour le bloc suivant de synchroniser la trame DCF
de fréquence 1Hz, afin de rendre notre application de décodage et d’affichage
synchrone. C’est le rôle du bloc DIVFREQ.

4.1.1.1. Le code VHDL de la division de fréquence

-- Permet d'obtenir du 1Khz à partir du 25,175Mhz

library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;

ENTITY divfreq IS
PORT (
ck : IN STD_LOGIC;
reset : IN STD_LOGIC;
div: OUT STD_LOGIC
);
END divfreq;

ARCHITECTURE numero1 OF divfreq IS


SIGNAL U : INTEGER RANGE 0 TO 25174;
BEGIN
PROCESS(reset,ck)
BEGIN
IF (reset = '0') THEN U <= 0;
ELSIF ck'EVENT AND ck = '1' THEN
IF (U=25174) THEN
U <= 0;
ELSE U <= U+1;
END IF;
END IF;
END PROCESS;
div <= '1' WHEN U = 25174 else '0';

END numero1;

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 9

4.1.1.2. La simulation de la division de fréquence

Ck est le signal d’entrée du FPGA, pour la simulation nous avons remplacé le


25,175Mhz par une fréquence de 500Hz, et U le rapport de division passe de 25175 à
10.

Comme le montre le relevé de simulation ci-dessus, nous obtenons bien une fréquence
de sortie de 50Hz, divisée par 10 par rapport à l’entrée.

4.1.1.3. Synchronisation par bascule D et H= 1Khz

Afin de rendre cette application syncrhone, le signal d’entrée DCF est synchronisé sur
l’horloge 1Khz, à l’aide d’une bascule D. Ce blos est nommé BASCULE D.

-- Bascule D,
-- Mise en Forme du Signal , Syncro signal DCF avec h = 1Khz

library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;

ENTITY basculed IS
PORT (
d : IN STD_LOGIC;
h : IN STD_LOGIC;
raz : IN STD_LOGIC;
q : OUT STD_LOGIC
);
END basculed;

ARCHITECTURE archi1 OF basculed IS


BEGIN
PROCESS (h,raz)
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 10

BEGIN
if raz='0' then q<='0';
elsif h'event and h='1' then q<=d;
end If;
END PROCESS;

END archi1;

4.1.1.4. La simulation de la bascule D de synchro

Nous avons sur l’entrée signal (trame DCF d’entrée) , représenté la sortie le signal DCF
synchro avec l’horloge CLOCK de 1KHz.

En faisant un zoom sur les fronts de ‘Signal’ et ‘DCF’, nous observons que sur le front
montant de CLOCK, DCF recopie SIGNAL.

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 11

4.2. BLOC DE DETECTION DE DEBUT DE TRAME

Le but de ce bloc « DEBTRAME » est de détecter le bit 59, celui-ci est dit manquant car
il ne correspond ni à un niveau ‘1’ ni à un niveau ‘0’

Pour réaliser une telle fonction, il faut calculer le temps qui sépare chaque état du signal
DCF, celle-ci se nomme debtrame.vhd, si le temps dépasse 900ms, c’est que le bit 59
est détecté, par mesure de sécurité nous décidons de temporiser à 1200ms

4.2.1. Code VHDL de la détection de début de trame

L’horloge d’entrée est H = 1Khz, soit 1ms

-- Compteur 1200ms
-- Detection du début de trame => Q= 1

library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;

ENTITY debtrame IS
PORT (
H: IN STD_LOGIC;
DCF: IN STD_LOGIC;
RAZ: IN STD_LOGIC;
S: BUFFER INTEGER RANGE 0 TO 1500;
Q: OUT STD_LOGIC
);
END debtrame;

ARCHITECTURE archi OF debtrame IS


BEGIN
PROCESS(H, DCF, raz)
BEGIN
IF RAZ='0' THEN S<=0; Q<='0';
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 12

ELSIF (H'EVENT AND H='1') Then

IF (DCF='0') then
S <= S + 1;

IF S>1200 then Q<='1';


END IF;
ELSE S <=0;
END IF;
END IF;

END PROCESS;
END archi;

4.2.2. La Simulation de la détection de début de trame

Sur la simulation ci-dessous, nous constatons que le signal DEBUT, correspondant à la


sortie Q du bloc debtrame.vhd, passe effectivement bien à 1 lorsque la temporisation
entre la passage de DCF à ‘0’ et son passage à ‘1’ est > 1200ms

1200ms

Dès lors il va donc être possible de détecter le début de trame minutes et heure par un
simple comptage.

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 13

4.3. SELECTION DE LA TRAME MINUTES ET HEURES

Pour cela le bloc « COMPTE21 », permet de sélectionner la trame série à partir du bit
21 et donc comme l’indique la table en Annexe B de lire les poids des minutes puis ceux
des heures.

Cette fonction est conditionnée par la fonction de détection de début de trame


précédente, le comptage se fait au rythme du signal DCF.

Le niveau de sortie de cette fonction passe à 1 dès que le bit 21 est détecté et repasse
à 0 à la détection de la fin de trame des heures, nous utiliserons cette fonction, sur front
descendant, plus tard afin de mémoriser le décodage par ROM.

4.3.1. Code VHDL du compteur par 21

-- Compteur 21 pulses
-- Detection du début de trame minutes => Q= 1

library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;

ENTITY compte21 IS
PORT (
H: IN STD_LOGIC; -- Signal DCF
RAZ: IN STD_LOGIC;
S: BUFFER INTEGER RANGE 0 TO 59;
Q: OUT STD_LOGIC
);
END compte21;

ARCHITECTURE archi OF compte21 IS


BEGIN
PROCESS(H)
BEGIN
IF RAZ='0' THEN S<=0;
ELSIF (H'EVENT AND H='1') Then S <= S + 1;

IF (S>=20 AND S <= 35) then Q<='1';


Else Q<='0'; -- cf remarque page suivante
END IF;
END IF;
END PROCESS;
END archi;

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 14

4.3.2. Que donne la simulation

Bit minute poids 1 Front de mémorisation

Remarque :
A noter que à la place du Else Q<=’0’, il est possible pour réitérer la mesure toute les
minutes de mettre à la place :
ElsIF (S=37) THEN Q<='0'; S<=-21;
Avec S: BUFFER INTEGER RANGE -22 TO 59; dans les déclarations.

Voir les relevés en Annexe C de ce document.

4.4. LE BLOC DE CONVERSION

Il est nécessaire de convertir les pulsations de 100ms en 0 logique et les pulsation de


200ms en ‘1’’ logique.

Pour réaliser cela, nous avons choisis de la réaliser en deux étapes : 1 compter le
temps que reste le niveau haut du signal DCF, et ensuite la fonction CONVERT est
synchrone avec le signal DCF et permet de comparer à t=150ms, sur son front
descendant, le niveau du signal DCF. fonctionne alors de la manière suivante :

• si à 150ms, le niveau du signal DCF = 1 alors CONV = niveau logique 1

• si à 150ms, le niveau du signal DCF = 0 alors CONV = niveau logique 0

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 15

4.4.1. Code VHDL du signal CONV

library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;

ENTITY convert IS
PORT (
H: IN STD_LOGIC; -- Horloge 1Khz
RAZ: IN STD_LOGIC;
DCF: IN STD_LOGIC; -- Signal à mesurer
N: BUFFER INTEGER RANGE 0 TO 1000;
Q: OUT STD_LOGIC -- Signal de sortie
);
END convert;

ARCHITECTURE archi OF convert IS


BEGIN
PROCESS(H)
BEGIN
IF RAZ='0' THEN N <= 0;

ELSIF (H'EVENT AND H='1') Then


IF DCF='1' then N <= N+1;
ELSE N <=0;
END IF;
END IF;
END PROCESS;

PROCESS(DCF)
BEGIN
IF RAZ='0' THEN Q<='0';
ELSIF (DCF'EVENT AND DCF='0') THEN
IF N > 150 THEN Q <='1';
ELSE Q <= '0';
END IF;
END IF;
END PROCESS;

END archi;

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 16

4.4.2. Les simulations des fonctions CPT150 et CONVERT

Le signal CPT150 est l’ancien signal de syncro remplacé tout simplement par le signal
DCF

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 17

4.5. LA DE-SERIALISATION DE LA TRAME

Le bloc fonctionnel « DECALAGE » permet de dé sérialiser le signal CONV , au rythme du


signal DCF, on utilise pour cela un registre à décalage.

Le signal de sortie de cette fonction est S[13..0]

En entrée le signal CONV, la syncronisation s’effectue sur le front montant de DCF pour
DCfF= 1

4.5.1. Code VHDL de la fonction DECALAGE


library IEEE;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_1164.ALL;

ENTITY decalage IS
PORT (
h : IN STD_LOGIC;
e : IN STD_LOGIC;
clr : IN STD_LOGIC;
s : BUFFER STD_LOGIC_VECTOR (13 DOWNTO 0)
);
END decalage;

ARCHITECTURE archi1 OF decalage IS


BEGIN
PROCESS (h,e,clr)
BEGIN
IF clr='0' THEN s<="00000000000000";
ELSIF h'EVENT AND h='1' THEN
s(13)<=e;
s(12)<=s(13);
s(11)<=s(12);
s(10)<=s(11);
s(9)<=s(10);
s(8)<=s(9);
s(7)<=s(8);
s(6)<=s(7);
s(5)<=s(6);
s(4)<=s(5);
s(3)<=s(4);
s(2)<=s(3);
s(1)<=s(2);
s(0)<=s(1);

END IF;
END PROCESS;
END archi1;

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 18

4.5.2. Simulations de la fonction

sur le relevé de simulation ci-dessus, on observe bien la sérialisation de la trame 1 0 1 1

Sur une vue plus globale de la simulation, le décalage complet de la trame série,
pendant la durée fixée par CPT21.

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 19

4.6. LE DECODAGE DE L’AFFICHAGE

Les bits du port de sortie S13 correspondent aux informations minutes et heures que
nous allons pouvoir décoder à l’aide du composant LPM_ROM.

Le décodage et la mémorisation pour les afficheurs se fait sur front descendant de


CPT21 qui à été programmé pour descendre après 15 front montants du signal /DCF..

Le signal S[13..0] est divisé en 4 signaux // :

S[3..0] contient les informations des unités des minutes

S[6..4] contient les informations des dizaines de minutes

S[8..11] contient les informations des unités des heures

S[13..12] contient les informations des dizaines des heures

Remarque : le bit S(7) est le bit de parité des minutes, n’est pas utilisé

Chaque partie du signal S est dirigée vers les mémoires RAM du FPGA, ou par
décodage d’adresse il est possible de générer 4 fois 7 signaux de commande des
afficheurs.

4.6.1. Les données d’entrée, adresses

Le contenu des mémoires est identique pour le décodage des unités, différent pour les
dizaines de minutes et les dizaines d’heures.

• 21 - 27 : Minutes codées en BCD, bit de poids faible en premier.


N° bit 21 22 23 24 25 26 27
S() 0 1 2 3 4 5 6
poids 1 2 4 8 10 20 40

• 28 (P1) : Bit de parité (parité paire) des minutes. (Non Utilisé)


• 29 - 34 : Heures codées en BCD, bit de poids faible en premier
N° bit 29 30 31 32 33 34
S() 8 9 10 11 12 13
poids 1 2 4 8 10 20

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 20

4.6.2. Le contenu de la memoire, le décodage BCD- 7 segments

Les différents fichiers aux extensions MIF sont garant du contenu des Mémoires
utilisées :

Dec7seg.mif Dec7segh.mif Dec7segdh.mif

Memoire unités Memoire dizaines minutes Mémoire Dizaines Heures

DEPTH=10; DEPTH=6; DEPTH=3;


WIDTH=7; WIDTH=7; WIDTH=7;

ADDRESS_RADIX=DEC; ADDRESS_RADIX=DEC;
ADDRESS_RADIX=DEC;
DATA_RADIX=BIN; DATA_RADIX=BIN;
DATA_RADIX=BIN;
CONTENT CONTENT
BEGIN CONTENT BEGIN
0: 0000001; BEGIN 0: 0000001;
1: 1001111; 0: 0000001; 1: 1001111;
2: 0010010; 1: 1001111; 2: 0010010;
3: 0000110; 2: 0010010;
4: 1001100; 3: 0000110; END;
5: 0100100; 4: 1001100;
6: 0100000; 5: 0100100;
7: 0001111;
END;
8: 0000000;
9: 0000100;
END;

4.6.3. Simulation du décodage Mémoire

Nous validons avec ce système que les valeurs obtenues au moment ou CPT21
repasse à 0 correspondent bien au décodage de minutes et de heures contenues dans
la trame DCF, pour le suivi des états lors de la simulation, le graphique ci-dessus à été
pris avec /DCF comme synchronisation mémoire.
Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 21

5. INTEGRATION DES BLOCS

Sous MaxPlus+2, nous utilisons l’interface graphique afin d’intégrer les différents blocs.

Le fichier enregistré se nomme projet.gdf :

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 22

6. PROGRAMMATION ET ESSAIS

La compilation du projet se fait sans difficultés. Le composant à programmer sur le Kit


Altera est un FLEX10K70RC240-4 via un câble de programmation Byte Blaster
connecté sur l’interfaçe // du PC.

6.1. SCHEMA D’INSTALLATION

PC

ALTERA Alimentation Oscilloscope Numérique


MAXPLUS+2 Double
DCF : 5.1V
KIT Altera : 7V

Boitier
DCF

Kit de développement Carte Afficheurs


ALTERA

Il est nécessaire d’alimenter le kit de développement Altera avec une tension de 7V,
bien faire attention à la limitation de courant de l’alimentation.

Le boîtier de réception DCF est également à alimenter en +5,1V, le signal de sortie est
à connecter sur la carte Afficheurs reliée au kit de développement par un câble en
nappe.

L’oscilloscope numérique nous permet de vérifier que le signal DCF en sortie du


récepteur n’est pas perturbé, et correspond aux largeurs d’impulsions attendues.

Il permet également de valider les signaux simulés, en les faisant ressortir sur les
broches du connecteur C du kit de développement.

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL
page 23

6.2. ESSAI DE DETECTION

Les premiers essais ont été effectués le vendredi 4 juillet, après trois séances de 4h et
quelques simulations. Après avoir réalisé le schéma d’installation de la page
précedente, et chargé le programme dans le FPGA. Les premiers affichages semblent
ne pas correspondre, cela provient d’un signal de réception très perturbé, par les
moniteurs l’entourant. Cela nous amène à réitérer la manipulation sur une autre table.

Dans un premier temps, les résultats affichés s’incrémentent, mais n’affichent pas
l’heure exacte sur les afficheurs, cela provient du bloc Compte21, qui sélectionnait la
trame des minutes et des heures avec une pulsation de retard.( cf page 13 de ce
document)

IF (S>=21 AND S <= 36) then Q<='1';


est remplacé par
IF (S>=20 AND S <= 35) then Q<='1';

Dès lors la première mesure d’heure s’affiche correctement à condition que le moniteur
soit également bien coupe pour éviter les perturbations du recepeteur DCF.

La seconde mesure est erronée, cela provient également de la fonction Compte21, qui
décale d’un coup de plus le signal d’acquisition de la trame. Par conséquent, nous
effectuons la modification suivante (code en page 14):
ElsIF (S=37) THEN Q<='0'; S<=-21;
est remplacé par
ElsIF (S=36) THEN Q<='0'; S<=-21;

7. CONCLUSION

Après avoir effectué les modifications qui s’imposaient, afin de bien décoder et afficher
l’heure : le système fonctionne correctement, quelques légères perturbations, viennent
perturber de temps en temps l’affichage.

Nous avons choisi une optimisation du nombre de blocs et donc de macro-cellulles


utilisées dans le composant. Le signal Cpt21 de ce fait à plusieurs fonctionnalités, il
nous permet de sélectionner la trame sur le front montant mais valide l’adressage des
mémoires sur le front descendant.

Le fichier Projet.RPt est disponible en annexe E, indique l’assignation des brochages du


composant, et la place utilisée dans le composant.

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL Annexe
A

ANNEXE A

Sujet du Projet

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL Annexe
C

ANNEXE B

Table de codage du DCF-77

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL Annexe
C

ANNEXE C

Fichiers de Simulation

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
VHDL
PROJET

Sur cette simulation de 2mn, nous observons que c’est le signal cpt21 qui permet la synchronisation de la
conversion série - parallèle
C
Annexe

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
VHDL
PROJET

Premier zoom sur cette simulation générale entre 23s et 52s , nous observons que pendant la conversion série –
parallèle, l’ancienne valeur mesurée reste affichée jusqu’au moment ou cpt21 passe à ‘0’l
C
Annexe

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
VHDL
PROJET

Second zoom sur cette simulation générale entre 40s et 46s , cela permet de vérifier que les valeurs //
correspondent bien à la trame série, et que le résultat en sortie des mémoire correspond bien aux heures et aux
minutes que nous souhaitons afficher
C
Annexe

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître
PROJET

VHDL Annexe
E

ANNEXE E

Extraits du Fichier projet.rpt

Rapport de Projet VHDL - Document Rédigé par Régis FOUQUET & Olivier VAUDELIN - Formation Ingénieur Maître

Das könnte Ihnen auch gefallen