Vous êtes sur la page 1sur 27

DATE : 3 JUIN 2007 Page : 1/27

Ralisation dun frquencemtre

Rdig par
AAJAIL Hamid DAOUD Bilel

Responsabilit
Elve ingnieur ENSEEIHT (2A EN) Elve ingnieur ENSEEIHT (2A EN)

DATE : 3 JUIN 2007 Page : 2/27

TABLE DES MATIERES

1. 2. 3. 4. 5.

INTRODUCTION .....................................................................................................3 ABREVIATIONS ......................................................................................................4 CONVENTIONS......................................................................................................4 DOCUMENTS DE REFERENCE ...................................................................................4 DESCRIPTION GENERALE ........................................................................................5
5.1 5.2 5.3 5.4 description de l'environnement....................................................................................... 5 fonctionnalit globale..................................................................................................... 6 modes opratoires ......................................................................................................... 8 caractristiques gnrales du FPGA................................................................................ 9

6.

DESCRIPTION DETAILLEE .......................................................................................10


6.1 6.2 6.3 Synthse du signal CE .................................................................................................. 10 Comptage..................................................................................................................... 14 Affichage...................................................................................................................... 16

7.

INTERFACES.........................................................................................................23
7.1 description des entres / sorties ................................................................................... 24

7.2 caractristiques lectriques........................................................................................... 25 7.2.1 caractristiques statiques .........................................................................................................25 7.2.2 caractristiques dynamiques ....................................................................................................25

8. 9. 10. 11.

BOITIER...............................................................................................................25 TESTS ..................................................................................................................25 ALIMENTATION ................................................................................................25 BUDGETS .....................................................................................................2626


complexit.................................................................................................................... 26 consommation .............................................................................................................. 26

11.1 11.2

12. 13.

POINTS CRITIQUES............................................................................................26 CONFIGURATION .............................................................................................27

DATE : 3 JUIN 2007 Page : 3/27

1. INTRODUCTION Dans ce projet, nous allons raliser un frquencemtre numrique. Ce dernier doit pouvoir afficher des frquences allant de 1 Hz 10 MHz minimum. Le cahier des charges nous stipule aussi que l'affichage devra tre rafrachit toutes les 2s. Nous allons pour cela utiliser la plaquette de TP-FPGA qui contient une carte Pegasus Digilent SPARTAN II XC2S50-PQ-208 avec 4 afficheurs 7 segments, 8 interrupteurs, 4 boutons poussoirs et 8 diodes lectroluminescentes. Le rsultat de la mesure va tre visualis sous forme scientifique (x,yzt.10a avec a entier entre 0 et 7) laide de 4 afficheurs 7 segments et de 8 diodes lectroluminescentes (DEL) indiquant la gamme de la frquence (dans notre projet on a opt pour un affichage de 3 chiffres aprs la virgule en utilisant les diodes led0.. ledi.. led7 correspondant chacun la puissance i de 10 de la frquence exprime en Hz). Dans l'optique de raliser ce frquencemtre, on a choisi comme principe de mesure lutilisation de dure talon.

Et on a suivie la synoptique ci-dessus : Un module de synthse du signal CE compos de trois blocs : Un compteur qui gnre une horloge H de 0,5 Hz. Un dtecteur de fronts (montants et descendants) de H. Une machine tats permettant la cration dun signal CE partir des fronts montants et descendants de H. Un module de comptage compos de 2 blocs: Une chane de comptage constitu de 8 compteurs BCD permettant de calculer la frquence. Un bloc Init permettant la remise zro des compteurs. Un module daffichage contenant : Un registre nous servant mmoriser les donnes ncessaires lafficheur. Un bloc pr affichage qui nous permet de slectionner les 4 chiffres afficher et aussi sur la puissance de 10 de la frquence exprime en Hz. Un dcodeur dterminant la diode allumer. Une machine tats chargs du multiplexage de laffichage sur les 4 afficheurs qui devra fournir 4 signaux AN0, AN1, AN2, AN3 ncessaires aux 4 anodes des afficheurs, de laffichage point dcimal sur lafficheur souhait et de terminer lentre de lafficheur 7 segments. Lafficheur 7 segments.

