1. Année 2007
INSAT TUTORIAL XILINX ISE 9.1I
Rédigé par : Challouf Mahmoud et Mohamed Hichem
2. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Rédigé par : Challouf Mahmoud & Mohamed Hichem
2
3. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Sommaire
I. Introduction à Xilinx ISE Foundation ...................................................................................... 5
A. Ou trouver Xilinx 9.1i ? ..................................................................................................... 6
B. Comment Installer Xilinx Webpack 9.1i ........................................................................... 6
C. Comment Lancer Xilinx Project Navigator ....................................................................... 6
II. La Project Navigator ................................................................................................................ 7
A. Création d'un nouveau projet Schématique ....................................................................... 7
B. Création d'un demi-additionneur en mode Schématic ....................................................... 9
1. Ajouter une nouvelle source .......................................................................................... 9
2. Le Demi-Additionneur ................................................................................................. 10
III. Initiation au VHDL ............................................................................................................. 20
A. Création d‟un projet VHDL ............................................................................................. 20
B. Ajouter ou créer un fichier VHDL dans le projet ............................................................ 21
C. Synthèse d‟un projet ........................................................................................................ 22
D. Réalisation d‟un compteur 4 bits en VHDL .................................................................... 25
1. Création du projet et d‟une source VHDL ................................................................... 25
2. Utilisation du modèle de langage « Template Language » .......................................... 26
3. Modification du code du fichier « compteur_vhdl.vhd »............................................. 28
4. Simulation du module VHDL ...................................................................................... 29
5. Création d‟une macro à partir du module VHDL: ....................................................... 32
IV. Création d‟une machine à états ........................................................................................... 33
A. Introduction ..................................................................................................................... 33
B. Ajout des états ................................................................................................................. 34
C. Ajout des Transitions ....................................................................................................... 37
D. Initialisation du Timer ..................................................................................................... 37
E. Générer le code VHDL ................................................................................................... 38
F. Simulation de la machine avec StateCAD .......................................................................... 39
G. Création d‟une macro schématique ................................................................................. 40
Rédigé par : Challouf Mahmoud & Mohamed Hichem
3
4. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Rédigé par : Challouf Mahmoud & Mohamed Hichem
4
5. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
I. Introduction à Xilinx ISE Foundation
ISE Foundation est un panel d‟outils développé et commercialisé par la société Xilinx. Ce
panel permet de réaliser toutes les phases du flot de conception d‟applications sur des composants
reconfigurables (FPGA) de la société Xilinx. Pour rappel, sur la figure 1, un flot de conception
simplifié est donné :
Le panel ISE Foundation est constitué d‟une dizaine d‟outils, dans ce document seulement trois
sont présentés :
Project navigator : outil de description du projet (spécification du système à concevoir en
VDHL, schematic, machines d‟états) synthèse, placement,routage.
FloorPlanner : outil de visualisation et de localisation des éléments utilisés du composants,
ainsi que des communications réalisées.
FPGA editor : outil de visualisation du placement routage, disposant d‟un placeur routeur
intégré.
Ce document présente l‟utilisation de base de ces différents outils.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
5
6. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
A. Ou trouver Xilinx 9.1i ?
La version ISE Webpack 9.1i est disponible en téléchargement sur le site officiel de
xilinx.www.xilinx.com . Il suffit de créer un compte gratuitement pour bénéficier de la version
gratuite du logiciel. La taille du fichier à télécharger est de 1400 Mo incluant l'installation sur un
système Windows ou bien sur un système d'exploitation Linux (disponible pour redhat et fedora).
B. Comment Installer Xilinx Webpack 9.1i
L'installation de Xilinx est très simple pour les deux systèmes d'exploitation (Windows ou
Linux).
Il suffit de cliquer sur Setup.exe pour que l'installation débute (sous Windows).
Pour les systèmes d'exploitation linux, il faut accéder au répertoire de la source
d'installation (par la console) et taper : ./setup et l'installation débute.
C. Comment Lancer Xilinx Project Navigator
Sous Windows :
L'outil se lance en cliquant sur l'icône de Project navigator sur le bureau ou en le
sélectionnant dans le menu démarrer /programmes.
Sous Linux :
Pour lancer Xilinx sous Linux il suffit d'accéder au répertoire ou est installé Xilinx, puis
accéder à “bin” ensuite à “lin” ensuite cliquer sur “ise”.
Si vous cliquer sur “ise” et rien ne se passe, accéder au répertoire avec la console
“/‟Installation de Xilinx'/bin/lin/” et taper ./ise
Note : Ne fermer la console que lorsque vous aurez terminé votre travail avec Xilinx sinon le
logiciel se ferme.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
6
7. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
II. La Project Navigator
A. Création d'un nouveau projet Schématique
Figure N°1
Si cette fenêtre n'est pas vide cliquer alors sur File > Close Project
(Dans le cas de la figure n°1 il existe déjà un projet ouvert)
Pour créer un nouveau projet faites :
File > New Project
Figure N°2
Rédigé par : Challouf Mahmoud & Mohamed Hichem
7
8. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Vous pouvez à travers cette fenêtre saisir le type de périphérique que vous allez utiliser.
Figure N°3
Note : À tout moment il est possible de changer ces informations en faisant :
Source > Proprieties
Cependant certaines phases du flot de conception seront alors remisent en cause (synthèse,
placement, routage).
Une fenêtre s'affiche pour que vous créer de nouvelles sources. Cliquer sur suivant pour ignorer
cette étape. Nous ferions la création des sources après la création du projet.
Une autre fenêtre s'ouvre pour que vous sélectionner d'anciennes sources si vous le voulez.
Si vous ne voulez intégrer aucune source antérieure cliquez deux fois de suite sur “suivant“
jusqu'à ce que vous obtenez le résumé du projet.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
8
9. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
B. Création d'un demi-additionneur en mode Schématic
1. Ajouter une nouvelle source
Pour ajouter une nouvelle source schematic, aller dans la partie Processes et cliquer sur
'Create New Source '.
Figure n°4
Figure n°5
Rédigé par : Challouf Mahmoud & Mohamed Hichem
9
10. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
2. Le Demi-Additionneur
Après avoir crée le schéma ' DemiAdd' nous obtenons cette fenêtre.
Pour basculer vers la modification du schéma du demi-additionneur “DemiAdd” double cliquer
sur 'DemiAdd.sch' se trouvant à gauche dans l'espace de travail du projet Navigator.
Figure n°6
On va donc créer le demi additionneur en mode 'schematic' en utilisant des portes logiques de
base (non, et, ou).
Le schéma final qu'on va obtenir est représenté dans la figure n°7. Nous allons procéder étape par
étape pour aboutir à ce schéma.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
10
11. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Figure n°7
Un schématique est généré par l'ajout des portes logiques ainsi que des connecteurs
d'entrées/sorties.
Les entrées et sorties des portes logiques sont connectées par des fils (wires). Les
symboles standards tel que les portes non (inverter), porte-et à 2 entrées, porte-ou à 2 entrées
peuvent êtres sélectionnée en cliquant sur 'Symbol Browser‟. Le 'Symbol Brower' s'ouvre (s‟il
n'est pas ouvert) en cliquant sur le menu 'Add' et en sélectionnant 'Symbol'. Autrement la barre
horizontale offre aussi un bouton (présentant l'icône d'une porte logique sur une résistance 'voir
figure n°6 remarque 2‟) permettant de choisir les différents composants. Vous devez ajuster la
taille de 'Categories' et 'Symbols' pour pouvoir visualiser correctement les symboles.
Le 'Symbol Browser' organise les différents composants par catégorie. Sélectionnez la catégorie
'Logic' et défiler pour trouver les symboles (and2, or2, inv). Les noms des portes sont sous cette
formes (NameGateNbrEnt) avec (NameGate) est le nom de la porte et (NbrEnt) est le nombre
d'entrées de la porte.
Pour ajouter une porte dans le schéma :
Faites un clique gauche sur la porte
Déplacer le curseur dans la partie de dessin
Faites un clique gauche sur l'emplacement désiré
Rédigé par : Challouf Mahmoud & Mohamed Hichem
11
12. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Vous avez maintenant la porte sur le schéma.
Ajoutez alors les portes nécessaires pour la création du demi-additionneur sur le schéma.
a) Ajout des composants
Figure n°8
La première étape consiste à ajouter les composants sur le schéma.
b) Le câblage
La deuxième étape consiste à câbler le les composants. Le câblage des composants se fait
en ajoutant des câbles entres les différentes portes.
Pour entrer en mode de câblage, cliquer sur le menu 'Add' par la suite cliquer sur 'Wire „. Vous
pouvez aussi utiliser le raccourci dans la barre horizontale. (Figure n°9)
Figure n°9
Note : Pour quitter le mode câblage vous pouvant cliquer sur la touche ESC ou bien faites un clic
droit.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
12
13. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Nous obtenons alors ce schéma câblé :
Figure n°10
Noter que chaque fois que vous connecter un câble avec un autre un petit carre doit
apparaître, s‟il n‟apparaît pas supprimer alors ce câble et redessiner.
Parfois l‟affichage se plante sur Xilinx, cliquez alors sur „Redraw All Windows‟ pour rafraîchir
l‟affichage.
Figure 11
c) Ajout des marqueurs d’entrée/sorties
Cette étape consiste à ajouter les connecteurs d'entrées /sorties (I/O Markers).
L'ajout de ces connecteurs s'effectue soit à partir de la barre horizontale soit en cliquant sur le
menu 'Add' puis sur 'I/O Marker‟.
Après avoir sélectionner l‟outil, cliquer sur les bornes dont vous voulez assigner un état d'entrée
ou de sortie.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
13
14. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Figure n°12
d) Vérification du schéma et enregistrement de capture.
(1) Vérification du schéma
Maintenant que notre schéma est terminé, il ne reste plus que le vérifier. Pour ce
faire il suffit de cliquer sur le bouton de vérification. (Voir figure 13)
Figure n 14
Rédigé par : Challouf Mahmoud & Mohamed Hichem
14
15. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Nous obtenons alors en bas les résultats de la vérification :
Figure 15
Il ne faut passer a la simulation que lorsque la console affiche „ No error or
warning detected‟
Note : Il faut toujours se rappeler d‟enregistrer son travail.
(2) Enregistrer une capture de son projet
Une capture du projet est une version de votre projet en mode lecture seule.
Ca vous permet d‟enregistrer plusieurs copies de votre projet pour une comparaison
ultérieure.
La capture contient tous les fichiers et répertoires de votre projet.
Pour Créer une capture, aller a „Projet > Take a snapshot „. Ca va vous ouvrir une fenêtre
pour taper le nom de la capture.
Figure 16
Pour voir les captures faites, cliquer sur l‟onglet „Snapshot‟ dans la barre verticale
droite. Xilinx offre aussi la possibilité d‟archiver les captures sous format zip. Vous ne
pouvez ouvrir ces archives qu‟avec Xilinx Project Navigator.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
15
16. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
e) La Simulation d’un schéma sous Xilinx
Nous allons nous intéresser maintenant a la simulation fonctionnelle de notre
schéma. Nous allons procéder étape par étape pour la réalisation de la simulation.
Comme nous avons créé la source de type „schematic‟ créez cette fois ci une source de
type „Test Bench Waveform‟
Figure n 17
Rédigé par : Challouf Mahmoud & Mohamed Hichem
16
17. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Cliquez sur suivant pour terminer avec l‟assistant.
Une fenêtre pour un assistant de „temps de simulation et horloge „ doit apparaître.
(Voir figure 18).
Figure n 18
Sélectionner le mode horloge combinatoire ou horloge interne (Combinatorial (or
internal clock ))
Modifier les informations relatives au temps de combinaison (Check Outputs 50 ns after
inputs are Assigned ) et (Assign inputs 50 ns after outputs are Checked ).
Une Plateforme présentant des formes d‟ondes doit apparaître.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
17
18. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Figure 19
Un carre bleu indique le temps après lequel les sorties (outputs) seront validées.
En cliquant sur une zone bleu vous pouvez changer l‟état de l‟entrée correspondante a la
ligne sélectionnée.
Pour vérifier le bon fonctionnement de notre demi-additionneur nous devons faire toutes
les combinaisons possibles avec A et B (00-01-10-11)
Figure 20
Il faut maintenant enregistrer cette forme d‟onde. Le fichier correspondant doit apparaître
dans la fenêtre des sources. S‟il n‟apparaît pas vérifier que vous étés bien en mode
„Behavioral simulation‟.
Figure 21
Rédigé par : Challouf Mahmoud & Mohamed Hichem
18
19. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Dans la partie Processes cliquez deux fois sur „simulate behavioral model‟, ceci va lancer
la simulation. Nous obtenons alors la forme d‟onde de la figure 22.
Figure n 22
Note : Certain composant nécessite une initialisation pour pouvoir effectuer la
simulation.
Pour les bascules D, il faut les initialiser à 1 ou 0 en cliquant deux fois dessus et
sélectionner INIT.
Le Project Navigator offre la possibilité de faire des agrandissements ou des réductions
sur la simulation. Il offre aussi d‟autre buttons pour contrôler la simulation (pause,
arrêt,…)
Figure 23
Rédigé par : Challouf Mahmoud & Mohamed Hichem
19
20. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
III. Initiation au VHDL
A. Création d’un projet VHDL
Créez un projet, faites :
File>New Project
La fenêtre New Project apparaît, renseignez la avec
- Le nom u projet
- L‟emplacement
- Schematic comme type de source
-
Puis cliquez sur « Next »
Figure n°24
Project Name : est le nom de votre projet.
Project Location : est l‟endroit, sur le disque, où vous souhaitez stocker les fichiers du
projet.
Device Family : sélectionnez la famille VirtexE dans la liste des produits supportés par
ISE.
Device : sélectionnez le modèle de FPGA dans la famille choisie.
Choisi le composant : XCV400E
Synthesis Tool : sélectionnez XST VHDL qui signifie « flot VHDL avec outil de
synthèse XST ».
Cliquer sur Next.
REMARQUE : A tout moment il est possible de changer ces informations en faisant
Source>Properties
Cependant certaines phases du flot de conception seront alors remisent en cause
(Synthèse, placement, routage).
Rédigé par : Challouf Mahmoud & Mohamed Hichem
20
21. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Sautez l‟étape d‟ajout d‟une source en cliquant sur Next deux fois.
Quand vous obtenez ce message, appuyez sur Finish
Figure n°25
B. Ajouter ou créer un fichier VHDL dans le projet
Pour ajouter un fichier VHDL faites :
Project>Add Source …
Une fenêtre de localisation de la nouvelle source apparaît, indiquer alors le chemin, puis cliquez
sur OK. Alors la fenêtre suivant apparaît suivant le type de fichier VDHL
Figure n°26
Pour créer un nouveau fichier VDHL vide faites :
Project>Add Source …
La fenêtre New s‟ouvre vous devez indiquer un nom à votre source ainsi que le type de source.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
21
22. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Figure n°27
Vous n‟êtes pas obligé de renseigner cette fenêtre et vous pouvez passer directement à la création
du fichier VHDL. Mais si vous avez une idée sur les ports d‟entrées et de sorties de votre module
(ce qui doit normalement être le cas) vous pouvez renseigner cette fenêtre, de cette façon l‟entité
de votre module sera crée dans votre fichier VHDL. C‟est un moyen de gagner quelques minutes
et d‟éviter les erreurs de syntaxes, le renseignement de cette fenêtre est donc vivement conseillé !
A partir de là vous pouvez éditer votre fichier VDHL en n‟oubliant pas d‟enregistrer
régulièrement votre travail …
C. Synthèse d’un projet
Dans la fenêtre « Sources in Project », cliquez sur la ligne correspondant au fichier VHDL
principale.
Sélectionnez ensuite l‟opération « Synthesize » dans la fenêtre « Processes for Current
Source » en cliquant une fois dessus.
Figure n°28
Vous pouvez changer les options de synthèse en cliquant sur l‟opération « Synthesize » avec le
bouton droit de la souris. Un menu apparaît. Sélectionnez « Properties ». La fenêtre suivante
apparaît :
Rédigé par : Challouf Mahmoud & Mohamed Hichem
22
23. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Figure n°29
Vous pourrez essayer de modifier le type d‟algorithme de synthèse en changeant le paramètre
« Optimization Goal », vous avez le choix entre speed ou area ( o ptimisation en vitesse
ou en surface). D‟une façon générale l‟optimisation en vitesse est conseillée (paramètres par
défaut). Laissez les autres paramètres par défaut. Cliquez sur l‟onglet HDL Options.
Laissez à nouveau les valeurs par défaut proposées par l‟outil. Cliquez sur l‟onglet
« Xilinx Specific Options », la fenêtre suivante apparaît :
Figure n°30
Vous pouvez aussi laisser ces paramètres par défaut. Pour lancer la synthèse cliquez deux fois sur
l‟opération « Synthesize » puis attendez que le calcul soit terminé. Vous devez obtenir ceci :
Rédigé par : Challouf Mahmoud & Mohamed Hichem
23
24. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Figure n°31
Un point d‟exclamation apparaît à gauche de l‟opération « Synthesize » signifiant que la
synthèse s‟est bien passée et qu‟il reste à faire quelques vérifications.
Dépliez l‟opération « Synthesize » en cliquant sur le + immédiatement à sa gauche, vous verrez
la marque verte à gauche de la ligne « View Synthesis Report » qui signifie que la synthèse s‟est
bien passée et que vous pouvez consulter le rapport.
Double-cliquez sur la ligne « View Synthesis Report », vous obtenez l‟affichage du
rapport dans la fenêtre en haut et à droite du « Project Navigator ». Ce rapport contient entre
autre une information importante qui est l‟estimation de la fréquence maximum.
Enfin, pour terminer complètement la phase de synthèse il y a un outil complémentaire de
vérification que vous pouvez lancer. C‟est le « Check Syntax ». C‟est un outil qui vous
confirmera que vos fichiers sont corrects.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
24
25. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
D. Réalisation d’un compteur 4 bits en VHDL
1. Création du projet et d’une source VHDL
Créez un nouveau projet dont le nom „compteur‟ de type « schematic »
Ajouter une nouvelle source de type VHDL.
Figure n°32
Indiquez dans la fenêtre New les définitions suivantes :
Figure n°33
Cette table génère automatiquement les entités dans le module « compteur_vhdl ».
Cliquez sur suivant pour terminer le modèle de la nouvelle source.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
25
26. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Nous obtenons alors le code vhdl suivant :
Figure n°34
Notez bien qu‟un fichier compteur_vdhl.vhd a été crée dans le répertoire de votre projet et a été
convenablement ajouté dans la liste des sources dans le « Project Navigator ».
Figure n°35
Une vue hiérarchique des fichiers correspondants au projet courant.
2. Utilisation du modèle de langage « Template Language »
a) Introduction
Le modèle de langage est un outil très puissant pour la création de code HDL. Il possède
un grand nombre de fonctions prédéfinies comme les compteurs, multiplexeurs, décodeurs….
Il existe aussi des codes pour la création des operateurs communs tels que les « if then » et les
boucles généralement associés aux langages de programmations.
Les modèles présents présentent une référence importante. Ils peuvent être copiés collés dans le
fichier vhd. Ainsi leurs codes peuvent êtres modifiés et personnalisé pour aboutir au
fonctionnement désiré.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
26
27. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Généralement, il est nécessaire de changer la largeur des bus ou les noms des signaux ou
dans certains cas modifier le fonctionnement.
b) Visualisation des modèles
Dans notre cas, nous allons utiliser le modèle qui utilise le signal « <clock>» alors que le
fichier créé nécessite un signal nommé « clock ».
Le compteur du modèle est assez complexe, nous allons donc l‟alléger un peu en supprimant
quelques fonctionnalités.
Pour ouvrir la fenêtre permettant de sélectionner les modèles, cliquez sur l‟icône :
Figure n°36
Vous pouvez aussi accéder à modèle de langage à partir de « Edit > Language Template ».
Figure n°37
c) Insertion d’un modèle dans le code
Pour insérer un modèle dans le code d‟un fichier .vhd sélectionnez :
« VHDL > Synthesis Constructs >coding examples > counters > Up Counters > /w CE and
Async Active High Reset»
Faites maintenant un glisser déplacer du modèle sélectionné dans la feuille de code de
Rédigé par : Challouf Mahmoud & Mohamed Hichem
27
28. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
« compteur_vhdl ».
Vous pouvez aussi faire un clic droit sur le fichier « simple Counter » et cliquer ensuite
sur « Use file » ensuite sélectionner le fichier « compteur_vhdl ».
Vous pouvez maintenant fermer le navigateur des modèles.
3. Modification du code du fichier « compteur_vhdl.vhd »
Vous devez modifier les mots ( <clock> par clock et <reset> par reset) qui référencent vos
entrées préalablement instanciées.
Modifier le code source de « compteur_vhdl.vhd » pour devenir comme suit :
Figure n°38
Vous pouvez changer les noms <clock> par clock en utilisant « remplacer » dans « Edit >
Replace »
L‟entête du code représente la déclaration standard d‟un module VHDL.
Ça représente la déclaration des librairies, entités et architectures.
La partie entités « entity » déclare tous les ports utilisé dans la conception.
Count (3 downto 0) signifie que count est un vecteur de 4 bits logique. Dans cette conception
nous avons 2 entrées (clock et reset) et une sortie représentée par un bus de 4 bits appelé count.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
28
29. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
La description fonctionnelle actuelle de la conception apparait après le mot clé « begin »
dans l‟architecture.
La fonction de ce code c‟est d‟incrémenter une variable « count » chaque fois que
l‟horloge « clock » est à 1 et qu‟il y a un événement dans l‟horloge. Ceci se passe sur front
montant.
Le reset est asynchrone, car elle est évaluée avant l‟horloge « clock ».
Nous pouvons maintenant passer à la simulation du circuit.
4. Simulation du module VHDL
Commencer par ajouter une nouvelle source du type : « Test Bench WaveForm »
Figure n°39
Appuyiez par la suite sur « next »
Figure n°40
Rédigé par : Challouf Mahmoud & Mohamed Hichem
29
30. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Sélectionnez le fichier vhdl crée précédemment comme source de simulation.
Il vous reste maintenant de spécifier la nature des signaux d‟entrées.
Sélectionner « Single Clock » comme signal d‟horloge. Vous pouvez modifier la période de
l‟horloge en agissant sur « Clock High Time » et sur « Clock Low Time » .
Figure n°41
Cliquer par la suite sur suivant.
Vous pouvez mettre le reset à 1 pendant une période, pour tester le bon fonctionnement du
compteur.
Si vous avez un problème avec la simulation vérifiez alors les initialisations des entrées.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
30
31. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Vous obtiendrez alors les formes d‟ondes suivantes.
Figure n°42
Cliquez maintenant sur le « behavioral simulation » et sélectionnez le fichier « vhdl_sim.tbw ».
Dans la fenêtre de « processes » cliquez sur « simulate behavioral model »
Vous aurez alors la forme d‟onde suivante :
Figure n°43
Essayer maintenant d‟initialiser le reset à 1 puis le mettre à et effectuer à nouveau la simulation.
Figure n°44
Nous obtenons alors un bon fonctionnement du compteur.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
31
32. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
5. Création d’une macro à partir du module VHDL:
Création d‟un schématique à partir du code VHDL :
Figure n°45
Il faudra maintenant créer une nouvelle source de type schématique pour pouvoir ajouter la
macro créé à partir du code VHDL.
Figure n°46
Rédigé par : Challouf Mahmoud & Mohamed Hichem
32
33. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
IV. Création d’une machine à états
A. Introduction
On se propose de créer une machine à état qui simule les quatre états d‟un feu-rouge.
State1 – Rouge
State2 – Jaune ET Rouge
State3 – Vert
State4 – Jaune
Figure n°47
Si cette fenêtre est vide, Click droite sur la fenêtre des processus et créer une nouvelle
source et choisir « state diagram » comme type. Le nommer Séquence par exemple.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
33
34. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
B. Ajout des états
Cliquer sur le butons « Add Button » sur le menu gauche
Figure n°48
Il faut maintenant ajouter les 4 états sur le diagramme. Pour cela cliquer sur le bouton
dans le menu principal.
Figure n°49
Il faut initialiser le nombre des états « Number of states » à 4, cliquer sur « Next », puis
sélectionner « synchronous state machine » puis taper TIMER dans l‟onglet « NEXT »
de la fenêtre suivante :
Figure n°50
Rédigé par : Challouf Mahmoud & Mohamed Hichem
34
35. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Cliquez « Finish » puis cliquez une autre fois pour placer la machine, double-cliquer sur
l‟état « STATE0 » coloré en jaune et le renommer ROUGE, cliquer sur le bouton
« output Wizard », saisir RD dans l‟onglet DOUT pour déclarer une sortie « output ».
Puis initialiser RD à „1‟ comme indiqué dans les deux figures suivantes :
Figure n°51
D‟une manière similaire modifier les autres states :
Renommer State1 en ROUJAU et utiliser le « output wizard » pour initialiser RD = 1
Et une autre sortie (output) AMB égale à 1 avec un « registered » output‟.
Figure n°52
Renommer State2 en VERT et utiliser le « output wizard » pour initialiser un nouvel
output GRN = 1 avec
registered output.
Renommer State3 en JAUNE et utiliser le « output wizard » pour initialiser AMB = 1
avec registered output.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
35
36. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
La machine à état doit ressembler à ça :
Figure n°53
Note:si vous initilaiser un signal comme registred dans le output wizard, puis vous
selectionner le signal et vous reouvriez le wizard – elle ne restera pas cochée comme
registred.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
36
37. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
C. Ajout des Transitions
Double cliquer sur la ligne de transition entre l‟état ROUGE et l‟état ROUJAU.
Dans le « Edit Condition Window », modifier l‟onglet de condition « condition field »
en TIMER = “1111” pour que la transition se déclenche quand l‟horloge « Timer » est
dans l‟état 1111 (N‟oubliez pas les doubles quottes pour respecter le syntaxe VHDL)
Figure n°54
Répéter le même processus pour les autres transitions :
o Transition ROUJAU > VERT, TIMER = “0100”
o Transition VERT > VERT, TIMER = “0011”
o Transition JAUNE > ROUGE, TIMER = “0000”
Remarquez bien que le feu-rouge termine le circuit ROUJE, ROUJAU, VERT, JAUNE
une fois tout les trois cycles du compteur.
D. Initialisation du Timer
Finalement, déclarez un vecteur en cliquant sur le bouton dans le menu à gauche
Cliquer sur une partie vide, puis double-cliquer sur le vecteur et le renommer TIMER
avec une largeure de 4-bits. (Range 3:0)
Rédigé par : Challouf Mahmoud & Mohamed Hichem
37
38. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Figure n°55
E. Générer le code VHDL
Cliquer sur le bouton dans le menu en haut
Si vous avez construit la machine à état correctement, vous deviez voir ce message
Figure n°56
Cliquer fermer « close », et le l‟assistant ouvrera le code VHDL crée.
Maintenant nous voulons utiliser ce code VHDL dans un projet dans Xilinx.
Xilinx ne permet pas de placer une macro de machine à état directement dans le circuit,
pour cela nous allons ajouter le code vhdl que nous avons généré.
Vous êtes maintenant capable de le simuler ou de créer des symboles à partir de cette
macro comme n‟importe quelle autre macro VHDL.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
38
39. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
F. Simulation de la machine avec StateCAD
Maintenant que notre machine est terminé on veut la simuler, pour cela il suffit de cliquer
sur le bouton „‟State Bench‟‟ dans le menu en top.
Figure n°57
Vous obtenez alors :
Figure n°58
Pour rapidement réaliser une simulation cliquez sur « Automatic TestBench » dans le
menu en top. Vous obtenez alors après avoir spécifié l‟emplacement des fichiers VHDL et
régression à exporter et les options de simulation. (Voir figure n°59)
Rédigé par : Challouf Mahmoud & Mohamed Hichem
39
40. Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS
Figure n°59
Vous obtenez alors ce diagramme :
Figure n°60
G. Création d’une macro schématique
Pour utiliser ce composant dans un projet dans Xilinx on doit insérer le fichier .VHD
précédemment crée dans un projet en suivant les étapes expliquées dans la partie
précédente. Ainsi on obtint le symbole suivant :
Figure n°61
Rédigé par : Challouf Mahmoud & Mohamed Hichem
40