Travaux Dirigés FPGA & VHDL



Documents pareils
SIN-FPGA DESCRIPTION PAR SCHEMA

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

IFT1215 Introduction aux systèmes informatiques

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Manipulations du laboratoire

VIII- Circuits séquentiels. Mémoires

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

QUESTION 1 {2 points}

Once the installation is complete, you can delete the temporary Zip files..

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

Conception de circuits numériques et architecture des ordinateurs

Chap17 - CORRECTİON DES EXERCİCES

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Transmission d informations sur le réseau électrique

Le multiplexage. Sommaire

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

TD 1 - Transmission en bande de passe

CLIP. (Calling Line Identification Presentation) Appareil autonome affichant le numéro appelant

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Chapitre 4 : Les mémoires

Modules d automatismes simples

TD Architecture des ordinateurs. Jean-Luc Dekeyser

fullprotect inside EOLE SPEie RS E-SPEie V-0.6A-RS 1.0 revision Protection environnement Datasheet édition française

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

Cours Informatique 1. Monsieur SADOUNI Salheddine

Université de La Rochelle. Réseaux TD n 6

Tests de performance du matériel

Chapitre 18 : Transmettre et stocker de l information

GUIDE DE PRISE EN MAIN ISIS PROTEUS V7

TER Licence 3 Electronique des Télécoms Transmission GSM

TP Modulation Démodulation BPSK

Projet Matlab : un logiciel de cryptage

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

opti-vm Serveur Vocal et Standard Automatique Siemens HiPath 11xx et Hipath 12xx Installation et Guide Utilisateur Version 1.0

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Projet # 3 Serrure à deux clés

SUR MODULE CAMÉRA C38A (OV7620)

SCL LOGICIEL DE CONTROL

Chapitre 13 Numérisation de l information

Master d'informatique 1ère année Réseaux et protocoles. Couche physique

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Projet M1 Année scolaire 2013/2014

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

1. PRESENTATION DU PROJET

Une liste des distributeurs Paxton se trouve sur le site Internet -

J LOGOSCREEN nt Enregistreur sans papier avec écran TFT et carte CompactFlash. B Notice de mise en service 08.

Transmissions série et parallèle

Programme EcranTactile-01 MANUEL DE MISE EN ŒUVRE

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Guide d'installation rapide TFM-560X YO.13

Matériel & Logiciels (Hardware & Software)

Tutoriel de formation SurveyMonkey

Manuel programmation QUESTOR

PIC EVAL Dev Board PIC18F97J60

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Prise en main. Prise en main - 0

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

GPA770 Microélectronique appliquée Exercices série A

Master4Light. Caractérisation Optique et Electrique des Sources Lumineuses. Equipement 2-en-1 : source de courant et spectrophotomètre

ET 24 : Modèle de comportement d un système Introduction à Labview et initiation à la réalisation d un Instrument Virtuel (VI).

Manuel d utilisation

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

Millenium3 Atelier de programmation

Leçon 1 : Les principaux composants d un ordinateur

Software and Hardware Datasheet / Fiche technique du logiciel et du matériel

ASR1 TD7 : Un microprocesseur RISC 16 bits

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

ProCod. Manuel d utilisation. Software de programmation pour codeurs absolus TWK modèles CRF et DAF CRF DF 08 / 10

TD : Codage des images

Guide Mémoire NETRAM

Informatique Générale

Procédure appropriée pour éditer les diagrammes avec ECM Titanium

Monitor LRD. Table des matières

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Projet Robot Centaure

Fiche technique CPU 314SC/DPM (314-6CG13)

UP 588/13 5WG AB13

Enregistreur sans papier. Interface LON. B Description des interfaces 10.99/

CONFIGURATION DE L AUTOMATE SIEMENS

Transmission de données. A) Principaux éléments intervenant dans la transmission

Fête de la science Initiation au traitement des images

domovea tebis La maison sous contrôle

MUNIA Manuel de l'utilisateur

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

SERVEUR DÉDIÉ DOCUMENTATION

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

2. Couche physique (Couche 1 OSI et TCP/IP)

LOGICIEL DC4D MONITOR

CAA/SE N O T I C E D E M O N T A G E E T D U T I L I S A T I O N KIT DE MONTAGE. Clavier lumineux codes DIGICODE

Les techniques de multiplexage

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Licence Sciences et Technologies Examen janvier 2010