DATE : 3 JUIN 2007 Page : 4/27

2. ABREVIATIONS
Liste les abrviations utilises : E/S : Entres / Sorties FPGA : field-programmable gate array : rseau de portes programmables in-situ IOBs : Input Output Blokcs CLBs : Configurable logic blocks Clk : Horloge 50 MHz CE : Clock Enable S : Signal dentre H : Horloge de 0,5 Hz Raz, rst : Remise a zro d_Fm : dtecteur de fronts montants d_Fd : dtecteur de fronts descendants

3. CONVENTIONS
LSB : bit de poids le plus faible MSB : bit de poids le plus fort

4. DOCUMENTS DE REFERENCE
Nom DR[1] Titre Prsentation du projet numrique BONY Francis Digilent Pegasus Board Reference Manual Revision: August 11, 2005 BCD to Seven Segment Decodor/Driver August 1997 http://fr.wikipedia.org/wiki/ FPGA http://www-rocq.inria.fr/codes/ CAM/03-09-23/Tisserand.pdf

DR[2]

DR[3]

DR[4] DR[5]

DATE : 3 JUIN 2007 Page : 5/27

5. DESCRIPTION GENERALE 5.1 Description de l'environnement

Schma global du frquencemtre


Notre circuit est compos de 3 blocs principaux : un bloc de synthse du signal talon, un bloc de comptage et un bloc daffichage.

DATE : 3 JUIN 2007 Page : 6/27

Le 1er bloc est compos de 3 sous blocs : un compteur qui gnre lhorloge H permettant le rafrachissement du comptage chaque 2s, un module qui dtecte les fronts montants et descendants de H et un automate de synthse de CE partir des fronts de H. Le second bloc est compos de 2 sous blocs : une chane de comptage compose de 8 compteurs BCD qui vont nous calculer la frquence du signa lentre et un bloc dinitialisation de tous ces compteur qui sactive aux fronts descendants de CE. Pour le signal S qui est une entre du bloc, on a utilis une bascule D pour le synchroniser sur lhorloge 50 MHz et aussi un Buffer I_Buf qui nous permettra de synthtiser le bloc avec VHDL Le bloc daffichage contient cinq sous blocs : le 1er est un registre qui mmorise les donnes ncessaires laffichage, ainsi lafficheur affichera le rsultat final du comptage et non pas les valeurs intermdiaire du calcul. Le second sous bloc slectionne les 4 chiffres afficher ainsi que le led allumer pour exprimer la valeur de la frquence en Hz sous forme scientifique avec 3 chiffres aprs la virgule. Le 3eme et le dernier sous bloc sont des dcodeurs dterminant respectivement la diode allumer et les chiffres afficher, tandis que lavant dernier bloc est une machine tats qui gre laffichage sur les quatre afficheurs en utilisant une frquence de balayage assez grande devant la frquence rtinienne de lil.

5.2 Fonctionnalit globale


Architecture du FPGA (Xilinx) :
Un FPGA ralise une fonction logique complexe. Il est programmable, et re-programmable dans son environnement Les circuits FPGA XILINX sont disponibles en de nombreuses configurations de taille, de vitesse et de prix Des outils logiciels puissants et automatiques permettent de raliser facilement un systme sur FPGA

Structure gnrale
Un FPGA est un rseau (matrice) de blocs combinatoires et squentiels (CLB) Des blocs dentre/sortie (IOB) sont associs aux broches du circuit Les CLB et IOB sont interconnects entre eux par des dispositifs varis Les matrices sorganisent de 8x8 128x120

DATE : 3 JUIN 2007 Page : 7/27

Structure des CLB


Une table de transcodage combinatoire (LUT) pouvant implanter : deux fonctions indpendantes 4 variables une fonction complte 5 variables une fonction incomplte 6 variables Deux cellules squentielles (bascules D) Des multiplexeurs de configuration

Structure des IOB


