Académique Documents
Professionnel Documents
Culture Documents
Rdig par
AAJAIL Hamid DAOUD Bilel
Responsabilit
Elve ingnieur ENSEEIHT (2A EN) Elve ingnieur ENSEEIHT (2A EN)
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.
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.
11.1 11.2
12. 13.
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.
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]
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.
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
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
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 :
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:
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
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)
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 :
Schma du composant
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 :
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
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.
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
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
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
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.
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
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.
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)
Floorplanner
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.
On utilise 15% des IOBs et 20 % des CLBs prsents dans le cur du FPGA.
11.2 Consommation
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