Olivier ROMAIN
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
Compteurs BCD
Transcodage
Afficheurs 7 segments
Olivier ROMAIN
Olivier ROMAIN
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
III.
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
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
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
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
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.
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.
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.
On vrifiera pratiquement le bon fonctionnement de ces quatre circuits. Faite valider par lenseignant
Validation 5.
Olivier ROMAIN
12
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.
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
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.
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
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
calibre automatique
Olivier ROMAIN
17