Bien commencer avec un LaunchPad MSP430G et un Breadboard

Transcription:

Université de Savoie Module ETRS-511 FPGA & VHDL Travaux Dirigés FPGA & VHDL Sylvain MONTAGNY sylvain.montagny@univ-savoie.fr Bâtiment chablais, bureau 13 04 79 75 86 86 TD1 : Environnement de développement QUARTUS II TD2 : Synthèse de systèmes logiques combinatoires TD3 : Synthèse de systèmes logiques séquentiels TD4 : Video Graphic Array (VGA) TD5 : Mémoires RAM Retrouver tous les documents de Cours/TD/TP sur le site www.master-electronique.com

Université de Savoie Module ETRS-511 FPGA et VHDL TD1 Environnement de développement QUARTUS II 1. Généralités sur la synthèse logique La documentation fournie par ALTERA sur l environnement de programmation Quartus II propose les différentes étapes pour l organisation d un projet. Dans le désordre, les étapes proposées sont : 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. Donner pour chacune des étapes une explication / traduction claire. Q2. Remplissez l organigramme suivant représentant toutes les étapes. 1/8

2/8

2. Projet sur la platine DE1 ALTERA La carte électronique sur laquelle nous allons travailler en TD/TP est la carte DE1 de chez ALTERA. Elle permet de mettre en œuvre toute une série d applications de tests. Figure 1 : Carte DE1 de chez ALTERA 2.1. Procédure d installation La procédure implique au minimum l installation de : QUARTUS II (Web Edition) + registration on ALTERA web Site for 150 days free Web Licence Drivers de la carte DE1 permettant de charger le code dans le FPGA. Après installation du kit de développement nous réalisons une application de test extrêmement simple. Q1. Expliquer pourquoi les applications permettant de tester le bon fonctionnement de la chaîne de développement doivent être très simple? 3/8

2.2. Logique combinatoire Nous allons tester notre platine en réalisant une porte NOR. Les entrées A et B seront prises sur l interrupteur SW0 et SW1 La sortie S sera la LED LEDR[0] La documentation de la carte DE1 précise une connexion de la LEDR[0] avec la broche nommée PIN_R20, SW0 avec la broche nommée PIN_L21, et SW1 avec la broche nommée PIN_L22. Q2. Remettre dans l ordre les actions à mener pour arriver à bout de cette petite application : Programmer la carte FPGA Tester le fonctionnement de l application sur la platine Affecter les broches du composant aux entrées / sorties du système Ouvrir un projet sous le logiciel QUARTUS II (Web Edition) Coder le comportement du composant Dessiner sur papier libre, la table de vérité, le schéma électronique, et/ou le diagramme d état du système. Coder la partie ENTITY du système. Q3. Faire les étapes précédentes que vous pouvez. A la compilation du code que vous avez créé, on obtient le rapport de compilation suivant : Figure 2 : Rapport de compilation du projet Q4. D après les caractéristiques du FPGA, quel serait selon vous l ordre de prix d un composant de ce type pour des faibles quantités. 4/8

Q5. Expliquer les champs suivants du rapport de compilation : Met timing requirements Total Logic Elements La section «Timing Analyser» permet d avoir des informations sur les différents temps de propagation à l intérieur du composant. Dans notre cas simple, nous avons : Figure 3 : Timing Analyser summary Q6. A l aide de la documentation de Quartus II ci-dessous, expliquer la signification de tpd? 2.3. Logique séquentielle synchrone Nous allons rajouter la présence d une horloge dans notre système. La sortie sera validée seulement sur la présence d un front montant d une horloge «clock». Q7. Donner le schéma logique global de cette application? Q8. Modifier l architecture VHDL précédente afin de mettre en œuvre cette nouvelle application. 5/8

Figure 4 : Rapport de compilation du projet en mode synchrone Q9. Justifier les parties qui ont évoluées par rapport au mode combinatoire. La présence de l horloge nous donne aussi une autre version du «compilation Report». Q10. Expliquer la 5 ème ligne du tableau. Figure 5 : Timing Analyser du projet en logique synchrone 2.4. Timing Constraints : La compilation du circuit avec Quartus II nous a fourni une valeur maximale de cadencement du système (f max ). Cette valeur peut ne pas être en adéquation avec le cahier des charges du produit final. Il est alors possible de préciser au compilateur les contraintes de temps à optimiser. Par exemple, dans le système précédent, nous pourrions souhaiter un cadencement à 400 Mhz au lieu des 380,08 Mhz trouvé. La fréquence souhaitée peut être sélectionnée dans : Assignment> Timing Analysis Settings >Classic Timing Analyser Settings 6/8

