Anda di halaman 1dari 17

IUT GEII de Neuville sur Oise FPGA

TP2 et TP3 Mini-Projet FPGA

Olivier ROMAIN

IUT GEII de Neuville sur Oise FPGA

Conception dun frquencemtre numrique calibrage automatique


I. Principe du frquencemtre

Un frquencemtre numrique est un appareil qui permet de mesure la frquence dun signal dentre. Ici, notre signal dentre Ve analyser sera un signal numrique de rapport cyclique 50% (rapport entre le temps au niveau haut du signal / la priode). n

Ve, fe

Frquencemtre

Le principe de fonctionnement du frquencemtre que vous allez raliser repose sur lutilisation dune fentre de comptage (figure 1) correspondant au niveau haut du signal dentre. En comptant le nombre de priodes dune frquence rfrence fh (de frquence plus grande que le signal dentre), dans cette fentre, nous pouvons alors en dduire la frquence du signal dentre. Une demi-priode du signal analyser comporte N.Th Connaissant Th et en mesurant N, on peut dterminer la frquence du signal dentre par la formule suivante :

Te = 2. N.Th
fe = fh 2. N

Exemple 1: La frquence de rfrence est de 50MHz (Th=20ns). On mesure 4323 priodes de rfrence. La frquence dentre est 5.107/(2*4323)=5783Hz.

Exemple 2: La frquence de rfrence est de 5MHz (Th=200ns). On mesure 4323 priodes de rfrence. La frquence dentre est 5.106/(2*4323)=578Hz.

Exemple 3: La frquence de rfrence est de 500kHz (Th=2ms). On mesure 4323 priodes de rfrence. La frquence dentre est 5.105/(2*4323)=57Hz.

Exemple 4: La frquence de rfrence est de 50kHz (Th=20ms). On mesure 4323 priodes de rfrence. La frquence dentre est 5.104/(2*4323)=5Hz. Olivier ROMAIN 2

IUT GEII de Neuville sur Oise FPGA A partir des exemples, on comprend que la frquence de rfrence va fixer le calibre de mesure et la prcision de celle-ci. La frquence de rfrence fh est obtenue par slection dune des quatre horloges de rfrence (f1, f2, f3 ou f4). Pour une frquence du signal dentre, la frquence de rfrence sera celle qui permettra dobtenir la meilleure rsolution concernant N.

Ve

Fentres de comptage

Te N x Th Figure 1 : principe du frquencemtre Le frquencemtre possde ici deux modes. Un mode manuel ou lutilisateur pourra slectionner lui mme lhorloge de rfrence, et un mode automatique ou en fonction de la valeur de N, un organe de dcision dterminera le meilleur calibre (la meilleur frquence parmi les quatre disponibles) pour N.

On se limitera ici un frquencemtre slection manuel du calibre. La partie automatique est considre comme optionnelle et pourra tre abord par ltudiant lorsque le frquencemtre en mode manuel sera oprationnel.

Olivier ROMAIN

IUT GEII de Neuville sur Oise FPGA Le schma de principe dun tel montage (figure 2) est donn ci-dessous et comporte plusieurs blocs que nous nous proposons de dimensionner par rapport au cahier des charges donn.

Oscillateur 1

Oscillateur 2

Oscillateur 3

Oscillateur 4

f1

f2

f3

f4

Bouton de slection Manuel ou automatique

Slecteur de frquence Ve fh Mise en forme fe Logique de comptage Circuit de dcision automatique

Compteurs BCD

Logique daffichage Latch

Transcodage

Afficheurs 7 segments

Figure 2 : principe du montage

Olivier ROMAIN

IUT GEII de Neuville sur Oise FPGA

Figure 3: Implmentation sous Quartus

Olivier ROMAIN

IUT GEII de Neuville sur Oise FPGA

II.

Spcifications

On dsire raliser un frquencemtre numrique rpondant au cahier des charges suivant : Amplitude du signal dentre : Ve [0 ; 5V] : TTL Frquences de rfrences : F1 : 50 MHz F2 : 5 MHz F3 : 500kHz F4 : 50 kHz

Plage de mesure de N : 0 9999 Affichage de N : 4 digits, 4 afficheurs 7 segments

III.

Questions thoriques prliminaires


