INSAT
INSAT-TUNIS
INSAT-TUNIS
Sommaire
I. Introduction Xilinx ISE Foundation ...................................................................................... 5 Ou trouver Xilinx 9.1i ? ..................................................................................................... 6 Comment Installer Xilinx Webpack 9.1i ........................................................................... 6 Comment Lancer Xilinx Project Navigator ....................................................................... 6 II. La Project Navigator ................................................................................................................ 7 A. Cration d'un nouveau projet Schmatique ....................................................................... 7 B. Cration d'un demi-additionneur en mode Schmatic ....................................................... 9 1. Ajouter une nouvelle source .......................................................................................... 9 2. Le Demi-Additionneur ................................................................................................. 10 III. Initiation au VHDL ............................................................................................................. 20 A. Cration dun projet VHDL ............................................................................................. 20 B. Ajouter ou crer un fichier VHDL dans le projet ............................................................ 21 C. Synthse dun projet ........................................................................................................ 22 D. Ralisation dun compteur 4 bits en VHDL .................................................................... 25 1. Cration du projet et dune source VHDL ................................................................... 25 2. Utilisation du modle de langage Template Language .......................................... 26 3. Modification du code du fichier compteur_vhdl.vhd ............................................. 28 4. Simulation du module VHDL ...................................................................................... 29 5. Cration dune macro partir du module VHDL: ....................................................... 32 IV. Cration dune machine tats ........................................................................................... 33 A. Introduction ..................................................................................................................... 33 B. Ajout des tats ................................................................................................................. 34 C. Ajout des Transitions ....................................................................................................... 37 D. Initialisation du Timer ..................................................................................................... 37 E. Gnrer le code VHDL ................................................................................................... 38 F. Simulation de la machine avec StateCAD .......................................................................... 39 G. Cration dune macro schmatique ................................................................................. 40 A. B. C.
INSAT-TUNIS
INSAT-TUNIS
I.
ISE Foundation est un panel doutils dvelopp et commercialis par la socit Xilinx. Ce panel permet de raliser toutes les phases du flot de conception dapplications sur des composants reconfigurables (FPGA) de la socit Xilinx. Pour rappel, sur la figure 1, un flot de conception simplifi est donn : Le panel ISE Foundation est constitu dune dizaine doutils, dans ce document seulement trois sont prsents : Project navigator : outil de description du projet (spcification du systme concevoir en VDHL, schematic, machines dtats) synthse, placement,routage. FloorPlanner : outil de visualisation et de localisation des lments utiliss du composants, ainsi que des communications ralises. FPGA editor : outil de visualisation du placement routage, disposant dun placeur routeur intgr. Ce document prsente lutilisation de base de ces diffrents outils.
INSAT-TUNIS
A.
La version ISE Webpack 9.1i est disponible en tlchargement sur le site officiel de xilinx.www.xilinx.com . Il suffit de crer un compte gratuitement pour bnficier de la version gratuite du logiciel. La taille du fichier tlcharger est de 1400 Mo incluant l'installation sur un systme Windows ou bien sur un systme d'exploitation Linux (disponible pour redhat et fedora).
B.
L'installation de Xilinx est trs simple pour les deux systmes d'exploitation (Windows ou Linux). Il suffit de cliquer sur Setup.exe pour que l'installation dbute (sous Windows). Pour les systmes d'exploitation linux, il faut accder au rpertoire de la source d'installation (par la console) et taper : ./setup et l'installation dbute.
C.
Sous Windows : L'outil se lance en cliquant sur l'icne de Project navigator sur le bureau ou en le slectionnant dans le menu dmarrer /programmes. Sous Linux : Pour lancer Xilinx sous Linux il suffit d'accder au rpertoire ou est install Xilinx, puis accder bin ensuite lin ensuite cliquer sur ise. Si vous cliquer sur ise et rien ne se passe, accder au rpertoire 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.
INSAT-TUNIS
II.
La Project Navigator
A. Cration d'un nouveau projet Schmatique
Figure N1
Si cette fentre n'est pas vide cliquer alors sur File > Close Project (Dans le cas de la figure n1 il existe dj un projet ouvert) Pour crer un nouveau projet faites : File > New Project
Figure N2
INSAT-TUNIS
Vous pouvez travers cette fentre saisir le type de priphrique que vous allez utiliser.
Figure N3
INSAT-TUNIS
B.
Pour ajouter une nouvelle source schematic, aller dans la partie Processes et cliquer sur 'Create New Source '.
Figure n4
Figure n5
INSAT-TUNIS
2.
Le Demi-Additionneur
Aprs avoir cre le schma ' DemiAdd' nous obtenons cette fentre. Pour basculer vers la modification du schma du demi-additionneur DemiAdd double cliquer sur 'DemiAdd.sch' se trouvant gauche dans l'espace de travail du projet Navigator.
Figure n6
On va donc crer le demi additionneur en mode 'schematic' en utilisant des portes logiques de base (non, et, ou). Le schma final qu'on va obtenir est reprsent dans la figure n7. Nous allons procder tape par tape pour aboutir ce schma.
10
INSAT-TUNIS
Figure n7
Un schmatique est gnr par l'ajout des portes logiques ainsi que des connecteurs d'entres/sorties. Les entres et sorties des portes logiques sont connectes par des fils (wires). Les symboles standards tel que les portes non (inverter), porte-et 2 entres, porte-ou 2 entres peuvent tres slectionne en cliquant sur 'Symbol Browser. Le 'Symbol Brower' s'ouvre (sil n'est pas ouvert) en cliquant sur le menu 'Add' et en slectionnant 'Symbol'. Autrement la barre horizontale offre aussi un bouton (prsentant l'icne d'une porte logique sur une rsistance 'voir figure n6 remarque 2) permettant de choisir les diffrents composants. Vous devez ajuster la taille de 'Categories' et 'Symbols' pour pouvoir visualiser correctement les symboles. Le 'Symbol Browser' organise les diffrents composants par catgorie. Slectionnez la catgorie 'Logic' et dfiler 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'entres de la porte. Pour ajouter une porte dans le schma : Faites un clique gauche sur la porte Dplacer le curseur dans la partie de dessin Faites un clique gauche sur l'emplacement dsir
Rdig par : Challouf Mahmoud & Mohamed Hichem
11
Tutorial sur Xilinx ISE Foundation v9.1i Vous avez maintenant la porte sur le schma.
INSAT-TUNIS
Ajoutez alors les portes ncessaires pour la cration du demi-additionneur sur le schma.
a)
b)
Le cblage
La deuxime tape consiste cbler le les composants. Le cblage des composants se fait en ajoutant des cbles entres les diffrentes portes. Pour entrer en mode de cblage, cliquer sur le menu 'Add' par la suite cliquer sur 'Wire . Vous pouvez aussi utiliser le raccourci dans la barre horizontale. (Figure n9)
Figure n9
Note : Pour quitter le mode cblage vous pouvant cliquer sur la touche ESC ou bien faites un clic droit.
12
Tutorial sur Xilinx ISE Foundation v9.1i Nous obtenons alors ce schma cbl :
INSAT-TUNIS
Figure n10
Noter que chaque fois que vous connecter un cble avec un autre un petit carre doit apparatre, sil napparat pas supprimer alors ce cble et redessiner. Parfois laffichage se plante sur Xilinx, cliquez alors sur Redraw All Windows pour rafrachir laffichage.
Figure 11
c)
Cette tape consiste ajouter les connecteurs d'entres /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. Aprs avoir slectionner loutil, cliquer sur les bornes dont vous voulez assigner un tat d'entre ou de sortie.
13
INSAT-TUNIS
Figure n12
d)
Maintenant que notre schma est termin, il ne reste plus que le vrifier. Pour ce faire il suffit de cliquer sur le bouton de vrification. (Voir figure 13)
Figure n 14
14
INSAT-TUNIS
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 denregistrer son travail.
(2)
Une capture du projet est une version de votre projet en mode lecture seule. Ca vous permet denregistrer plusieurs copies de votre projet pour une comparaison ultrieure. La capture contient tous les fichiers et rpertoires de votre projet. Pour Crer une capture, aller a Projet > Take a snapshot . Ca va vous ouvrir une fentre pour taper le nom de la capture.
Figure 16
Pour voir les captures faites, cliquer sur longlet Snapshot dans la barre verticale droite. Xilinx offre aussi la possibilit darchiver les captures sous format zip. Vous ne pouvez ouvrir ces archives quavec Xilinx Project Navigator.
15
INSAT-TUNIS
e)
Nous allons nous intresser maintenant a la simulation fonctionnelle de notre schma. Nous allons procder tape par tape pour la ralisation de la simulation. Comme nous avons cr la source de type schematic crez cette fois ci une source de type Test Bench Waveform
Figure n 17
16
INSAT-TUNIS
Cliquez sur suivant pour terminer avec lassistant. Une fentre pour un assistant de temps de simulation et horloge doit apparatre. (Voir figure 18).
Figure n 18
Slectionner 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 prsentant des formes dondes doit apparatre.
17
INSAT-TUNIS
Figure 19
Un carre bleu indique le temps aprs lequel les sorties (outputs) seront valides. En cliquant sur une zone bleu vous pouvez changer ltat de lentre correspondante a la ligne slectionne. Pour vrifier 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 donde. Le fichier correspondant doit apparatre dans la fentre des sources. Sil napparat pas vrifier que vous ts bien en mode Behavioral simulation.
Figure 21
18
INSAT-TUNIS
Dans la partie Processes cliquez deux fois sur simulate behavioral model, ceci va lancer la simulation. Nous obtenons alors la forme donde de la figure 22.
Figure n 22
Le Project Navigator offre la possibilit de faire des agrandissements ou des rductions sur la simulation. Il offre aussi dautre buttons pour contrler la simulation (pause, arrt,)
Figure 23
19
INSAT-TUNIS
Figure n24
Project Name : est le nom de votre projet. Project Location : est lendroit, sur le disque, o vous souhaitez stocker les fichiers du projet. Device Family : slectionnez la famille VirtexE dans la liste des produits supports par ISE. Device : slectionnez le modle de FPGA dans la famille choisie. Choisi le composant : XCV400E Synthesis Tool : slectionnez XST VHDL qui signifie flot VHDL avec outil de synthse 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 (Synthse, placement, routage).
20
INSAT-TUNIS
Sautez ltape dajout dune source en cliquant sur Next deux fois. Quand vous obtenez ce message, appuyez sur Finish
Figure n25
B.
Pour ajouter un fichier VHDL faites : Project>Add Source Une fentre de localisation de la nouvelle source apparat, indiquer alors le chemin, puis cliquez sur OK. Alors la fentre suivant apparat suivant le type de fichier VDHL
Figure n26
Pour crer un nouveau fichier VDHL vide faites : Project>Add Source La fentre New souvre vous devez indiquer un nom votre source ainsi que le type de source.
21
INSAT-TUNIS
Figure n27
Vous ntes pas oblig de renseigner cette fentre et vous pouvez passer directement la cration du fichier VHDL. Mais si vous avez une ide sur les ports dentres et de sorties de votre module (ce qui doit normalement tre le cas) vous pouvez renseigner cette fentre, de cette faon lentit de votre module sera cre dans votre fichier VHDL. Cest un moyen de gagner quelques minutes et dviter les erreurs de syntaxes, le renseignement de cette fentre est donc vivement conseill ! A partir de l vous pouvez diter votre fichier VDHL en noubliant pas denregistrer rgulirement votre travail
C.
Dans la fentre Sources in Project , cliquez sur la ligne correspondant au fichier VHDL principale. Slectionnez ensuite lopration Synthesize dans la fentre Processes for Current Source en cliquant une fois dessus.
Figure n28
Vous pouvez changer les options de synthse en cliquant sur lopration Synthesize avec le bouton droit de la souris. Un menu apparat. Slectionnez Properties . La fentre suivante apparat :
22
INSAT-TUNIS
Figure n29 Vous pourrez essayer de modifier le type dalgorithme de synthse en changeant le paramtre Optimization Goal , vous avez le choix entre speed ou area (
ptimisation en vitesse
ou en surface). Dune faon gnrale loptimisation en vitesse est conseille (paramtres par dfaut). Laissez les autres paramtres par dfaut. Cliquez sur longlet HDL Options. Laissez nouveau les valeurs par dfaut proposes par loutil. Cliquez sur longlet Xilinx Specific Options , la fentre suivante apparat :
Figure n30
Vous pouvez aussi laisser ces paramtres par dfaut. Pour lancer la synthse cliquez deux fois sur lopration Synthesize puis attendez que le calcul soit termin. Vous devez obtenir ceci :
23
INSAT-TUNIS
Figure n31
Un point dexclamation apparat gauche de lopration Synthesize signifiant que la synthse sest bien passe et quil reste faire quelques vrifications. Dpliez lopration Synthesize en cliquant sur le + immdiatement sa gauche, vous verrez la marque verte gauche de la ligne View Synthesis Report qui signifie que la synthse sest bien passe et que vous pouvez consulter le rapport. Double-cliquez sur la ligne View Synthesis Report , vous obtenez laffichage du rapport dans la fentre en haut et droite du Project Navigator . Ce rapport contient entre autre une information importante qui est lestimation de la frquence maximum. Enfin, pour terminer compltement la phase de synthse il y a un outil complmentaire de vrification que vous pouvez lancer. Cest le Check Syntax . Cest un outil qui vous confirmera que vos fichiers sont corrects.
24
INSAT-TUNIS
D.
Crez un nouveau projet dont le nom compteur de type schematic Ajouter une nouvelle source de type VHDL.
Figure n32
Figure n33
Cette table gnre automatiquement les entits dans le module compteur_vhdl . Cliquez sur suivant pour terminer le modle de la nouvelle source.
25
Tutorial sur Xilinx ISE Foundation v9.1i Nous obtenons alors le code vhdl suivant :
INSAT-TUNIS
Figure n34
Notez bien quun fichier compteur_vdhl.vhd a t cre dans le rpertoire de votre projet et a t convenablement ajout dans la liste des sources dans le Project Navigator .
Figure n35
2.
a)
Introduction
Le modle de langage est un outil trs puissant pour la cration de code HDL. Il possde un grand nombre de fonctions prdfinies comme les compteurs, multiplexeurs, dcodeurs. Il existe aussi des codes pour la cration des operateurs communs tels que les if then et les boucles gnralement associs aux langages de programmations. Les modles prsents prsentent une rfrence importante. Ils peuvent tre copis colls dans le fichier vhd. Ainsi leurs codes peuvent tres modifis et personnalis pour aboutir au fonctionnement dsir.
26
INSAT-TUNIS
Gnralement, il est ncessaire de changer la largeur des bus ou les noms des signaux ou dans certains cas modifier le fonctionnement.
b)
Dans notre cas, nous allons utiliser le modle qui utilise le signal <clock> alors que le fichier cr ncessite un signal nomm clock . Le compteur du modle est assez complexe, nous allons donc lallger un peu en supprimant quelques fonctionnalits. Pour ouvrir la fentre permettant de slectionner les modles, cliquez sur licne :
Figure n36
Vous pouvez aussi accder modle de langage partir de Edit > Language Template .
Figure n37
c)
Pour insrer un modle dans le code dun fichier .vhd slectionnez : VHDL > Synthesis Constructs >coding examples > counters > Up Counters > /w CE and Async Active High Reset Faites maintenant un glisser dplacer du modle slectionn dans la feuille de code de
Rdig par : Challouf Mahmoud & Mohamed Hichem
27
INSAT-TUNIS
compteur_vhdl . Vous pouvez aussi faire un clic droit sur le fichier simple Counter et cliquer ensuite sur Use file ensuite slectionner le fichier compteur_vhdl . Vous pouvez maintenant fermer le navigateur des modles.
3.
Vous devez modifier les mots ( <clock> par clock et <reset> par reset) qui rfrencent vos entres pralablement instancies. Modifier le code source de compteur_vhdl.vhd pour devenir comme suit :
Figure n38
Vous pouvez changer les noms <clock> par clock en utilisant remplacer dans Edit > Replace Lentte du code reprsente la dclaration standard dun module VHDL. a reprsente la dclaration des librairies, entits et architectures. La partie entits entity dclare 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 entres (clock et reset) et une sortie reprsente par un bus de 4 bits appel count.
Rdig par : Challouf Mahmoud & Mohamed Hichem
28
INSAT-TUNIS
La description fonctionnelle actuelle de la conception apparait aprs le mot cl begin dans larchitecture. La fonction de ce code cest dincrmenter une variable count chaque fois que lhorloge clock est 1 et quil y a un vnement dans lhorloge. Ceci se passe sur front montant. Le reset est asynchrone, car elle est value avant lhorloge clock . Nous pouvons maintenant passer la simulation du circuit.
4.
Commencer par ajouter une nouvelle source du type : Test Bench WaveForm
Figure n39
Figure n40
29
Tutorial sur Xilinx ISE Foundation v9.1i Slectionnez le fichier vhdl cre prcdemment comme source de simulation.
INSAT-TUNIS
Il vous reste maintenant de spcifier la nature des signaux dentres. Slectionner Single Clock comme signal dhorloge. Vous pouvez modifier la priode de lhorloge en agissant sur Clock High Time et sur Clock Low Time .
Figure n41
Cliquer par la suite sur suivant. Vous pouvez mettre le reset 1 pendant une priode, pour tester le bon fonctionnement du compteur. Si vous avez un problme avec la simulation vrifiez alors les initialisations des entres.
30
INSAT-TUNIS
Figure n42
Cliquez maintenant sur le behavioral simulation et slectionnez le fichier vhdl_sim.tbw . Dans la fentre de processes cliquez sur simulate behavioral model Vous aurez alors la forme donde suivante :
Figure n43
Figure n44
31
INSAT-TUNIS
5.
Figure n45 Il faudra maintenant crer une nouvelle source de type schmatique pour pouvoir ajouter la macro cr partir du code VHDL.
Figure n46
32
INSAT-TUNIS
IV.
Figure n47
Si cette fentre est vide, Click droite sur la fentre des processus et crer une nouvelle source et choisir state diagram comme type. Le nommer Squence par exemple.
33
INSAT-TUNIS
B.
Figure n48
Il faut maintenant ajouter les 4 tats sur le diagramme. Pour cela cliquer sur le bouton
Figure n49
Il faut initialiser le nombre des tats Number of states 4, cliquer sur Next , puis slectionner synchronous state machine puis taper TIMER dans longlet NEXT de la fentre suivante :
Figure n50
Rdig par : Challouf Mahmoud & Mohamed Hichem
34
INSAT-TUNIS
Cliquez Finish puis cliquez une autre fois pour placer la machine, double-cliquer sur ltat STATE0 color en jaune et le renommer ROUGE, cliquer sur le bouton output Wizard , saisir RD dans longlet DOUT pour dclarer une sortie output . Puis initialiser RD 1 comme indiqu dans les deux figures suivantes :
Figure n51
Dune manire 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 n52
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.
35
INSAT-TUNIS
Figure n53 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 coche comme registred.
36
INSAT-TUNIS
C.
Double cliquer sur la ligne de transition entre ltat ROUGE et ltat ROUJAU. Dans le Edit Condition Window , modifier longlet de condition condition field en TIMER = 1111 pour que la transition se dclenche quand lhorloge Timer est dans ltat 1111 (Noubliez pas les doubles quottes pour respecter le syntaxe VHDL)
Figure n54 Rpter le mme 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, dclarez 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)
37
INSAT-TUNIS
Figure n55
E.
Si vous avez construit la machine tat correctement, vous deviez voir ce message
Figure n56
Cliquer fermer close , et le lassistant ouvrera le code VHDL cre. 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 gnr. Vous tes maintenant capable de le simuler ou de crer des symboles partir de cette macro comme nimporte quelle autre macro VHDL.
38
INSAT-TUNIS
F.
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 n57
Figure n58
Pour rapidement raliser une simulation cliquez sur Automatic TestBench dans le menu en top. Vous obtenez alors aprs avoir spcifi lemplacement des fichiers VHDL et rgression exporter et les options de simulation. (Voir figure n59)
39
INSAT-TUNIS
Figure n59
Figure n60
G.
Pour utiliser ce composant dans un projet dans Xilinx on doit insrer le fichier .VHD prcdemment cre dans un projet en suivant les tapes expliques dans la partie prcdente. Ainsi on obtint le symbole suivant :
Figure n61
40