Ports dentre/sortie totalement programmables : Seuil dentre TTL ou CMOS Slew-rate programmable Buffer de sortie programmable en haute impdance Entres et sorties directes ou mmorises Inverseur programmable

DATE : 3 JUIN 2007 Page : 8/27

5.3 Modes opratoires


Les circuits FPGA XILINX se configurent selon plusieurs modes : 1) Le mode srie qui utilise une EEPROM srie (avantage de la compacit mais faible rapidit) 2) Le mode parallle 8 bits (EPROM classique) plus rapide 3) Le mode parallle asynchrone : le circuit FPGA se comporte comme un priphrique de microprocesseur : possibilit de (re)configuration partielle intelligente Dans chaque mode, plusieurs FPGAs peuvent tre chans en mode matre/esclave.

DATE : 3 JUIN 2007 Page : 9/27

5.4 Caractristiques gnrales du FPGA


Prsentation succincte des caractristiques du FPGA (fabricant, modle, frquence, alimentation, puissance, type d'E/S ) Fabricants du FPGA : -- Xilinx -- Altera --Lattice --Actel --Cypress --Atmel --QuickLogic --Nallatech

DATE : 3 JUIN 2007 Page : 10/27

Familles de FPGA : Famille XC4000 --Famille FLEX8000 --Famille XC5200 --Famille FLEX10K -Famille XC6200 --Famille XC8100 --Famille FLEX6000 --Famille SPARTAN --Famille APEX 20K -Famille VIRTEX Famille SPARTAN II

Les blocs d'entre/sortie servent d'interface entre les pattes (plots) du circuit et le coeur du FPGA (via le routage programmable).Il y a diffrents types d'entres/sorties : entres/sorties utilisateur adaptation des signaux (CMOS, TTL, 3.3, 2.5, 1.8, 1.5, paire di_.) alimentations spares en zones : coeur, \bancs" de plots, zones basse-consommation signaux d'horloge possibilit d'avoir plusieurs horloges signaux de configuration programmation du FPGA signaux de test boundary scan JTAG pour debug

6. DESCRIPTION DETAILLEE 6.1 Synthse du signal CE :


6.1.1 Horloge 0.5 Hz :

DATE : 3 JUIN 2007 Page : 11/27

Ce composant a pour fonction de gnrer une horloge de priode 2 secondes partir de lhorloge 50 MHz du FPGA.

Schma du composant Entres : clk : lhorloge 50MHz rst : remise a zro Sortie : H : horloge 0,5 HzLe fonctionnement de ce composant est dfini par ce code :

On remarque que pour raliser une horloge 0.5 Hz partir dune horloge de 50 Mhz on doit compter jusqu 50 000 000 alors quon compte jusqu 50 000 160, ceci est d au fait que lhorloge du FPGA nest pas exactement 50 MHz, en effet on a dcouvert ce problme lors du test du circuit global sur le FPGA : pour afficher 10MHz il faut rentrer un signal de frquence 10 000 032 Hz donc il nous manquait 3.2 us sur 1s c'est--dire il faut ajouter 3.2us*50MHz = 160 coups dhorloge lors du comptage. Simulation :

DATE : 3 JUIN 2007 Page : 12/27

NB : pour la simulation on a pris k=5. 6.1.2 Dtecteur de fronts : Ce composant permet de dtecter les fronts montants et les fronts descendants de lhorloge H :

Schma du composant Entres : clk : lhorloge 50MHz H : horloge 0,5 Hz Sorties : d_Fm : dtecteur de fronts montants d_Fd : dtecteur de fronts descendants Simulation :

6.1.3 Machine tats : Ce composant permet de gnrer le signal CE qui va servir comme talon:

DATE : 3 JUIN 2007 Page : 13/27

Schma du composant Entres : clk : lhorloge 50MHz rst : remise a zro d_Fm : dtecteur de fronts montants d_Fd : dtecteur de fronts descendants Sortie : CE : signal talon

Diagramme dtats Simulation

Lors de cette premire partie du projet, on est arriv gnrer le signal CE. En effet le comptage de la frquence du signal dentre S se fait sur les fronts montants de ce signal, cependant on doit commencer ce comptage au front montant de H. Ceci pose un problme de synthse puisque on ne peut pas utiliser deux horloges dans un mme module. On a donc opter pour exploiter le signal CE : (CE=1 H event and H=1)

DATE : 3 JUIN 2007 Page : 14/27

6.2 Comptage :
6.2.1 Initialisation : Ce composant gnre un signal raz qui initialise le compteur de frquence.

Schma du composant Entres : clk : lhorloge 50MHz CE : signal talon Sortie : raz : remise a zro En effet, le signal raz est un dtecteur de fronts descendants de CE dcal de deux coups dhorloge. Simulation :

6.2.2 Chane de comptage : a) Compteur BCD : Ce composant compte de 0 jusqu 9.

