Home

TP1 La prise en main de la carte nexys 3

image

Contents

1. SS i AE ss combinatoire diviseur1 trig_compt compi L compt 11 8 ru _8 01 s SEG f hex gt trig_seg compt 15 12 with select 0 5 ms D compteur integer range 0 to 3 m ameni segment logic AN combinatoire 4 AN f segment gt with select Figure 5 Architecture du circuit Remarques Dans le diviseur1 le compteur est un entier allant de O 0 5ms 10ns 50000 constant trig const integer 50000 Signal Comp integer range 0 to trig Const 0 Dans le circuit compteur le comptage de segment se fait tous les 200 cycles de trig Segment est un entier de 0 3 o signal segment integer range 0 to 3 0 _ comptestunstd logic vector 15 downto 0 Travail 5 Simulation Nous allons effectuer une simulation pour l exemple pr c dent et visualiser les diff rents signaux de design Afin de ne pas trop ralentir la simulation on remplace le temps 0 5 ms par 40 ns et 0 5 seconde par 8 microsecondes on garde toujours le rapport 200 Faire un new source de type VHDL testbench Ce testbench est un fichier de test pour le module du travail 4 Dans ce module il suffira juste de cr er une horloge de fr quence 100 MHz BEGIN uut compteur PORT MAP MCLK gt MCIK AN gt AN SEG gt SEG MCEK process process begin MCLK lt O Wait for 5 ns MCLK lt 1 Wait for 5 ns end process END Dans la fen tre Design et sous la rubrique
2. view changer implementation en Simulation Effectuer une simulation comportementale jusqu 10 microsecondes Faites afficher les diff rents signaux de votre circuit Exercices Petits travaux d entrainement 1 G n ration d un signal carr d un Hz 100 MHz Nous souhaitons diviser la fr quence de l horloge 100 MHz de la carte pour g n rer un signal carr 1 Hz Pour cela il faudra d abord cr er un compteur qui s incr mente la vitesse de l horloge de la carte et d s qu il atteint une valeur pre d termin e la sortie bascule change d tat l algorithme ci dessous peut tre utile Sur le front montant de l horloge 100 MHz Incr menter un compteur Si le compteur atteint la valeur repr sentant 0 5 seconde Initialiser le compteur z ro Basculer la sortie UN HZ lt not UN_HZ end si end Remarque On d finit le compteur en tant qu un entier Signal compt integer range 0 to 50000000 Pour visualiser ce signal connecter toutes les 8 LED au signal UN HZ Utiliser par exemple la commande concurrente ci dessous LED lt 1111 1111 when UN HZ 1 else 0000 0000 2 Faire un chenillard sur les LED 0 1 sec O gt Q 0 1 sec 0 1 sec 0 1 sec 0 1 sec 0 1 sec 0 1 sec 0 1 sec 3 Cr ez le signal ci dessous et faite le sortir les sur la broche 1 du connecteur JD1 1ms 2ms ams 1ms De m T STS T OIL Une p riode 4 Le bu
3. Fili re ELT 2 ann e TP1 La prise en main de la carte nexys 3 Au cours de ce TP nous allons apprendre comment un programme VHDL s crit dans l environnement IS et ensuite comment ce programme se synth tise et s implante dans une cible donn e Ici nous utiliserons la carte Nexys 3 de Xilinx o le FPGA en question est le Spartan 6 XC6SLX16 324 broches Le manuel d utilisation de cette carte se trouve sur le bureau Vous pouvez aussi le t l charger partir du site fabricant www digilentinc com Travail 1 Allumer un motif sur les 8 LED de la carte voir la vid o se trouvant sur la page web de TP Carte nexys 3 S V 0 ED O O O O O O O O I Dans l environnement ISE faire une entit puis l architecture correspondante pour allumer le mod le suivant 11001010 sur les 8 LED de la carte si l interrupteur SWO0O 1 sinon 11110000 Ajoutez ce projet des contraintes li es aux broches physiques de FPGA Pour cela reportez vous la page 18 du manuel d utilisation de la carte Utilisant l outil ADEPT chargez le FPGA et v rifiez si le circuit fonctionne comme vous le souhaitiez Travail 2 allumage sur les 7 segments Dans un premier temps nous allons afficher sur un des 7 segments un chiffre hexa d cimal entre 0 et F Le circuit concevoir est le suivant HEX Circuit n 4 combinatoire Figure 1 Le circuit r aliser Les connexions d
4. L 1 ONO OOO OO OSseconde _ Comment faire Une id e est d utiliser le m me circuit qu avant mais on essaye de ne pas envoyer la m me valeur sur les lignes AN Par exemple j envoie sur AN la valeur 0111 et je temporise 0 5 seconde puis j envoie 1011 et je temporise 0 5 seconde et ainsi de suite Il faudra donc cr er une base temporelle qui me donne toutes les 0 5 seconde un signal de d clanchement qu on appelle triger Sur ce triger je change de valeur que je dois envoyer sur AN Ce principe est pr sent par un chronogramme Les chronogrammes constituent un moyen tr s r pandu pour d finir les actions qui se d roule dans le temps CLKLELE LEE AA 0 5 sec trig ee NS 1e _ B varie e 110 GEKO aoo yaoi LL TO Figure 3 Chronogramme con u Une fois le chronogramme est con u on imagine un circuit contenant des blocs qui r alisent des fonctions souhait es Il est tr s important de dessiner le diagramme fonctionnel ou architecture d taill de votre circuit avant de commencer programmer La Figure 4 3 pr sente l architecture du circuit On g n re un signal trig avec une p riode de 0 5 second partir de l horloge de la carte qui est 100 MHz Ce signal trig va servir pour commuter entre les 7 segments Pour simplifier on va les num roter de 0 3 avec un signal de type entier signal segment sur la figure qui garde la trace de 7 segment allum Ensuit
5. ance r tinienne Cette mani re d affichage s appelle l affichage multiplex et a comme but de r duire le nombre de fils n cessaires pour allumer toutes les combinaisons ici 11 fils au lieu de 28 pourquoi Travail 4 Compteur 4 digits Modifiez le circuit pr c dent pour g n rer en interne le signal HEX et afficher finalement un compteur hexad cimal 4 digits qui est incr ment toutes les 0 1 seconde 000000010002 000F 0010 20011 gt FFFF 0000 0001 Oh l l comment faire Il faudra toujours pouvoir rep rer le segment allum donc la partie qui g n rait le signal trig et segment ne sera pas touch e En termes d affichage on affichait la valeur fix e par les interrupteurs alors que maintenant il faudra la g n rer On pense une registre de taille 4 digits hexad cimaux c est dire 16 bits que l on incr mente toutes les 0 1 seconde Ce registre peut d clarer comme signal Compt std logie vector LS Towmeo 07 Il nous faut un autre signal triger qui trigue toutes les 0 1 second Maintenant il nous faut juste un circuit combinatoire qui envoie les diff rents digits du registre 16 bits au bon moment vers les 7 segment Voir le tableau ci dessous 5 AU 0111 compt 15 downto 12 1011 compt 11 downto 8 1101 compt 7 downto 4 1110 compt 3 downto 0 La Figure 5 pr sente l architecture d taill e du circuit compt std _logic_vector pe 0 15 downto 0 logic 2E CLK
6. e un circuit combinatoire qui utilise ce signal segment et qui envoie la bonne valeur sur AN 0111 1011 1101 1110 integer range 0 to 3 i compteur 2 logie diviseur segment combinatoire logic combinatoire Figure 4 diagramme fonctionnel architecture du circuit R alisation du diviseur La fr quence d horloge tant 100 MHz p riode est de 10 ns pour obtenir 0 5 s il faudra 0 5s 10ns 50 000 000 p riodes 10 ns Sonal comp Tnteger rang 0 COo 50000000 gt Comp est un signal qui sera repr sent sur 26 bits et peut aller donc Jusgu a 2720 107 L00803 diviseur process CLK begin 1f CLK event and CLK 1 then comp lt comp l 1f comp 49 999 999 then L O rs comp lt 0 else BELG lt NOT end if end if end process La r alisation du compteur C est un circuit synchronis avec CLK mais activ avec trig Signal segment integer range 0 to 3 segment donc sera repr sent par 2 bits il ne peut aller que AusSour 9x AINSI SL era 0 et noni pas 4 compteur process CLK begin 1f CLK event and CLK 1 then L brig LT then segment lt segment 1 ent end 1f end process logique combinatoire Se r alise avec une commande with select ou when else Suite du travail Changez la p riode de 0 5 seconde par 0 5 milliseconde et observez le r sultat En effet on voit toutes les LED allum es gr ce la persist
7. e la carte nexys 3 sont pr sent es ci dessous 3 3V C4 U16 BTNL gt 16 Buttons BTNR U15 V15 BTNU GE M11 BTND si N11 B8 R11 BTNS TA N16 N15 SWO o w T10 P18 r P17 AN3 SW1 o w TO II I I I SW2 o www V9 lad lal al a Slid k PP Switches SWS M8 a Display SW4 0 N8 SW57 0 1 U8 SU 0 1 V8 SW7 mo w 5 Spartan 6 Figure 2 Sch matique de la carte nexys3 Pour les 4 interrupteurs de la Figure 1 de on utilise les SWO SW3 du sch ma de la Figure 2 Le circuit combinatoire pr sent sur la Figure 1 peut se r aliser facilement par l instruction with select ou when else Pour pouvoir allumer un 7 segments particulier parmi les 4 il faudra qu on met 0 volt la ligne AN correspondant Par exemple pour allumer une valeur uniquement sur le 7 seg de gauche on envoie un 0 logique sur ANO et un 1 logique AN1 AN2 et AN3 Si on souhaite afficher la valeur sur tous les 4 7 segment on envoie un 0 logique sur les 4 lignes ANO AN3 On peut d finir AN comme un std_logic_ vector 3 downto 0 et saisir AN lt 0000 Si vous voulez allumer uniquement le segment de gauche AN lt 0111 Travail 3 Faite d filer le nombre hexa sur les 4 segments comme il est pr sent sur la figure ci dessous Le temps d affichage par sept segment est de 0 5 sec 0 5 seconde 0 5 seconde 0 5 seconde en ep C ep en en Om NEO OA CCE ECO OR 0O00 L
8. t est de cr er un jeu Faites afficher 8888 sur les segments D s que les segments s teignent deux joueurs appuient sur leurs boutons correspondant Celui qui r ussit de le faire en premier voit sa LED allum e et elle reste allum e jusqu ce que l animateur appuie sur le bouton RESET 5 Faire un circuit pour simuler deux d s A chaque appuie sur le bouton BTND sur deux des segments sont affich s pendant 1 seconde 00 et ensuite deux nombres al atoires entre 1 et 6

Download Pdf Manuals

image

Related Search

Related Contents

SWRL-IQ User Manual  Benutzerhandbuch SOLCOMBOX    AlarmSense-Installation-Manual  Serie 914X - Eureka Electronics    Omega Vehicle Security OS542 User's Manual  Dossier pédagogique  12-Pad Laptop Pad Controller  Sony UPA-PC100 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file