Plusieurs méthodes sont alors utilisables pour le compilateur puisse trouver le chemin le plus favorable à la contrainte fixée. Elles sont sélectionnables dans : Assignements>Settings>Fitter Settings. (Ci-dessous) Figure 6 : Fitter Effort Figure 7 : Extrait de la documentation sur les possibilités d'optimisation Q11. Expliquer chacune des 3 méthodes d optimisation qui sont proposées. A la compilation, nous avons ignoré un Warning couramment rencontré : Q12. Expliquer ce Warning et préciser si celui-ci (load capacitance) possède une influence quelconque sur les analyses de temps du système. 2.5. RTL Viewer L outil RTL Viewer (Tool>Netlist Viewers>RTL Viewer) permet d afficher le schéma designer par Quartus II et qui sera implémenté dans le FPGA. Dans notre cas, le schéma volontairement incomplet est le suivant : 7/8

Figure 8 : Vue incomplète du schéma fourni par le RTL Viewer Q13. Placer sur le schéma tous les éléments de la liste hiérarchique qu il est possible de retrouver. 8/8

Université de Savoie Module ETRS-511 FPGA et VHDL TD2 Synthèse de systèmes logiques combinatoires 1. Différentes méthodes de descriptions VHDL Nous allons étudier différentes façons de coder un projet VHDL. L entité du Top level sera toujours appelée appli. L architecture sera toujours appelée arch_appli. Le schéma du système est le suivant : a & b 1 1 S & c 1 Figure 1 : Schéma d'une application 1.1. Description par flot de données Le système est décrit par les équations booléennes qu il représente. Q1. Faire la description VHDL de ce composant. 1.2. Description comportementale Cette description permet de décrire le comportement sans faire appel aux équations mais en passant par la table de vérité. Q2. Réaliser la table de vérité de ce composant Q3. Faire une description comportementale de ce composant sans utiliser de process. Q4. Faire une description comportementale de ce composant en utilisant un process. 1/3

1.3. Description structurelles La description structurelle décrit la fonction à partir de composants préexistants. Il suffit de définir : La liste des composant utilisés (composant déjà écrit en VHDL par ailleurs) La liste des interconnexions entres ces composants Q5. Réaliser le composant ET Q6. Réaliser le composant NON Q7. Réaliser le composant OU Q8. Réaliser le composant globale en utilisant chacun des composants déjà réalisés. 2. Transcodeur On souhaite réaliser un transcodeur qui prend en entrée un mot BCD (Binaire Codé Décimal) de 4 bits ABCD (D poids faible) et qui produit les sorties (a b c d e f g) de commande des leds de manière à afficher les symboles décimaux correspondants sur l'afficheur 7 segments. a A B C D Transcodeur a b c d e f g f e g b c d Figure 2 : Schéma du composant et numérotation des segments de l'afficheur Réaliser un décodeur 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 commandés par les combinaisons de 4 entrées. Lorsque le code binaire ne représente pas un chiffre décimal, l afficheur représentera un E symbolisant une erreur. Q1. Réaliser le code VHDL entité et architecture en utilisant une structure WITH, SELECT, WHEN. Q2. Réaliser 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 l implémentation matérielle suivante : 2/3

Figure 3 : Schéma partiel du RTL Viewer Note : Quel que soit la méthode de codage de l architecture (process ou instructions concurrentes), la compilation donne le même schéma RTL Viewer. Q3. Expliquer le schéma ci-dessus et préciser comment on arrive à allumer correctement chaque segment avec cette synthèse. 3/3