Schma du composant

DATE : 3 JUIN 2007 Page : 15/27

Entres : entree : signal dentre du compteur CE : signal talon raz : remise a zro Sorties : r : retenue c(3 : 0): rsultat du comptage Ce compteur compte de 0 jusqu' 9. Arriv 9, il est remis zro et il met la retenue 1 . La retenue est remise zro au prochain comptage. Simulation :

b) Compteur global : Ce composant est la mise en srie de 8 compteurs BCD.

Schma du composant Entres : S : signal dentre du compteur CE : signal talon raz : remise zro Sorties : a0 (3 : 0): chiffre des units a1 (3 : 0): chiffre des dizaines a2 (3 : 0): chiffre des centaine a3 (3 : 0): chiffre des milliers a4 (3 : 0): chiffre des dizaines de milliers a5 (3 : 0): chiffre des centaines de milliers a6 (3 : 0): chiffre des millions

DATE : 3 JUIN 2007 Page : 16/27

a7 (3 : 0): chiffre des dizaines des millions Lentre du 1er compteur est le signal S, celle des autres est la retenue du compteur prcdant. Simulation1

Cette simulation explique le droulement du comptage pour les deux premiers compteurs (a0 et a1). Simulation2

Cette simulation montre linitialisation de tous les compteurs lorsque raz est activ.

6.3 Affichage :
6.3.1 Registre : Ce composant enregistre le rsultat du comptage chaque deux secondes pour lafficher.

DATE : 3 JUIN 2007 Page : 17/27

Schma du composant Entres : CE : signal talon a0 (3 : 0): chiffre des a1 (3 : 0): chiffre des a2 (3 : 0): chiffre des a3 (3 : 0): chiffre des a4 (3 : 0): chiffre des a5 (3 : 0): chiffre des a6 (3 : 0): chiffre des a7 (3 : 0): chiffre des Sorties : b0 (3 : 0): chiffre des b1 (3 : 0): chiffre des b2 (3 : 0): chiffre des b3 (3 : 0): chiffre des b4 (3 : 0): chiffre des b5 (3 : 0): chiffre des b6 (3 : 0): chiffre des b7 (3 : 0): chiffre des

units dizaines centaine milliers dizaines de milliers centaines de milliers millions dizaines des millions units dizaines centaine milliers dizaines de milliers centaines de milliers millions dizaines des millions

Sachant que au cours du comptage, les ai (3 :0) sincrmentent lutilisation du registre est ncessaire pour ne pas afficher les valeurs intermdiaires. On rcupre le rsultat du comptage chaque front descendant de CE. Simulation

DATE : 3 JUIN 2007 Page : 18/27

6.3.2 Pr-affichage : Ce composant rcupre les quatre chiffres afficher ainsi que la puissance de 10 de la frquence exprime en Hz.

Schma du composant Entres : a0 (3 : 0): a1 (3 : 0): a2 (3 : 0): a3 (3 : 0): a4 (3 : 0): a5 (3 : 0): a6 (3 : 0): a7 (3 : 0): chiffre chiffre chiffre chiffre chiffre chiffre chiffre chiffre des des des des des des des des units dizaines centaine milliers dizaines de milliers centaines de milliers millions dizaines des millions

