Vous êtes sur la page 1sur 4

ELECTRONIQUE NUMERIQUE AVANCEE : FPGA ET VHDL USTHB / FEI

U ni ve rs i té d es S c ie n ces e t d e l a T ec hn ol o gi e Ho ua ri Bo u m ed ie n e

Faculté d’Electronique et d’Informatique


Master 1 Electronique des Systèmes Embarqués ESE
MODULE ELECTRONIQUE NUMERIQUE AVANCEE: FPGA
ET VHDL
Travaux Pratique N°2
Objectif du TP

Dans ce TP, nous aborderons les dispositifs les plus fondamentaux de la carte NEXYS2, le
segment de Switch et l’afficheur LED-7 segment. La première partie est assez simple : utiliser
4 interrupteurs SW0 à SW3 pour représenter un nombre de 4-bit binaire dont la valeur peut
évidemment s’afficher en hexa entre 0-F. nous aimerions placer cette valeur sur l’afficheur
droit 7-segment de la carte.
Partie Manipulation
Nous souhaitons réaliser un décodeur 7 segment afin de pouvoir piloter les afficheurs
disponibles sur la carte d’évaluation. Nous disposons de 4 digits. La table de vérité de la
fonction à réaliser est la suivante :
caractère a b c d e f g
0 0 0 0 0 0 0 1
1 1 0 0 1 1 1 1
2 0 0 1 0 0 1 0
3 0 0 0 0 1 1 0
4 1 0 0 1 1 0 0
5 0 1 0 0 1 0 0
6 0 1 0 0 0 0 0
7 0 0 0 1 1 1 1
8 0 0 0 0 0 0 0
9 0 0 0 0 1 0 0
A 0 0 0 1 0 0 0
B 1 1 0 0 0 0 0
C 0 1 1 0 0 0 1
D 1 0 0 0 0 1 0
E 0 1 1 0 0 0 0
F 0 1 1 1 0 0 0

Master 1 ESE 1
ELECTRONIQUE NUMERIQUE AVANCEE : FPGA ET VHDL USTHB / FEI

Figure : Table de vérité et exemple de valeur affichée sur 4 digits 7 segments.

Ouverture de session et création d’un nouveau projet

La phase de démarrage est la même que pour le premier TP à savoir :

 Lancer « Project Navigator » à travers son icône sur le bureau


 Créer un nouveau projet que vous appelez « TP2 »

Lorsque la fenêtre de création de projet apparaît. D’ans l’ordre suivant :

1. Tapez le nom du projet TP2 dans le champ « Project Name »,


2. Sélectionnez le type HDL pour le design principal.

Dans la fenêtre qui s’ouvre, sélectionnez :

o La famille de FPGA utilisée (expl : Spartan3E) dans le champ « Device Family »,


o Le circuit utilisé (expl : XC3S500E) dans le champ « Device »,
o Le boitier (expl : FG320) dans le champ « Package »,
o La vitesse (expl : -4) dans le champ « Speed Grade »,
o Les outils du flot de développement : Simulator : ISE Simulator (VHDL/Verilog).

Master 1 ESE 2
ELECTRONIQUE NUMERIQUE AVANCEE : FPGA ET VHDL USTHB / FEI

Sélectionner Project puis New Source dans le menu principal. Une fenêtre de dialogue
s’ouvre « New Source » apparait. Sélectionnez le type « VHDL Module » et donner
comme nom de fichier « toplevel.vhd» pour notre module.

Pour chaque valeur présente sur le port switches, il faut donner les segments à afficher sur le
port de sortie sevenseg, on utilise pour cela un WITH SELECT (pareil qu’un CASE ou
SELECT), la notation x « 2 » représente un nombre de 4 bits en hexa. Le signe <= permet
d’affecter une valeur au signal de sortie en fonction de la valeur présente sur le signal d’entrée
à un instant particulier. De façon intuitive, les signaux ne sont pas des variables rangées en
mémoire mais plutôt des valeurs qui circulent et évoluent avec le temps.

Voici le code VHDL correspondant :

with switches select


sevenseg <=
"1000000" when x"0" ,
"1111001" when x"1" ,
"0100100" when x"2" ,
"0110000" when x"3" ,
"0011001" when x"4" ,
"0010010" when x"5" ,
"0000010" when x"6" ,
"1111000" when x"7" ,
"0000000" when x"8" ,
"0010000" when x"9" ,

Master 1 ESE 3
ELECTRONIQUE NUMERIQUE AVANCEE : FPGA ET VHDL USTHB / FEI

"0001000" when x"A" ,


"0000011" when x"B" ,
"1000110" when x"C" ,
"0100001" when x"D" ,
"0000110" when x"E" ,
"0001110" when others;
anodes <= "1110";

Après avoir entré le code VHDL, enregistrez le fichier, et vérifier la syntaxe en cliquant sur
“Check Syntax” sous la rubrique “Synthesize” dans le volet Processus.

La tâche suivante consiste à attribuer nos ports d'entrée et de sortie vers les emplacements
effectifs sur le chip. Sans cette étape, les broches seraient attribuées par le logiciel Xilinx au
hasard.
"anodes<0>" LOC = "F17";
"anodes<1>" LOC = "H17";
"anodes<2>" LOC = "C18";
"anodes<3>" LOC = "F15";
"sevenseg<0>" LOC = "L18";
"sevenseg<1>" LOC = "F18";
"sevenseg<2>" LOC = "D17";
"sevenseg<3>" LOC = "D16";
"sevenseg<4>" LOC = "G14";
"sevenseg<5>" LOC = "J17";
"sevenseg<6>" LOC = "H14";
"switches<0>" LOC = "G18";
"switches<1>" LOC = "H18";
"switches<2>" LOC = "K18";
"switches<3>" LOC = "K17";

La prochaine étape dans le processus c’est l'ISE de Xilinx qui le fait pour vous. L'ensemble du
processus peut être réalisé en cliquant sur Generate Programming File pour votre fichier
toplevel.
Maintenant que le fichier de programmation a été généré, il est temps de charger votre design
sur le FPGA, et de le tester. On utilise pour cela la connexion USB et l’outil spécifique à cette
carte ADEPT.
Chargez votre programme sur le PFGA à l’aide de Browser, puis charger le programme via
Program.

Master 1 ESE 4