Université de Savoie Module ETRS-511 FPGA et VHDL TD3 Synthèse de systèmes logiques séquentiels 1. Jeu On veut concevoir un jeu du type «Question pour un champion» (4 joueurs), à l aide d une maquette DE1. L appui sur un bouton poussoir provoque un avertissement sonore (buzzer, commun à tous les joueurs) et le blocage du système. De plus, un signal lumineux (individuel à chaque joueur) spécifie le joueur ayant appuyé le premier parmi les quatre. Les autres joueurs ne peuvent alors plus intervenir car les autres boutons n ont alors plus d effet. Le système ne peut être remis à zéro que par l animateur à l aide d une remise à zéro (Clear). Le buzzer et les 4 signaux lumineux s éteignent. Q1. Faite un schéma électronique du système en considérant que vous utiliser la carte DE1. Q2. Donner le diagramme d états du dispositif. Q3. Ecrivez le programme permettant de réaliser cette fonction. Dans cette version du système, le buzzer retenti pendant tout le temps, jusqu'à ce que le présentateur appuis sur Clear. Cela peut être contraignant. Q4. Sachant que nous disposons d une horloge à 10 kz pour piloter notre système séquentiel, trouver une réalisation permettant d avoir un retentissement du buzzer uniquement pendant 0,5s. Implémenter votre nouveau système sans modifier le code des questions précédentes. (Simplement en rajoutant un nouveau composant au système). 2. Registre à décalage 2.1. Registre à décalage simple Q1. Construire un système de registre à décalage 8 bits Parallèle>Série. C'est-à-dire que les bits du vecteur d entrée (8 bits) sont transmis en sortie au rythme d une horloge (front montant) lorsque la commande «send» est envoyée au système. Un reset (RAZ) asynchrone sera prévu. 1/4

2.2. Registre à décalage liaison série Dans les liaison séries, l octet transmis sur la ligne est encadré par un bit de start (niveau bas) au début, et un bit de parité + un bit de stop (niveau haut) à la fin (cf Figure 1). Q2. Faire le nouveau codage VHDL de la liaison série. Figure 1 : Diagramme temporelle de la liaison série 3. Conception d un encodeur NRZI On utilise en communications numériques sur ligne câblée (paire torsadée, câble coaxial) divers codes de ligne pour communiquer en bande de base, c est à dire que le signal est transmis tel quel sur la ligne (sans modulation). Ces codes constituent tout simplement une façon de représenter les bits à transmettre. Ceci permet d obtenir des caractéristiques spectrales intéressantes et/ou des propriétés qui faciliteront la synchronisation au récepteur. Le code en ligne que nous allons étudier est la code NRZI (Non Return to Zero Inverted) qui est utilisé dans le standard USB (Universal Serial Bus). Dans ce code, seuls les 0 génèrent une transition. Ainsi, pour transmettre le message : «0 1 1 0 1 0 0 1 1 0 1 0», on a la représentation suivante : 2/4

Figure 2 : le code en ligne NRZI Cet encodeur possède un désavantage majeur : si une trop longue séquence de bits 1 successifs est transmise, il n y a aucune transition sur la ligne. Ceci rend la synchronisation entre le transmetteur et le récepteur impossible. Pour remédier à cela, le standard USB prévoit une opération d intercalage de bits ( bit stuffing ). En effet, dès qu une chaîne de six 1 est transmise, on intercale un 0 pour forcer une transition. Il est facile d enlever ces 0 au récepteur pour recomposer le message original. Une portion de la chaîne de communication correspondante est illustrée sur la figure suivante : Figure 3 : Schéma de fonctionnement général La source : Elle génère les bits du message à transmettre sur le câble USB. Intercalage de bit: Il doit être capable de détecter une séquence 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 placée à 1 pour un coup d horloge afin de signaler à la source qu il faut attendre. Ce temps correspond au temps de mettre le bit supplémentaire dans le message. L encodeur NRZI : Bloc réalisant la fonction NRZI de la Figure 2. 3/4

3.1. Encodeur NRZI Q1. Donner le graphe détaillé d une machine d état réalisant seulement le bloc de l encodeur NRZI. On utilisera les variables du schéma de la Figure 3. Note : Nous prendrons arbitrairement un état initiale associé a une valeur de Sortie=0 pour commencer le diagramme d état. Q2. Donner le code VHDL de l encodeur NRZI avec une architecture codée en description comportementale. Q3. Construire le tableau regroupant les états courants, les entrées, les états suivants et les sorties pour le bloc «encodeur NRZI». Q4. Déterminer l équation des sorties : sortie et Etat Futur. Q5. Réaliser le schéma logique de votre machine d état. Q6. Donner le code VHDL de l encodeur NRZI avec une architecture codée en flot de donnée. 3.2. Intercalage de bits Q7. Réaliser la description VHDL du module «intercalage de bits». 4/4