DATE : 3 JUIN 2007 Page : 19/27

Sorties : Valeur_0 (3 : 0): mantisse Valeur_1 (3 : 0): valeur du premier chiffre aprs la virgule Valeur_2 (3 : 0): valeur du deuxime chiffre aprs la virgule Valeur_3 (3 : 0): valeur du troisime chiffre aprs la virgule led(2:0): puissance de 10 de la frquence exprime en Hz Le tableau suivant explique le fonctionnement x entier compris entre 1 et 9 . y entier compris entre 0 et 9 . a0 a1 a2 a3 a4 a5 a6 x 0 0 0 0 0 0 y x 0 0 0 0 0 y y x 0 0 0 0 y y y x 0 0 0 y y y y x 0 0 y y y y y x 0 y y y y y y x y y y y y y y 6.3.3 Dcodeur LED : Ce module dcode la valeur de led afin dallumer la bonne diode. du module pr-affichage.

a7 0 0 0 0 0 0 0 x

Valeur_0 a0 a1 a2 a3 a4 a5 a6 a7

Valeur_1 0 a0 a1 a2 a3 a4 a5 a6

Valeur_2 0 0 a0 a1 a2 a3 a4 a5

Valeur_3 0 0 0 a0 a1 a2 a3 a4

led(2:0) 000 001 010 011 100 101 110 111

DATE : 3 JUIN 2007 Page : 20/27

Schma du composant Entre : Led (2:0): puissance de 10 de la frquence exprime en Hz Sorties: LED0: signal de sortie qui commande la diode DEL 0 du FPGA LED1: signal de sortie qui commande la diode DEL 1 du FPGA LED2: signal de sortie qui commande la diode DEL 2 du FPGA LED3: signal de sortie qui commande la diode DEL 3 du FPGA LED4: signal de sortie qui commande la diode DEL 4 du FPGA LED5: signal de sortie qui commande la diode DEL 5 du FPGA LED6: signal de sortie qui commande la diode DEL 6 du FPGA LED7: signal de sortie qui commande la diode DEL 7 du FPGA

Table de vrit du dcodeur: led(2:0) 000 001 010 011 100 101 110 111 LED0 1 0 0 0 0 0 0 0 LED1 0 1 0 0 0 0 0 0 LED2 0 0 1 0 0 0 0 0 LED3 0 0 0 1 0 0 0 0 LED4 0 0 0 0 1 0 0 0 LED5 0 0 0 0 0 1 0 0 LED6 0 0 0 0 0 0 1 0 LED7 0 0 0 0 0 0 0 1

La diode i est allume si le LED i est 1. 6.3.4 machine affichage : Ce module permet la gestion de laffichage en ce qui concerne les afficheurs 7segments et le point dcimal.

DATE : 3 JUIN 2007 Page : 21/27

Schma du composant Entres : clk : lhorloge 50MHz rst : remise a zro V3 (3 : 0): mantisse V2 (3 : 0): valeur du premier chiffre aprs la virgule V1 (3 : 0): valeur du deuxime chiffre aprs la virgule V0(3 : 0): valeur du troisime chiffre aprs la virgule Sorties :

Diagramme dtats :

Les quatre afficheurs 7 segments du FPGA affichent tous la mme valeur au mme temps, on ne pourra pas donc afficher toutes les frquences possibles. Pour remdier ce problme on a conu cette machine, dont le principe est dallumer un seul afficheur dans chaque tat avec une frquence de transition assez

DATE : 3 JUIN 2007 Page : 22/27

grande devant 25 Hz (On a utilis une frquence de 100 KHz). Ainsi l lil observera des valeurs diffrentes sur les afficheurs et aussi la virgule. Simulation :

NB : on a pris une frquence de transition de 10 MHz pour la simulation. 6.3.7 Afficheur 7 segments : Ce module nous permet de dcoder la valeur afficher sur les sept segments.

Schma du composant Entre : valeur (3:0): valeur afficher Sorties: A,B,C,D,E,F et G

