Documente Academic
Documente Profesional
Documente Cultură
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
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
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.
Master 1 ESE 3
ELECTRONIQUE NUMERIQUE AVANCEE : FPGA ET VHDL USTHB / FEI
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