Documente Academic
Documente Profesional
Documente Cultură
Travaux Dirigs
FPGA & VHDL
TD1 : Environnement de dveloppement QUARTUS II TD2 : Synthse de systmes logiques combinatoires TD3 : Synthse de systmes logiques squentiels TD4 : Video Graphic Array (VGA) TD5 : Mmoires RAM
TD1
Environnement de dveloppement QUARTUS II
Functional Simulation the synthesized circuit is tested to verify its functional correctness; the simulation does not take into account any timing issues. Programming and Configuration the designed circuit is implemented in a physical FPGA chip by programming the configuration switches that configure the LEs and establish the required wiring connections. Fitting the CAD Fitter tool determines the placement of the LEs defined in the netlist into the LEs in an actual FPGA chip; it also chooses routing wires in the chip to make the required connections between specific LEs. Synthesis the CAD Synthesis tool synthesizes the circuit into a netlist that gives the logic elements (LEs) needed to realize the circuit and the connections between the LEs. Timing : Analysis and Simulation propagation delays along the various paths in the fitted circuit are analyzed to provide an indication of the expected performance of the circuit. (Analysis). The fitted circuit is tested to verify both its functional correctness and timing. (Simulation) Design Entry the desired circuit is specified either by using a hardware description language, such as Verilog or VHDL, or by means of a schematic diagram.
Notes : LEs : Logic Elements CAD : Computer Aided Design Q1. Q2. Donner pour chacune des tapes une explication / traduction claire. Remplissez lorganigramme suivant reprsentant toutes les tapes.
1/8
2/8
3/8
A la compilation du code que vous avez cr, on obtient le rapport de compilation suivant :
Q4. Daprs les caractristiques du FPGA, quel serait selon vous lordre de prix dun composant de ce type pour des faibles quantits. 4/8
Q5.
Expliquer les champs suivants du rapport de compilation : Met timing requirements Total Logic Elements
La section Timing Analyser permet davoir des informations sur les diffrents temps de propagation lintrieur du composant. Dans notre cas simple, nous avons :
Q8. Modifier larchitecture VHDL prcdente afin de mettre en uvre cette nouvelle application.
5/8
Q9.
Justifier les parties qui ont volues par rapport au mode combinatoire.
La prsence de lhorloge nous donne aussi une autre version du compilation Report .
6/8
Plusieurs mthodes sont alors utilisables pour le compilateur puisse trouver le chemin le plus favorable la contrainte fixe. Elles sont slectionnables dans : Assignements>Settings>Fitter Settings. (Ci-dessous)
Q11. Expliquer chacune des 3 mthodes doptimisation qui sont proposes. A la compilation, nous avons ignor un Warning couramment rencontr :
Q12. Expliquer ce Warning et prciser si celui-ci (load capacitance) possde une influence quelconque sur les analyses de temps du systme.
7/8
Q13. Placer sur le schma tous les lments de la liste hirarchique quil est possible de retrouver.
8/8
TD2
Synthse de systmes logiques combinatoires
& c 1
Figure 1 : Schma d'une application
1/3
2. Transcodeur
On souhaite raliser un transcodeur qui prend en entre un mot BCD (Binaire Cod Dcimal) de 4 bits ABCD (D poids faible) et qui produit les sorties (a b c d e f g) de commande des leds de manire afficher les symboles dcimaux correspondants sur l'afficheur 7 segments.
a b g e d
Figure 2 : Schma du composant et numrotation des segments de l'afficheur
A B C D Transcodeur a b c d e f g
Raliser un dcodeur BCD 7 segments en VHDL. Vous utiliserez un afficheur 7 segments pour lequel un niveau logique bas allume le segment et un niveau haut teint le segment. Les segments seront commands par les combinaisons de 4 entres. Lorsque le code binaire ne reprsente pas un chiffre dcimal, lafficheur reprsentera un E symbolisant une erreur. Q1. Raliser le code VHDL entit et architecture en utilisant une structure WITH, SELECT, WHEN. Q2. Raliser le code VHDL entit et architecture en utilisant une structure avec CASE, WHEN. Lorsque le composant est charg dans le FPGA, le RTL Viewer nous donne limplmentation matrielle suivante :
2/3
Note : Quel que soit la mthode de codage de larchitecture (process ou instructions concurrentes), la compilation donne le mme schma RTL Viewer. Q3. Expliquer le schma ci-dessus et prciser comment on arrive allumer correctement chaque segment avec cette synthse.
3/3
TD3
Synthse de systmes logiques squentiels
1. Jeu
On veut concevoir un jeu du type Question pour un champion (4 joueurs), laide dune maquette DE1. Lappui sur un bouton poussoir provoque un avertissement sonore (buzzer, commun tous les joueurs) et le blocage du systme. De plus, un signal lumineux (individuel chaque joueur) spcifie le joueur ayant appuy le premier parmi les quatre. Les autres joueurs ne peuvent alors plus intervenir car les autres boutons nont alors plus deffet. Le systme ne peut tre remis zro que par lanimateur laide dune remise zro (Clear). Le buzzer et les 4 signaux lumineux steignent. Q1. Faite un schma lectronique du systme en considrant que vous utiliser la carte DE1. Q2. Q3. Donner le diagramme dtats du dispositif. Ecrivez le programme permettant de raliser cette fonction.
Dans cette version du systme, le buzzer retenti pendant tout le temps, jusqu' ce que le prsentateur appuis sur Clear. Cela peut tre contraignant. Q4. Sachant que nous disposons dune horloge 10 kz pour piloter notre systme squentiel, trouver une ralisation permettant davoir un retentissement du buzzer uniquement pendant 0,5s. Implmenter votre nouveau systme sans modifier le code des questions prcdentes. (Simplement en rajoutant un nouveau composant au systme).
2. Registre dcalage
2.1. Registre dcalage simple
Q1. Construire un systme de registre dcalage 8 bits Parallle>Srie. C'est--dire que les bits du vecteur dentre (8 bits) sont transmis en sortie au rythme dune horloge (front montant) lorsque la commande send est envoye au systme. Un reset (RAZ) asynchrone sera prvu.
1/4
2/4
Cet encodeur possde un dsavantage majeur : si une trop longue squence de bits 1 successifs est transmise, il ny a aucune transition sur la ligne. Ceci rend la synchronisation entre le transmetteur et le rcepteur impossible. Pour remdier cela, le standard USB prvoit une opration dintercalage de bits (bit stung). En effet, ds quune chane de six 1 est transmise, on intercale un 0 pour forcer une transition. Il est facile denlever ces 0 au rcepteur pour recomposer le message original. Une portion de la chane de communication correspondante est illustre sur la figure suivante :
La source : Elle gnre les bits du message transmettre sur le cble USB. Intercalage de bit: Il doit tre capable de dtecter une squence de 6 1 successifs et de transmettre un message avec les ventuels bits de stuffing . Si un bit de stuffing intervient, la ligne maintien est place 1 pour un coup dhorloge afin de signaler la source quil faut attendre. Ce temps correspond au temps de mettre le bit supplmentaire dans le message. Lencodeur NRZI : Bloc ralisant la fonction NRZI de la Figure 2.
3/4
Q6. Donner le code VHDL de lencodeur NRZI avec une architecture code en flot de donne.
4/4
TD4
Video Graphic Array (VGA)
Laffichage vido VGA est un grand standard courant pour laffichage graphique. Il est valable quelque soit la technologie de lcran (cathodique ou LCD).
1. Objectifs :
Nous avons pour objectif de raliser une carte graphique trs simple. Elle permettra au moyen de trois interrupteurs de raliser laffichage des trois couleurs RGV (Red, Green and Blue) ou une combinaison des trois.
2. Le standard VGA
2.1. Prsentation des signaux
Une image est reprsente par des Pixels (Picture Elements). Chaque pixel contient 3 chromophores, un Rouge (Red), un Vert (Green) et un Bleu (Blue). La combinaison des chromophores RBG permet de raliser une infinit de couleur.
1/7
Un signal RGB contient 5 signaux : Une synchronisation horizontale, permet de contrler la position horizontale de limage dans la zone visible de lcran Une synchronisation verticale, permet de contrler la position verticale de limage dans la zone visible de lcran. Un signal analogique pour le Rouge (0 > 0,7V) Un signal analogique pour le Vert (0 > 0,7V) Un signal analogique pour le bleu (0 > 0,7V) Comme le montre la Figure 1, le rafrachissement de limage dbute en haut gauche et se termine en bas droite. Chaque pixel est dfini lune aprs lautre. A la fin de la premire ligne, le compteur des colonnes est remis zro et le compteur de ligne passe 1, etcJusqu que limage soit compltement dfinie. La frquence de limage doit tre de 60Hz afin de rduire la perception du scintillement de limage.
2/7
Format
Active Front Sync Back Active Front Sync Back Video Porch Pulse Porch Video Porch Pulse Porch 640 16 24 16 32 32 40 56 16 32 24 24 16 48 96 40 96 48 128 128 120 80 64 136 136 96 96 48 128 48 112 128 88 64 160 152 160 144 176 208 480 480 480 480 600 600 600 600 600 768 768 768 768 11 9 11 1 1 1 37 1 1 3 3 1 1 2 3 2 3 4 4 6 2 3 6 6 3 3 31 28 32 25 14 23 23 21 27 29 29 28 36
640x480, 60Hz 640x480, 72Hz 640x480, 75Hz 640x480, 85Hz 800x600, 56Hz 800x600, 60Hz 800x600, 72Hz 800x600, 75Hz 800x600, 85Hz 1024x768, 60Hz 1024x768, 70Hz 1024x768, 75Hz 1024x768, 85Hz 31.500 31.500 36.000 38.100 40.000 50.000 49.500 56.250 65.000 75.000 78.750 94.500
640 640 640 800 800 800 800 800 1024 1024 1024 1024
Dans la Figure 2, compt_h est le compteur des pixels horizontaux, permettant de savoir ou en est laffichage et de gnrer convenablement le signal de synchronisation horizontale.
Q1. Daprs le tableau des timings, complter la variable compt_h de la Figure 2, sachant que nous travaillons en 640x480 60 Hz.
3/7
Q2.
Q3. Complter le Tableau 1 en retrouvant la frquence daffichage des pixels (pixels Clock). Nous prendrons une frquence de 25Mhz comme horloge de rfrence de notre systme squentiel. Q4. Dans la figure ci-dessous, retrouver tous les temps du chronogramme.
Q5.
3. Ralisation en VHDL
Nous cherchons implmenter le systme de gestion des signaux VGA dans un FPGA. La carte DE1 de chez ALTERA possde en effet un connecteur VGA reli au FPGA. Le brochage de ce connecteur au FPGA est donn dans la documentation. La carte DE1 possde une horloge de 50 Mhz, partir de laquelle nous allons cadencer lensemble du systme.
4/7
Q6. En annexes est prsent un exemple de schma possible pour la ralisation de linterface VGA. Pour chacun des blocs, expliquer son comportement. Q7. Q8. Q9. Comment allez vous raliser larchitecture du bloc div2 ? Comment allez vous raliser larchitecture des blocs compteurs ? Donner le diagramme dtat des deux squenceurs?
5/7
6/7
7/7
TD5
Mmoires RAM
Dans un systme numrique il est souvent ncessaire de fournir une certaine quantit de mmoire afin de stocker et manipuler des variables. Si ce systme numrique est implment base de FPGA, il est possible dutiliser les ressources internes du composant du composant. Si des quantits de mmoire plus importante sont ncessaires, nous devons utiliser de la mmoire externe qui sera pilote par le FPGA. Q1. Quelle quantit de mmoire interne peut intgrer le FPGA de la carte DE1 Altera ?
Q2. A laide du User Manuel fournie avec la maquette DE1, dmontrer la taille de 512 Ko pour la SRAM. Q3. Localiser la mmoire SRAM et la mmoire SDRAM sur la carte DE1.
Lacronyme de SRAM est Static RAM. Lacronyme de SDRAM est Synchronous Dynamic RAM. Q4. En comparant les spcifications des datasheets ci-dessous et des shcmas du User manual des deux mmoires RAM, indiquer les informations qui justifient les principales caractristiques (Static, Synchronous, Dynamic) de chacune des mmoires.
1/5
Q5.
2/5
Les FPGA Cyclone II comporte des blocs mmoires appels M4K. Chaque bloc mmoire est compos de 4096 bits de mmoire qui peuvent tre configurs pour implmenter de la mmoire de taille variables. Les M4K blocs comportent des registres sur les entres et possdent deux ports diffrents pour lcriture et la lecture des donnes destination, et en provenance de la mmoire. Lorsque nous souhaitons raliser des applications complexes, les structures logiques telles que des additionneurs, des registres, des compteurs, des mmoires peuvent tre implmentes en utilisant les modules LPM depuis les librairies paramtrables de Quartus II. Nous allons utiliser cette librairie pour implmenter la mmoire de la Figure 4. Crer un nouveau projet. Lancer loutil de cration de composant : Tool>MegaWizard Plug-In Mangage>Create a new custom MegaFunction variation Lcran 1 se constitue comme suit (Figure 5):
3/5
Dans lcran 2, slectionner les blocs de mmoire M4K, et slectionner single clock dans Wich cloking method do you like to use ? Dans lcran 3, dslectionner q output port dans la catgorie Wich port sould be registered ? Accepter les options par dfaut des crans suivants.
4/5
Crer un nouveau Top-level en schematic (New>Block Diagram/Schematic File) avec votre module RAM et vos afficheurs 7 segments. Pour obtenir un composant partir des fichiers VHDL, vous devez les crer : Clic droit sur le composant (fichier VHDL) puis Create Symbol file for Current file. Raliser un pin assignement qui vous permettra de tester le fonctionnement de la mmoire RAM laide des lments de la platine DE1 :
Entre DE1
SW0 SW3 SW4 SW7 SW9 KEY0
Signal
Datain Adress Write Clock Dataout
Affichage
HEX1 HEX3 LEDG0 HEX0
5/5