33 0 2MB
Année 2007
INSAT
TUTORIAL XILINX ISE 9.1I
Rédigé par : Challouf Mahmoud et Mohamed Hichem
Tutorial sur Xilinx ISE Foundation v9.1i
Rédigé par : Challouf Mahmoud & Mohamed Hichem
INSAT-TUNIS
2
Tutorial sur Xilinx ISE Foundation v9.1i
INSAT-TUNIS
Sommaire I.
Introduction à Xilinx ISE Foundation ...................................................................................... 5 Ou trouver Xilinx 9.1i ? ..................................................................................................... 6 Comment Installer Xilinx Webpack 9.1i ........................................................................... 6 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 A. B. C.
Rédigé par : Challouf Mahmoud & Mohamed Hichem
3
Tutorial sur Xilinx ISE Foundation v9.1i
Rédigé par : Challouf Mahmoud & Mohamed Hichem
INSAT-TUNIS
4
Tutorial sur Xilinx ISE Foundation v9.1i
I.
INSAT-TUNIS
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
Tutorial sur Xilinx ISE Foundation v9.1i
A.
INSAT-TUNIS
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
Tutorial sur Xilinx ISE Foundation v9.1i
II.
INSAT-TUNIS
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
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
Tutorial sur Xilinx ISE Foundation v9.1i
B.
INSAT-TUNIS
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
Tutorial sur Xilinx ISE Foundation v9.1i
2.
INSAT-TUNIS
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
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
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
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
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
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
Tutorial sur Xilinx ISE Foundation v9.1i
e)
INSAT-TUNIS
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
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
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
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
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
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
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
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
o
« Optimization Goal », vous avez le choix entre speed ou area (
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
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
Tutorial sur Xilinx ISE Foundation v9.1i
D.
INSAT-TUNIS
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
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
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 « » 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
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 ( par clock et 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 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
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
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
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
Tutorial sur Xilinx ISE Foundation v9.1i
5.
INSAT-TUNIS
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
Tutorial sur Xilinx ISE Foundation v9.1i
IV.
INSAT-TUNIS
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
Tutorial sur Xilinx ISE Foundation v9.1i
B.
INSAT-TUNIS
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
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
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
Tutorial sur Xilinx ISE Foundation v9.1i
C.
INSAT-TUNIS
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
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
Tutorial sur Xilinx ISE Foundation v9.1i
F.
INSAT-TUNIS
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
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