Question 1. En fonction des quatre frquences de rfrences disponibles, dterminer quelles seront les plages de mesures concernant la frquence dentre. Pour cela complter le tableau ci-dessous. Frquence de rfrence Fh=F1=50MHz Fh=F2=5MHz Fh=F3=500kHz Fh=F4=50kHz Min Max

Question 2. En dduire la plage de mesure de ce frquencemtre Frquence Min Frquence Max

Question 3. Pour chaque calibre (frquence f1, f2, f3 et f4), quelle sera la prcision thorique de lappareil. Cette estimation sera faite sur la base ou la plus petite valeur mesurable sur un calibre correspond N=1. Frquence de rfrence Fh=F1=50MHz Fh=F2=5MHz Fh=F3=500kHz Fh=F4=50kHz Prcision thorique

Olivier ROMAIN

IUT GEII de Neuville sur Oise FPGA

Prliminaires
Pour ce TP, nous allons crer un nouveau projet. 1. 2. 3. 4. Ouvrir le programme Quartus Crer sur votre compte, un rpertoire TP_FPGA Crer un sous-rpertoire TP23 Sous Quartus, crer un nouveau projet. Dans le menu file, slectionner new projet wizard. 5. Remplissez les champs suivants a. What is the working directories for this project ? ../TP_FPGA/TP23 b. What is the name of this project ? TP23 c. What is the name of the top-level design entity for this project ? TP23 6. Page 3 du wizard a. Dans la fentre Family, slectionnez Cyclone II b. Dans la liste des circuits disponibles, slectionnez : EP2C20F484C6 7. Appuyer sur finish. Vous venez de crer votre premier projet Quartus.

Olivier ROMAIN

IUT GEII de Neuville sur Oise FPGA

IV.

Compteur N
Le compteur N est un compteur dcimal (BCD) dont les sorties voluent entre 0 et 9999.
compteur_BCD clk reset enable unite[3..0] dizaine[3..0] centaine[3..0] millier[3..0]

inst

Son entit comprend trois entres ; une horloge, un signal de remise zro du compteur et des sorties et un signal enable qui autorise le compteur de compter. Les quatre sorties sur 4 bits voluent de 0 9 (compteur BCD) et donnent respectivement la valeur de N sur 4 digits (millier, centaine, dizaine et unit). Les volutions des sorties seront conditionnes aux fronts montants de lhorloge.

Pour raliser ce comptage entre 0 et 9999, 4 compteurs sont ncessaires. Un compteur unit, un compteur dizaine, un compteur centaine et un compteur millier. Le compteur dizaine est incrment de 1 lorsque le compteur unit passe de 9 0. Idem pour le compteur centaine qui sincrmente lorsque les compteurs unit et dizaine valent 9. Le compteur millier est incrment lorsque les compteurs units, dizaines et centaines sont tous 9. Le code VHDL ci-dessous donne lentit et larchitecture complter de ce compteur N. Dfinir un nouveau fichier VHDL o Menu File/New et slectionner le type VHDL o Sauver le fichier sous le nom compteurN.vhd Complter larchitecture afin que le comportement du circuit respecte les spcifications fonctionnelles. Simuler et vrifier le comportement. o On testera que les sorties voluent bien entre 0000 et 9999. Question 4. Consigner dans votre rapport : a. Le code VHDL de larchitecture b. Les rsultats de simulation. Faites valider par lenseignant dans la salle.

Validation 1.

Olivier ROMAIN

IUT GEII de Neuville sur Oise FPGA

V.

Affichage et mmorisation

Cette partie concerne la mmorisation et laffichage des valeurs en sorties du compteur N. La figure ci-dessous montre les connexions des blocs de mmorisation, daffichage ainsi que la dfinition des broches du FPGA connectes aux afficheurs 7 segments.

Olivier ROMAIN

IUT GEII de Neuville sur Oise FPGA

Figure 4 Lentit latch_data est un circuit latch 4 bits qui recopie la valeur de lentre dfinie sur 4 bits sur une sortie 4 bits lorsque le signal de commande latch est valide. La table de vrit de ce circuit est ci-dessous : latch 0 1 sortie[3..0] n+1 entree[3..0] sortie[3..0] n sortie[3..0] n Etats Recopie Mmoire

