SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Année 2007




INSAT      TUTORIAL XILINX ISE 9.1I




        Rédigé par : Challouf Mahmoud et Mohamed Hichem
Tutorial sur Xilinx ISE Foundation v9.1i         INSAT-TUNIS




Rédigé par : Challouf Mahmoud & Mohamed Hichem
                                                               2
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
Tutorial sur Xilinx ISE Foundation v9.1i         INSAT-TUNIS




Rédigé par : Challouf Mahmoud & Mohamed Hichem
                                                               4
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
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
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
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                                       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
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
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                               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
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


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

Mais conteúdo relacionado

Destaque

Chap02 fsm-mpssr-ht
Chap02 fsm-mpssr-htChap02 fsm-mpssr-ht
Chap02 fsm-mpssr-ht
infcom
 
FPGA Architecture Presentation
FPGA Architecture PresentationFPGA Architecture Presentation
FPGA Architecture Presentation
omutukuda
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
SlideShare
 

Destaque (19)

Chap02 fsm-mpssr-ht
Chap02 fsm-mpssr-htChap02 fsm-mpssr-ht
Chap02 fsm-mpssr-ht
 
FPGA Architecture Presentation
FPGA Architecture PresentationFPGA Architecture Presentation
FPGA Architecture Presentation
 
Field programable gate array
Field programable gate arrayField programable gate array
Field programable gate array
 
FPGAs : An Overview
FPGAs : An OverviewFPGAs : An Overview
FPGAs : An Overview
 
DSP by FPGA
DSP by FPGADSP by FPGA
DSP by FPGA
 
FPGA Introduction
FPGA IntroductionFPGA Introduction
FPGA Introduction
 
DSP
DSPDSP
DSP
 
FPGA
FPGAFPGA
FPGA
 
What is FPGA?
What is FPGA?What is FPGA?
What is FPGA?
 
chap3 conception et implementation
chap3 conception et implementation chap3 conception et implementation
chap3 conception et implementation
 
Démystifier la programmation avec LabVIEW FPGA
Démystifier la programmation avec LabVIEW FPGADémystifier la programmation avec LabVIEW FPGA
Démystifier la programmation avec LabVIEW FPGA
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 

Semelhante a Tutorial xilinx 9.1i

Copsykey diapo
Copsykey diapoCopsykey diapo
Copsykey diapo
jfcastell
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
LeTesteur
 

Semelhante a Tutorial xilinx 9.1i (20)

Tp5 - WINDEV
Tp5 - WINDEVTp5 - WINDEV
Tp5 - WINDEV
 
#JRES2015 #LightningTalks - Outils libres pour la gestion d'un parc de machin...
#JRES2015 #LightningTalks - Outils libres pour la gestion d'un parc de machin...#JRES2015 #LightningTalks - Outils libres pour la gestion d'un parc de machin...
#JRES2015 #LightningTalks - Outils libres pour la gestion d'un parc de machin...
 
Hady bah l3
Hady bah l3Hady bah l3
Hady bah l3
 
Tp1 - Eclipse
Tp1 - EclipseTp1 - Eclipse
Tp1 - Eclipse
 
Tuto bada
Tuto badaTuto bada
Tuto bada
 
Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
 
memoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosmemoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagios
 
[Webinar] Techniques avancées de création de workflow - FR
[Webinar] Techniques avancées de création de workflow - FR[Webinar] Techniques avancées de création de workflow - FR
[Webinar] Techniques avancées de création de workflow - FR
 
Copsykey diapo
Copsykey diapoCopsykey diapo
Copsykey diapo
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
 
IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)
IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)
IP Multimedia Subsystem : Démarrer avec Mobicents JainSLEE (Partie 1)
 
Ce qu'il faut retenir de la FrenchKit iOS
Ce qu'il faut retenir de la FrenchKit iOSCe qu'il faut retenir de la FrenchKit iOS
Ce qu'il faut retenir de la FrenchKit iOS
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous delivery
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
Open Embedded un framework libre pour assurer la cohérence de son projet
Open Embedded un framework libre pour assurer la cohérence de son projetOpen Embedded un framework libre pour assurer la cohérence de son projet
Open Embedded un framework libre pour assurer la cohérence de son projet
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
.NET DotNet CF - 1
.NET DotNet CF - 1.NET DotNet CF - 1
.NET DotNet CF - 1
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 
Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
 

Tutorial xilinx 9.1i

  • 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