Université de Savoie Module ETRS-511 FPGA et VHDL TD4 Video Graphic Array (VGA) L affichage vidéo VGA est un grand standard courant pour l affichage graphique. Il est valable quelque soit la technologie de l écran (cathodique ou LCD). 1. Objectifs : Nous avons pour objectif de réaliser une carte graphique très simple. Elle permettra au moyen de trois interrupteurs de réaliser l affichage des trois couleurs RGV (Red, Green and Blue) ou une combinaison des trois. 2. Le standard VGA 2.1. Présentation des signaux Une image est représentée 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 réaliser une infinité de couleur. 1/7

Figure 1 : Représentation d'une image à l'écran en 640x480 Un signal RGB contient 5 signaux : Une synchronisation horizontale, permet de contrôler la position horizontale de l image dans la zone visible de l écran Une synchronisation verticale, permet de contrôler la position verticale de l image dans la zone visible de l écran. 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 rafraîchissement de l image débute en haut à gauche et se termine en bas à droite. Chaque pixel est défini l une après l autre. A la fin de la première ligne, le compteur des colonnes est remis à zéro et le compteur de ligne passe à 1, etc Jusqu à que l image soit complètement définie. La fréquence de l image doit être de 60Hz afin de réduire la perception du scintillement de l image. 2.2. Les timings du standard VGA En réalité, dans le mode VGA, le nombre total de ligne et de colonnes est de 800x524 mais seulement 640x480 sont affichées. Cela permet de laisser le temps pour revenir sur une nouvelle ligne ou de recommencer une nouvelle image. Pendant ce temps, (retour à la ligne ou recommencement d une nouvelle image), les signaux RGB doivent être mis à zéro (couleur noire). Ces temps sont appelés : «front porch» et «back porch». Le tableau ci-dessous indique des exemples de timings pour les différents standards. Il est important de noter que ces timings ne sont pas critiques et surtout qu ils ne sont pas des références! Chaque constructeur peut fournir des temps sensiblement différents sans pour autant porter préjudice à l affichage. En effet, dans une certaine plage, il est toujours possible d ajuster l image à droite, en haut, en bas ou à gauche grâce aux menus de l écran. 2/7

Format Pixel Clock (MHz) Active Video Horizontal (in Pixels) Front Porch Sync Pulse Back Porch Active Video Vertical (in Lines) Front Porch Sync Pulse 640x480, 60Hz 640 16 96 48 480 11 2 31 640x480, 72Hz 31.500 640 24 40 128 480 9 3 28 640x480, 75Hz 31.500 640 16 96 48 480 11 2 32 640x480, 85Hz 36.000 640 32 48 112 480 1 3 25 800x600, 56Hz 38.100 800 32 128 128 600 1 4 14 800x600, 60Hz 40.000 800 40 128 88 600 1 4 23 800x600, 72Hz 50.000 800 56 120 64 600 37 6 23 800x600, 75Hz 49.500 800 16 80 160 600 1 2 21 800x600, 85Hz 56.250 800 32 64 152 600 1 3 27 1024x768, 60Hz 65.000 1024 24 136 160 768 3 6 29 1024x768, 70Hz 75.000 1024 24 136 144 768 3 6 29 1024x768, 75Hz 78.750 1024 16 96 176 768 1 3 28 1024x768, 85Hz 94.500 1024 48 96 208 768 1 3 36 Tableau 1 : Timing de l'ensemble des standards VGA Back Porch Dans la Figure 2, compt_h est le compteur des pixels horizontaux, permettant de savoir ou en est l affichage et de générer convenablement le signal de synchronisation horizontale. Figure 2 : Synchronisation horizontale Q1. D après le tableau des timings, compléter la variable compt_h de la Figure 2, sachant que nous travaillons en 640x480 à 60 Hz. 3/7

Figure 3 : Synchronisation verticale Q2. D après le tableau des timings, compléter la variable compt_v de la Figure 3. Q3. Compléter le Tableau 1 en retrouvant la fréquence d affichage des pixels (pixels Clock). Nous prendrons une fréquence de 25Mhz comme horloge de référence de notre système séquentiel. Q4. Dans la figure ci-dessous, retrouver tous les temps du chronogramme. Figure 4 : Signaux de synchronisation horizontal et RGB Q5. Réaliser le même type de schéma pour la synchronisation verticale. 3. Réalisation en VHDL Nous cherchons à implémenter le système de gestion des signaux VGA dans un FPGA. La carte DE1 de chez ALTERA possède en effet un connecteur VGA relié au FPGA. Le brochage de ce connecteur au FPGA est donné dans la documentation. La carte DE1 possède une horloge de 50 Mhz, à partir de laquelle nous allons cadencer l ensemble du système. 4/7