Crer un fichier VHDL (File/New) Enregistrer le sous le nom latch_data.vhd Ecrire en VHDL, lentit et larchitecture du circuit latch_data Simuler et vrifier le comportement. Question 5. Consigner dans votre rapport

a. Les codes VHDL b. Les rsultats de simulation. Faite valider par lenseignant

Validation 2.

Olivier ROMAIN

10

IUT GEII de Neuville sur Oise FPGA Lentit binaire_7seg est un circuit qui transcode la valeur de lentre 4 bits sur une sortie 7 bits pour afficher le rsultat dun des digits du compteur sur un afficheur 7 segments. Crer un fichier VHDL (File/New) Enregistrer le sous le nom binaire_7seg.vhd Ecrire en VHDL, lentit et larchitecture du circuit latch_data Simuler et vrifier le comportement.

Question 6.

Consigner dans votre rapport

c. Les codes VHDL d. Les rsultats de simulation. Faite valider par lenseignant

Validation 3.

Afin de tester cette premire partie, connecter le compteur, le circuit de mmorisation et laffichage. On utilisera un bouton de type switch button comme signal de commande enable du circuit latch.

VI.

Logique de comptage et fentre de mesure


On dsire mesurer uniquement le nombre N sur la fentre de comptage. Pour cela, un bloc de fentrage doit tre dvelopp. Lentit fentre prend en entre, le signal de mesure analyser et lhorloge de rfrence (une des quatre ; f1, f2, f3 ou f4). Les sorties du circuit, sont la commande de mmorisation du circuit de mmorisation, lhorloge du compteur, la commande de remise zro du compteur et lautorisation de compter.
Param eter Value N 1
f enetres clk mesure latch_compteur clk_compteur reset_compteur enable_compteur

inst4

Olivier ROMAIN

11

IUT GEII de Neuville sur Oise FPGA Les chronogrammes de ce circuit sont :

Lorsque la fentre de comptage passe de 0 1, on commence par remettre zro le compteur, puis on autorise le compteur compter. Avant que la fentre de mesure repasse ltat bas, on mmorise la valeur du compteur en activant le signal latch_compteur. Le paramtre generic N, permet de dfinir la largeur temporelle des signaux enable_compteur et latch_compteur, en nombre de priodes dhorloge. Question 7. Question 8. Analyser le code VHDL donn Faite un organigramme correspondant au fonctionnement du circuit

Simuler et vrifier le comportement. Question 9. simulation. Faite valider par lenseignant Consigner dans votre rapport, les dveloppements et les rsultats de

Validation 4.

Afin de tester cette premire partie, nous allons connecter les circuits fentre, compteur, le circuit de mmorisation et laffichage. Pour effectuer cette description schmatique : Crer un fichier BDF (File/New) Enregistrer le sous le nom TP23.bdf Crer les symboles des composants, compteurN, latch_data et binaire_7seg Relier les composants entres eux conformment la figure 4 Synthtiser le fichier BDF Simuler et vrifier le comportement.

Question 10.

Consigner dans votre rapport les rsultats de simulation.

On vrifiera pratiquement le bon fonctionnement de ces quatre circuits. Faite valider par lenseignant

Validation 5.

Olivier ROMAIN

12

IUT GEII de Neuville sur Oise FPGA

VII.

Base de temps

Le frquencemtre intgre quatre calibres dfinis au moyen de quatre horloges. Ces horloges (50MHz, 5MHz, 500kHz et 50kHz) sont produites au moyen de divisions frquentielles dune horloge de rfrence 50MHz. La figure ci-dessous illustre ce principe. La slection dune des quatre frquences ce fait au moyen dun multiplexeur de 4->1. Ce dernier sera conu partir du composant lpm_mux disponible dans la librairie du constructeur.

Dans le fichier TP23.bdf a. Insrer un composant multiplexeur via la librairie lpm_mux b. Dfinir les paramtres du multiplexeur (4 entres sur 1 bit) c. Relier le composant mux au reste du circuit conformment la figure cidessous

Lentit diviseur est un compteur (diviseur de frquence) gnrique. Il permettra de diviser le signal dhorloge par un facteur N programmable. Le rapport cyclique du signal de sortie clk_div est de 50%. Les frquences f1, f2, f3 et f4 seront obtenues par division du quartz 50MHz de la carte FPGA. Les rapports 10, 100 et 1000 permettront dobtenir des frquences de 5MHz, 500kHz et 50kHz de rfrences. Crer un fichier VHDL (File/New) Olivier ROMAIN 13

