1 TP2 - Systèmes embarqués / FPGA L`environnement XPS (Xilinx

Transcription

1 TP2 - Systèmes embarqués / FPGA L`environnement XPS (Xilinx
TP2 - Systèmes embarqués / FPGA
L’environnement XPS (Xilinx Platform Studio) fournit une importante quantité de propriétés intellectuelles
« IP ». Il arrive malgré tout qu’on ne trouve pas celle dont on a besoin pour contrôler un périphérique
particulier. C’est le cas de l’afficheur LCD embarqué sur la maquette SP3A.
Quand on se trouve dans cette situation, il y a deux façons de faire : soit on fait appel à une société de service
spécialisée dans le développement de propriétés intellectuelles, soit on se la fait soi-même.
Heureusement, il y a une aide intégrée dans XPS pour créer ses propres « IP ». Nous allons nous en servir
pour créer une « IP » nommée lcd_ip afin de contrôler l’afficheur LCD.
1.
2.
3.
4.
Créer une copie du répertoire tp1 et le renommer tp2.
Effacer le répertoire SDK qui est sous tp2.
Démarrer XPS 13.2 et ouvrir le projet tp2.
La création de la nouvelle « IP » commence ici :
Hardware >> Create/Import Peripheral : démarrer l’outil d’aide
Choisir la création d’un modèle pour un nouveau périphérique
Intégrer le nouveau périphérique au projet XPS en cours
Lui donner un nom et un numéro de version
Choisir le bus auquel sera connecté le périphérique
Faire le choix de communiquer avec le périphérique à travers des registres
1
Un registre sera suffisant pour notre cas
Signaux nécessaires à l’interfaçage de notre périphérique
Ne pas générer de modèle pour la simulation, nous ferons mieux
Un driver nous fournira les « API » utiles pour communiquer avec l’afficheur
Une dernière fenêtre vous félicitera pour votre patience !!!
Un certain nombre de fichiers relatifs à notre périphérique sont créés dans le répertoire « pcores ».
Pour savoir le rôle de chacun, ouvrir le fichier « readme.txt » qui s’y trouve.
Deux fichiers, écrits en VHDL, décrivent la connexion et le fonctionnement du périphérique. Ces deux
fichiers ont été créés mais ils sont incomplets. Le fichier « lcd_ip.vhd » établit la connexion de
l’interface « IPIF » et du bloc « user logic ». Le fichier « user_logic.vhd » décrit le fonctionnement du
périphérique.
Apporter les modifications suivantes aux fichiers :
Fichier : lcd_ip.mpd
- Ajouter le port de sortie lcd[10 :0] :
2
Fichier : lcd_ip.vhd
- Ajouter le port de sortie lcd[10 :0] :
- Réaliser la connexion entre le port de sortie et le signal interne :
Fichier : user_logic.vhd
- Ajouter le port de sortie lcd[10 :0] :
- Déclarer un signal nommé lcd_sig[10 :0] :
- Écrire le bout de code permettant de récupérer sur le port de sortie lcd les données du bus Bus2IP_data :
Project >> Rescan User Repositories : pour mettre à jour tous les nouveaux changements.
Ajouter maintenant la nouvelle « IP » au projet, la connecter au bus PLB.
Ajouter un PORT de sortie nommé « lcd_pin » relié à « lcd_net » de largeur 11 bits.
Connecter le PORT de « lcd_ip » à « lcd_net ».
Affecter un espace mémoire de 64 koctets.
Compléter le fichier de contraintes (UCF) avec les numéros des broches affectées aux signaux du LCD en se
servant du fichier (.ucf) fourni avec la maquette Genesys.
Compiler la plateforme matérielle pour générer le fichier binaire « system.bit ».
3
Première partie logicielle :
Project >> Export Hardware Design to SDK .
Inclure les fichiers (.bit) et (.bmm) puis sélectionner le répertoire de travail Workspace.
Un driver a été créé dans le répertoire « drivers » qui se trouve dans le répertoire du projet « tp2». Pour inclure ce
driver à la plateforme logicielle, faire Xilinx Tools >> Repositories et donner le chemin du répertoire « tp2».
Ensuite, faire Xilinx Tools >> Board Support Package Settings et sélectionner le driver lcd_ip.
File >> New >> Xilinx C Project : pour créer un nouveau projet Soft.
Choisir un nouveau projet vide nommé « tp2 ».
Inclure les fichiers ex2.c et lcd_lib.c à vos sources.
Exécuter votre software, l’afficheur devra s’initialiser et afficher le curseur à la première position .
Essayer toutes les fonctions qui sont données.
Seconde partie logicielle :
Compléter les fonctions de la librairie lcd_lib.c qui ne le sont pas et tester les.
4
Table des instructions
(AB18)
5
Motifs stockés en CGROM
(AB18)
6

Documents pareils