+ All Categories
Home > Documents > Tutorial xilinx 9.1i

Tutorial xilinx 9.1i

Date post: 24-May-2015
Category:
Upload: mahmoud-challouf
View: 11,196 times
Download: 3 times
Share this document with a friend
Popular Tags:
40
Année 2007 Rédigé par : Challouf Mahmoud et Mohamed Hichem INSAT TUTORIAL XILINX ISE 9.1I
Transcript
Page 1: Tutorial xilinx 9.1i

Année 2007

Rédigé par : Challouf Mahmoud et Mohamed Hichem

INSAT TUTORIAL XILINX ISE 9.1I

Page 2: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 2

Page 3: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 3

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

Page 4: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 4

Page 5: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 5

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.

Page 6: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 6

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.

Page 7: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 7

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

Page 8: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 8

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.

Page 9: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 9

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

Page 10: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 10

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.

Page 11: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 11

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é

Page 12: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 12

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.

Page 13: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 13

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.

Page 14: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 14

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

Page 15: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 15

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.

Page 16: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 16

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

Page 17: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 17

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.

Page 18: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 18

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

Page 19: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 19

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

Page 20: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 20

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).

Page 21: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 21

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.

Page 22: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 22

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 :

Page 23: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 23

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 (optimisation 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 :

Page 24: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 24

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.

Page 25: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 25

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.

Page 26: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 26

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é.

Page 27: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 27

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

Page 28: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 28

« 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.

Page 29: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 29

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

Page 30: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 30

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.

Page 31: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 31

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.

Page 32: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 32

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

Page 33: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 33

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.

Page 34: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 34

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

Page 35: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 35

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.

Page 36: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 36

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.

Page 37: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 37

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)

Page 38: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 38

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.

Page 39: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 39

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)

Page 40: Tutorial xilinx 9.1i

Tutorial sur Xilinx ISE Foundation v9.1i INSAT-TUNIS

Rédigé par : Challouf Mahmoud & Mohamed Hichem 40

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


Recommended