IUT GEII de Neuville sur Oise FPGA Enregistrer le sous le nom diviseur.vhd Ecrire en VHDL, lentit et larchitecture du circuit diviseur Simuler et vrifier le comportement.

Question 11.

Consigner dans votre rapport

a. Les codes VHDL b. Les rsultats de simulation. Faite valider par lenseignant

Validation 6.

Au moyen de cette entit et des composants disponibles dans la librairie constructeur, raliser larchitecture de la figure ci-dessus. Connecter cette partie aux prcdents dveloppements.

VIII.

Mesures exprimentales
De manire slectionner le calibre disponible pour dterminer la frquence du signal mesurer, on dsire que le frquencemtre possde deux modes. Le premier manuel laisse la libert lutilisateur de choisir lune des quatre frquences de rfrences disponibles, tandis que le second mode automatique, utilise les sorties du compteur pour dterminer si N est reprsent avec suffisamment de digits.

Olivier ROMAIN

14

IUT GEII de Neuville sur Oise FPGA

Dans un premier temps, on ne soccupera que de la partie manuelle. On utilisera pour cela les switch SW8 et SW9 pour commander le multiplexeur lpm_mux0 (slecteur de la frquence).

Aprs avoir cbler votre montage, blocs par blocs, on se propose de mesurer les performances de ce montage vis vis du cahier des charges initial. Pour cela, il est ncessaire dinjecter un signal dont on va mesurer la frquence. Une carte fille comprenant un connecteur BNC est connecte sur la carte FPGA. Le signal a analyser est disponible sur la broche PIN_A13 Modifier votre fichier BDF pour injecter le signal disponible sur la carte fille Faite valider par lenseignant Synthtiser et programmer la carte FPGA Injecter via le GBF un signal TTL Faite valider par lenseignant

Validation 7.

Rpondre aux questions suivantes : Question 12. Question 13. Question 14. Olivier ROMAIN Comment peut on talonner ce montage ? Quelle est la plage de frquence mesurable prcisment ? Quelles sont les incertitudes de mesure ? 15

IUT GEII de Neuville sur Oise FPGA Question 15. Question 16. Quels sont les inconvnients de ce montage ? Remplir le tableau de mesure ci-dessous

Frquences 5Hz 50Hz 100Hz 500Hz 1kHz 5kHz 10kHz 50kHz 100kHz 500kHz 1MHz 5MHz

N thorique

N pratique

Question 17.

Tracer sur un mme graphique, les courbes N_thorique=f(frquence)

et N_exprimental=g(frquence). Question 18. Conclusion

Partie optionnelle
Larchitecture du frquencemtre propose, permet de mesurer la frquence un facteur dchelle 2 prs. Si on veut une mesure directe, quelles sont les modifications apporter ? Proposer les modifications apporter Test et valider votre solution si le temps vous le permet.

Dans un second temps, on dsire raliser la partie automatique du slecteur de calibre. On utilisera pour cela un second multiplexeur lpm_mux1 qui prendra en entre, soit les commandes manuelles de slection du calibre (les switch SW8 et SW9), soit les sorties du circuit selecteur_automatique. La commande du multiplexeur lpm_mux1 sera le switch SW1. pour commander le multiplexeur lpm_mux0 (slecteur de la frquence).

Olivier ROMAIN

16

IUT GEII de Neuville sur Oise FPGA


selecteur_automatique unite[3..0] dizaine[3..0] centaine[3..0] millier[3..0] selecteur[1..0] led[1..0]

inst2

Le circuit selecteur_automatique calcul le meilleur calibre possible en fonction du N en sortie du compteur BCD. Les sorties sont, la valeur du slecteur de calibre et laffichage sur 2 leds de la valeur du slecteur.

Question 19. Question 20. Question 21. Question 22. simulation. Question 23.

Proposer un algorithme Proposer une architecture VHDL de cette entit Simuler et vrifier le comportement. Consigner dans votre rapport, les dveloppements et les rsultats de

Insrer et tester pratiquement les performances du frquencemtre

calibre automatique

Olivier ROMAIN

17

Anda mungkin juga menyukai