DATE : 3 JUIN 2007 Page : 23/27

Afficheur 7 segments Table de vrit : Valeur (3:0) A 0000 0 0001 0 0010 0 0011 0 0100 0 0101 1 0110 1 0111 0 1000 0 1001 0 Remarque : Pour lafficheur suivante : B 0 1 1 0 0 0 1 1 0 0 7 segments C D E 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 du FPGA lorganisation des segments A, F 1 1 0 0 0 0 0 1 0 0 B, C, D, E, F G 0 1 0 0 1 0 0 0 0 0 et G est la

On na pas respect cet ordre dans notre code. De ce fait, lors de limplmentation sur le FPGA, on a tenu compte de ce problme en attribuant les bonnes pattes chaque segment.

7. INTERFACES
Le Floorplanner permet de visualiser le positionnement des E/S dans le FPGA (nos E/S sont en bleu)

DATE : 3 JUIN 2007 Page : 24/27

Floorplanner

7.1 Description des entres / sorties

DATE : 3 JUIN 2007 Page : 25/27

Tableau des entres sorties

7.2 Caractristiques lectriques

7.2.1 Caractristiques statiques


Type dE/S et niveaux: CMOS 3V, CMOS 5V, LVTTL

7.2.2 Caractristiques dynamiques


Chronogrammes dfinissant les relations lectriques des signaux dE/S entre eux (et avec lhorloge) : setup, hold, Tpd, ainsi que les valeurs de ces diffrents paramtres. On pourra galement indiquer la frquence maximale de fonctionnement.

8. BOITIER
On choisit un botier standard, tanche, avec un mode de refroidissement par conduction.

9. TESTS
Aprs la conception de chaque bloc, on effectue un test bench pour vrifier son bon fonctionnement.

Une fois on sassure que tous les modules fonctionnent on les relie ensemble pour obtenir le frquencemtre. On synthse le tout et on implmente sur le FPGA.
On ralise ensuite des tests sur la carte FPGA. Lors des premiers tests on arrivait mesurer des frquences allant jusqu 100 KHz et partir de cette frquence on obtient une erreur relative de 10- 4 (par exemple au lieu dafficher 106 Hz, on a 9.999. 105 Hz). En utilisant le gnrateur on a remarqu que pour afficher 10MHz il fallait rentrer un signal de frquence 10 000 032 Hz donc il nous manquait 3.2 us sur 1s du signal talon c'est--dire il faut ajouter 3.2us*50MHz = 160 coups dhorloge lors du comptage au niveau du module de ralisation de lhorloge H 0.5 Hz. La frquence de lhorloge du FPGA est alors de 50MHz+160Hz soit une erreur relative de 3,2. 10- 4 %. Aprs rectification, le frquencemtre mesure sans erreur les frquences entre 1 Hz et 20 MHz (frquence maximale du gnrateur)

10. ALIMENTATION
la tension dalimentation du cur du FPGA est de 5 V tandis que celle des E/S est de 3,3 V.

DATE : 3 JUIN 2007 Page : 26/27

11. BUDGETS 11.1 Complexit

On utilise 15% des IOBs et 20 % des CLBs prsents dans le cur du FPGA.

11.2 Consommation

La puissance totale consomme par le circuit est de 11,35 mW.

12. POINTS CRITIQUES


Le frquencemtre ralis ne peut pas mesurer des frquences suprieure 50 MHz : la frquence de lhorloge interne du FPGA. Laffichage nest prcis 100 % car on ne dispose que de 4 afficher dans notre FPGA, ( pour visualiser par exemple 2562999Hz, notre afficheur affiche 2,562 et le led 6 sallume, dans ce cas on a une erreur de 3,9.10- 2 %)

DATE : 3 JUIN 2007 Page : 27/27

13. CONFIGURATION
On a utilis tout au long de ce projet, le logiciel Xilinx. On a programm en langage VHDL et les tests bench ont t effectus laide du logiciel ModelSim.

FIN DE DOCUMENT

Vous aimerez peut-être aussi