p. 1/3
Année 2013-2014 Semestre S7
EN201 :SYNTHESE VHDL
FILIERE ELECTRONIQUE
SUJETDUTPN°4 :GESTION LCD&SWITCHES
OBJECTIFS DU TP
Modifier la gestion des messages à afficher sur l’écran LCD afin de pouvoir : mémoriser plusieurs messages différents et de permettre à l’utilisateur de choisir celui qu’il désire afficher (à l’aide des switches présents sur la carte). Le synaptique du système est décrit dans la figure 1.
Figure 1 : Représentation du système à concevoir.
En entrée du système, nous allons considérer les quatre interrupteurs switches (sw3 sw2 sw1 sw0).
A chaque interrupteur un message sera associé.
Au lieu d’inclure les messages dans le corps du programme assembleur comme précédemment (TP n°3), on préfèrera stocker l’ensemble des messages dans une mémoire de type ROM.
Chaque message, de longueur variable, est une suite de caractères ASCII. Tous les caractères seront stockés dans la ROM (à la suite les uns des autres). Le nombre des messages ne sera pas dans un premier temps limité, par contre la mémoire ROM ne pourra contenir au plus 128 données.
FORMAT DE MEMORISATION DES DONNEES
Le format de stockage des données dans la mémoire ROM doit satisfaire une contrainte de formatage des informations. Ce formatage est indispensable afin que votre ROM fonctionne an symbiose avec le programme ASM développé par votre enseignant (programme qui est exécuté par le processeur).
Le formatage des informations dans la ROM a été introduit afin de permettre l’écriture d’un programme d’affichage générique pour le Picoblaze et ce, peu importe le contenu (nombre et taille des messages). Le format de mémorisation des données que vous allez devoir employer est spécifié dans le tableau ci-dessous (Figure 2).
Mémoire programme
Switches MicroP. (Picoblaze)
Ecran LCD CARTE FPGA
p. 2/3
Adresse Donnée
0x00 Nombre de messages contenus dans la ROM
0x01 Taille du premier message (nombre octets)
0x02 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
0x03 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
0x04 Taille du second message (nombre octets)
0x… ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
0x… ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
0x… Taille du ... message (nombre octets)
0x… ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
0x… ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
0x… Fin de la mémoire ROM (remplissage du reste avec des 0) 0x… ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Figure 2 : Représentation du système à concevoir.
Dans la figure 3 vous trouverez un exemple de ROM bien formatée contenant 2 messages distincts.
Le premier message est “OUI” et le second est “NON”.
Adresse Donnée
0x00 0x02
0x01 0x03
0x02 “O”
0x03 “U”
0x04 “I”
0x… 0x03
0x… “N”
0x… “O”
0x… “N”
0x… 0x00
Figure 3 : Représentation du système à concevoir.
Prérequis : Afin de réaliser cette seconde partie du TP, allez télécharger sur le même serveur internet que précédemment (http://uuu.enseirb.fr/~legal/library) les sources du projet.
Etape 1 : Reprenez la mémoire ROM décrite VHDL au cours du TP n°2. Cette mémoire contiendra 4 messages différents que vous choisirez à votre guise. Vous rajouterez un message après les quatre premiers, ce dernier sera utilisé pour la gestion des erreurs par la suite.
Remarque : Afin de simplifier la saisie des données (caractères), vous utiliserez le paquetage ascii_pack.vhd.
Etape 2 : Simulez votre mémoire ROM en lui adjoignant le modèle comportement du système que votre enseignant vous a fourni. En changeant les valeurs placées en entrée du composant, vous devez observer un affichage de votre message sur les sorties nommées LCD.
DEFINITION DU SYSTEME COMPLET
La figure 4 présente le schéma du système tel que vous allez devoir le concevoir. L’interconnexion utilisée pour relier les différents éléments constituant le système est réalisée à l’aide du “bus”
d’entrées et de sorties du Picoblaze.
p. 3/3
Figure 4 : Schéma interne à l’application d’affichage des messages.
Le projet VHDL comporte :
1. Le picoblaze et sa mémoire programme,
2. La mémoire contenant les messages (rom128x8), 3. Les interfaces LCD (entrées et sorties),
4. Une interface switches qui devra fournir exclusivement comme code de sortie, le numéro du message à afficher selon la prescription fournie dans le tableau ci-dessous,
5. Trois LEDs pour afficher le numéro du message.
Le programme assembleur de l’application (interrupteurs + ROM messages + LCD) a été développé par votre enseignant. Ce dernier a réalisé des choix techniques quand aux ports sur lesquels doivent être connectés les périphériques. Le programme assembleur est disponible dans le répertoire “ide”
du projet
Le multiplexage des entrés et le démultiplexage des sorties picoblaze est réalisé sur 8 bits. Il faut utiliser le signal nommé port_id du picoblaze afin de différencier une parmi les 256 possibilités d’entrée comme de sortie (voir doc ug129.pdf pages 51 à 55)
Le signal port_id nous donne une méthode d’adressage et nous pouvons décider d’une carte mémoire pour l’application. Ce sera ici (en hexadécimal)
1. Adresses "00 à 7F pour la ROM messages 2. Adresse C0 pour les switches
3. Adresse 80 pour le LCD en entrée 4. Adresse A0 pour le LCD en sortie
Etape 3 : Complétez le fichier Affichage_ROM_Indexee.vhd avec l’aide des informations données dans le sujet. Vous veillerez à respecter les indications imposées dans le tableau ci-dessous :
Switch Code_Switch Action à réaliser
0 0 0 0 0 Aucune action
0 0 0 1 1 Afficher le message 1
0 0 1 0 2 Afficher le message 2
0 1 0 0 3 Afficher le message 3
1 0 0 0 4 Afficher le message 4
Others 5 Afficher le message d’erreur (5)
Figure 5 : Relation entre l’état des switches et le message à afficher.
Etape 4 : Ouvrez le fichier contenant l’assembleur du microprocesseur dans le répertoire IDE, regardez à la fin du fichier rapidement les modifications vis-à-vis du code initial.
Etape 5 : Réalisez la synthèse logique de la description et testez votre application sur la carte.
logique
Affichage (LCD) Picoblaze
(processeur + ROM programme)
ROM contenant les messages Switches