Q6. En annexes est présenté un exemple de schéma possible pour la réalisation de l interface VGA. Pour chacun des blocs, expliquer son comportement. Q7. Comment allez vous réaliser l architecture du bloc div2? Q8. Comment allez vous réaliser l architecture des blocs compteurs? Q9. Donner le diagramme d état des deux séquenceurs? 5/7

6/7

7/7

Université de Savoie Module ETRS-511 FPGA et VHDL TD5 Mémoires RAM Dans un système numérique il est souvent nécessaire de fournir une certaine quantité de mémoire afin de stocker et manipuler des variables. Si ce système numérique est implémenté à base de FPGA, il est possible d utiliser les ressources internes du composant du composant. Si des quantités de mémoire plus importante sont nécessaires, nous devons utiliser de la mémoire externe qui sera pilotée par le FPGA. Q1. Quelle quantité de mémoire interne peut intégrer le FPGA de la carte DE1 Altera? Q2. A l aide du User Manuel fournie avec la maquette DE1, démontrer la taille de 512 Ko pour la SRAM. Q3. Localiser la mémoire SRAM et la mémoire SDRAM sur la carte DE1. L acronyme de SRAM est Static RAM. L acronyme de SDRAM est Synchronous Dynamic RAM. Q4. En comparant les spécifications des datasheets ci-dessous et des shcémas du User manual des deux mémoires RAM, indiquer les informations qui justifient les principales caractéristiques (Static, Synchronous, Dynamic ) de chacune des mémoires. Figure 1 : Features of the SRAM memory 1/5

Figure 2 : Features of the SDRAM memory Nous nous proposons d implémenter la mémoire suivante dans le FPGA. Figure 3 : Mémoire RAM Q5. Quelle est la capacité de cette mémoire RAM? 2/5

1.1. Utilisation de la mémoire interne du FPGA Figure 4 : Implémentation de la mémoire RAM en interne avec un bloc M4K Les FPGA Cyclone II comporte des blocs mémoires appelés M4K. Chaque bloc mémoire est composé de 4096 bits de mémoire qui peuvent être configurés pour implémenter de la mémoire de taille variables. Les M4K blocs comportent des registres sur les entrées et possèdent deux ports différents pour l écriture et la lecture des données à destination, et en provenance de la mémoire. Lorsque nous souhaitons réaliser des applications complexes, les structures logiques telles que des additionneurs, des registres, des compteurs, des mémoires peuvent être implémentées en utilisant les modules LPM depuis les librairies paramétrables de Quartus II. Nous allons utiliser cette librairie pour implémenter la mémoire de la Figure 4. Créer un nouveau projet. Lancer l outil de création de composant : Tool>MegaWizard Plug-In Mangage>Create a new custom MegaFunction variation L écran 1 se constitue comme suit (Figure 5): 3/5

Figure 5 : Réalisation de la RAM interne en utilisant le Magawizard manager Dans l écran 2, sélectionner les blocs de mémoire M4K, et sélectionner single clock dans Wich cloking method do you like to use? Dans l écran 3, désélectionner q output port dans la catégorie Wich port sould be registered? Accepter les options par défaut des écrans suivants. 1.2. Simulation du composant Modifier le code VHDL produit pour faire correspondre les noms des entrées/sorties de notre système (Figure 4) Compiler le circuit. Vérifier dans le rapport de compilation que les bits ont bien été affectés. Simuler le circuit en essayant d écrire et de lire dans la mémoire. 1.3. Test du composant Nous allons créer une application de test à l aide d afficheur à 7 segments afin de pouvoir visualiser les adresses, les données écrites et les données lues dans chaque emplacement mémoire. Le code de la gestion de l afficheur 7 segments est fourni. 4/5

Créer 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 créer : Clic droit sur le composant (fichier VHDL) puis Create Symbol file for Current file. Réaliser un pin assignement qui vous permettra de tester le fonctionnement de la mémoire RAM à l aide des éléments de la platine DE1 : Entrée DE1 Signal Affichage SW0 à SW3 Datain HEX1 SW4 à SW7 Adress HEX3 SW9 Write LEDG0 KEY0 Clock Dataout HEX0 Tester votre application sur la platine DE1. 5/5