32
M TAYARI.L Page 1 /32 TP N°1 1- Introduction 1.1 Survol ISE Foundation 9.2 est un environnement intégré de développement de systèmes numériques ayant pour but une implémentation matérielle sur FPGA de la compagnie Xilinx. Les designs peuvent être décrits sous trois formes principales : • schémas; • langage de description matérielle (HDL) comme VHDL et Verilog; et, • diagrammes d’états. ISE intègre donc différents outils permettant de passer à travers tout le flot de conception d’un système numérique : • un éditeur de textes, de schémas et de diagrammes d’état; • un compilateur VHDL/Verilog; • un outil de simulation; • des outils pour la gestion des contraintes temporelles; • des outils pour la synthèse; • des outils pour la vérification; et, • des outils pour l’implantation sur FPGA. 1.2 Objectif de ce guide L’objectif de ce guide est d’énumérer et de décrire les étapes simples pour : • créer un projet dans ISE 9.2; • décrire un circuit numérique à l’aide d’un schéma ou à l’aide d’une description VHDL et l’intégrer au projet; • simuler le circuit numérique en lui appliquant des signaux d’entrée désirés et en observant sa sortie; • synthétiser et implémenter le circuit pour un FPGA; et, • programmer le FPGA de la planchette de développement FPGA, pour vérifier l’opération correcte du circuit. 2- Lancement de ISE 9.2 et création d’un projet Dans l’environnement ISE , un ‘projet’ est un regroupement de fichiers en rapport avec un système ou un design en particulier. Par exemple, dans le cadre d’un cours, on pourrait avoir un projet par laboratoire ou par devoir. 1. Lancer ISE 9.2 en cliquant deux fois sur l’icône sur le bureau de travail ou en choisissant StartPrograms XilinxISE 9.2i Project Navigator. ISET DE GABES LAII 5 ENSEIGNANT : M. TA YA RI LASSAAD CLASSE : LAII51 TP N°1 Guide pratique d’initiation a XILINX ISE 9.2i

ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

Embed Size (px)

Citation preview

Page 1: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA LAII51 ISET GABES

M TAYARI.L Page 1 /32 TP N°1

1- Introduction 1.1 Survol ISE Foundation 9.2 est un environnement intégré de développement de systèmes numériques ayant pour

but une implémentation matérielle sur FPGA de la compagnie Xilinx. Les designs peuvent être décrits sous

trois formes principales :

• schémas;

• langage de description matérielle (HDL) comme VHDL et Verilog; et,

• diagrammes d’états. ISE intègre donc différents outils permettant de passer à travers tout le f lot

de conception d’un système numérique :

• un éditeur de textes, de schémas et de diagrammes d’état;

• un compilateur VHDL/Verilog;

• un outil de simulation;

• des outils pour la gestion des contraintes temporelles;

• des outils pour la synthèse;

• des outils pour la vérification; et,

• des outils pour l’implantation sur FPGA.

1.2 Objectif de ce guide L’objectif de ce guide est d’énumérer et de décrire les étapes simples pour :

• créer un projet dans ISE 9.2;

• décrire un circuit numérique à l’aide d’un schéma ou à l’aide d’une description VHDL et

l’intégrer au projet;

• s imuler le circuit numérique en lui appliquant des signaux d’entrée désirés et en observant sa

sortie;

• synthétiser et implémenter le circuit pour un FPGA; et,

• programmer le FPGA de la planchette de développement FPGA, pour vérifier l’opération

correcte du circuit.

2- Lancement de ISE 9.2 et création d’un projet Dans l’environnement ISE, un ‘projet’ est un regroupement de fichiers en rapport avec un système ou un

design en particulier. Par exemple, dans le cadre d’un cours, on pourrait avoir un projet par laboratoire ou

par devoir.

1. Lancer ISE 9.2 en cliquant deux fois sur l’icône sur le bureau de travail ou en choisissant StartProgramsXilinxISE 9.2iProject Navigator.

ISET DE GABES

LAII 5

ENSEIGNANT : M. TAYARI LASSAAD

CLASSE : LAII51

TP N°1 Guide pratique d’initiation a

XILINX ISE 9.2i

Page 2: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA LAII51 ISET GABES

M TAYARI.L Page 2 /32 TP N°1

2. Choisir File New Project

3. Donner un nom pertinent à votre nom de projet. 4. Si vous désirez faire un design à base d’un schéma, choisir Schematic comme Top-Level Source Type.

5. Si vous désirez faire un design à base d’un code HDL, choisir HDL comme Top_Level Source Type.

6. Ensuite cliquer sur Next

Page 3: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA LAII51 ISET GABES

M TAYARI.L Page 3 /32 TP N°1

7. Vérifier que les paramètres sont identiques à la figure suivante.

Family permet de choisir la famille de FPGA, et Device permet de sélectionner le sous-type (nombre de

portes logiques). Package définit le type de boitier : dans le cas présent, nous utilisons un FPGA Spartan 3

XC3S200 à 256 pattes. Appuyer sur Next.

8. Appuyer sur Next deux autres fois pour les deux autres fenêtres et sur Finnish.

3 Description d’un circuit numérique 3.1 Circuit en exemple Dans ces instructions, on construit spécifiquement un circuit arithmétique de base : un additionneur à 3 bits.

Ce circuit accepte 3 bits en entrée et les additionne. Il a deux sorties : une retenue ains i qu’une somme. Les

sorties possibles sont donc (retenue, sortie) {(0, 0), (0, 1), (1, 0), (1, 1)}, correspondant respectivement

aux cas où les trois bits d’entrée sont 0, un seul bit est 1, deux bits sont 1, et trois bits sont 1. Ce circuit

indique effectivement le nombre de bits d’entrée qui valent 1.

Le tableau de vérité de ce circuit est donné ici :

On peut dériver les équations pour les sorties retenue et somme grâce à un tableau de Karnaugh, et, à l’aide

de manipulations algébriques, obtenir une version plus efficace pour l’implémentation matérielle. Un

schéma d’un circuit réalisant ces deux fonctions est donné ici :

Page 4: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA LAII51 ISET GABES

M TAYARI.L Page 4 /32 TP N°1

Le circuit est composé des entités suivantes :

• deux portes OU-exclusif à deux entrées;

• deux portes ET à deux entrées;

• une porte OU à deux entrées; et,

• trois terminaux d’entrée et deux terminaux de sortie.

3.2 Les fichiers sources

Dans l’environnement ISE, un ‘fichier source’ renferme des données descriptives ou de configuration d’un

système ou un design en particulier. Par exemple, un projet pourrait comporter un fichier décrivant le

circuit numérique par un schéma, et un fichier indiquant la correspondance entre les ports du circuit et les

pattes du FPGA.

3.3 Description avec un schéma 1. Sélectionner le menu Projectnew Source

2. Sélectionner schematic comme source et entrer le nom du schéma que vous allez créer.

3. Vérifier que l’option Add to project est cochée.

4. Cliquer sur sur Next .

Page 5: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA LAII51 ISET GABES

M TAYARI.L Page 5 /32 TP N°1

5. Cliquez sur Finish.

6. La première fois qu’on ajoute un fichier source au projet, on obtient une fenêtre semblable à la f igure ci-

contre.

7. Cliquer sur l’onglet sources si nécessaire (partie gauche et en haut de l’écran), puis dans la fenêtre

sources cliquer deux fois sur votre fichier pour ouvrir l’éditeur de schémas.

Page 6: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA LAII51 ISET GABES

M TAYARI.L Page 6 /32 TP N°1

8. Pour ajouter des composantes cliquer sur le symbole : ou dans la barre d’outils AddSymbol

9. Sélectionner Logic dans l’onglet Categories et and2 dans l’onglet Symbols.

Cliquer par la suite sur l’espace de travail pour placer la porte sélectionnée.

10. Répéter l’étape 8 pour les portes xor2 et or2 correspondant respectivement à un « OU EXCLUSIF »

à deux entrées et à un « OU » à deux entrées.

11. Relier les portes à l’aide d’un fil en cliquant sur le symbole (ou avec le menu AddWire).

Placer ensuite les ports d’entrée et de sortie à l’aide du symbole (ou avec le menu Add I/OMarquers).

12. Cliquer sur bouton de droite de la souris et renommer les Entrées/Sorties (bit0, bit1, bit2 / Somme, Retenue) avec l’option Rename Port. Il est à noter que le choix de la direction des ports (en entrée ou en

sortie) s’effectue automatiquement.

Page 7: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA LAII51 ISET GABES

M TAYARI.L Page 7 /32 TP N°1

13. Vous devriez obtenir le schéma final suivant.

14. Pour finir, vérifier votre schéma avec le bouton de la barre d’outil de dessin ou en sélectionnant Tools Check Schematic du menu. Vérif ier les messages dans la console au bas de l’écran.

15. S’il y a des erreurs corrigez-les et recommencer la vérification

4 Simulation du design La simulation du design permet de vérifier qu’il fonctionne de la façon prévue par les spécifications. La

simulation à faire à cette étape est la simulation comportementale. Pour simuler le design il faut créer un

banc d’essai contenant les stimuli d’entrée. 1. Sélectionner le fichier à simuler (Schema_additionneur).

2. Créer un nouveau banc d’essai en sélectionnant ProjectNew Source.

3. Dans la fenêtre qui s’ouvre, sélectionner Test Bench WaveForm comme source, et donner un nom au

fichier comme ci-contre :

4. Cliquer sur Next.

Page 8: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA LAII51 ISET GABES

M TAYARI.L Page 8 /32 TP N°1

5. La page suivante montre quel f ichier source est associé au banc d’essai; il s’agit de notre fichier à

simuler. 6. Cliquer Next, puis Finish.

7. Une fenêtre permettant d’effectuer une initialisation temporelle (détermination des paramètres de

l’horloge et de certaines contraintes temporelles) apparaît. Vu que nous travaillons en combinatoire, il faut cocher l’option combinatorial (or internal clock) dans le cadreclock information.

8. Modifier ensuite la durée de la simulation : mettez-là à 1500 ns (initial Length of TestBench). Cliquer sur Finish pour terminer cette initialisation

temporelle.

9. Avec le bouton droit de droite, cliquer sur le début de la courbe (juste à côté de la zone grise) correspondant au signal bit0; et sélectionner set value.

10. Dans la fenêtre qui s’ouvre choisir pattern wizard.

Page 9: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA LAII51 ISET GABES

M TAYARI.L Page 9 /32 TP N°1

11. Modifier les valeurs de pulse width et initial delay à une valeur 4 cycles.

12. Cliquer sur Ok

13. Répéter les mêmes étapes pour bit1 et bit2, avec comme valeurs 2 et 1, respectivement.

14. Sauvegarder le banc d’essai avec File >Save, qui devrait ressembler au schéma ci-contre.

15. Dans la fenêtre sources, sélectionner beha-vioral simulation.

16. Assurez-vous que le banc d’essai est bien sélectionné dans la fenêtre sources.

17. Dans la fenêtre processes, dérouler l’outil xilinx ise simulator.

18. Double-cliquer sur Simulate Behavioral Model.

19. Corriger votre design si vous obtenez des erreurs. Vous ne devriez quitter la simulation que lorsque

celle-ci donne des résultats conformes aux spécifications.

Page 10: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 10 /32 TP N°1

5 SYNTHESE ET IMPLEMENTATION DU DESIGN 5.1 Description La synthèse d’un circuit consiste à traduire la description du circuit en blocs disponibles dans la

technologie utilisée. Par exemple, pour un circuit décrit avec un schéma et qui doit être réalisé sur un

FPGA,le processus de synthèse convertit et regroupe les portes logiques du schéma en composantes

réalisables sur le FPGA choisi.

L’implémentation du circuit est divisée en quatre sous étapes:

• la transformation (mapping) : regrouper les composantes obtenues lors de la synthèse dans des

blocs spécifiques du FPGA;

• la disposition (placement) : choisir des endroits spécifiques sur le FPGA où disposer les blocs

utilisés, et choisir les pattes du FPGA correspondant aux ports d’entrée et de sortie;

• le routage (routing) : établir des connexions électriques entre les blocs utilisés; et,

• la configuration (configuration) : convertir toute cette information en un fichier pouvant être

téléchargé sur le FPGA pour le programmer.

5.2 Ports d’entrée et de sortie

Pendant l’étape de disposition de l’ implémentation, il faut assigner des pattes spécifiques du FPGA à des

ports d’entrée et de sortie de son design. Pour le design présent, les ports d’entrée sont bit0, bit1 et bit2, et

les ports des sortie sont retenue et somme. L’assignation des pattes que nous ferons ici s’applique

uniquement à la planchette de développement Spartan-3 de Digilent.

L’assignation des ports se fait par l’entremise d’un fichier de contraintes avec l’extension « .ucf » (pour

user constraints file). 1. Dans la fenêtre sources, sélectionner Synthesis/Implementation

2. Dans la fenêtre Processes, dérouler le menu User Constraints et double-cliquer sur Assign Package Pins.

3. Dans la fenêtre suivante cliquer sur Yes pour créer automatiquement le fichier d’assignation (.ucf) des ports du FPGA.

Page 11: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 11 /32 TP N°1

4. Une fenêtre d’assignation de pattes va s’ouvrir. Entrer, dans la section Loc du menu Design Object List – I/O Pins, les numéros des pattes reliant le FPGA à votre design (f12 pour bit0, g12 pour bit1, h14 pour bit2, p14 pour retenue, k12 pour somme).

Cela a pour effet de connecter les entrées aux commutateurs SW0, SW1, et SW2, et les sorties aux diodes émettrice de lumière LD1 et LD0 de la planchette. 5. Sauver les allocations effectuées en sélectionnant File_Save. Sélectionner XST Default:<> pour le type de sauvegarde. Cliquer sur Ok.

6. Fermer la fenêtre d’assignation des pattes. 7. Dans la fenêtre Sources sélectionner (additionneur.sch) si vous effectuez un design basé sur un schéma ou le fichier VHDL (additionneur-vhdl.vhdl) s’il est basé sur un fichier VHDL . 8. Dans la fenêtre Processes double cliquer sur Generate Programming File. Attendre quelques minutes et vous devriez obtenir le schéma suivant indiquant que les étapes de synthèse ont bien été effectuées.

6 Programmation du FPGA et tests

1. Informer votre enseignant que vous êtes prêt à utiliser la planchette pour qu’on vous indique comment effectuer les connexions.

Page 12: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 12 /32 TP N°1

2. Double-cliquer sur Configure Device (IMPACT).

Cliquer sur Cancel si vous obtenez le message d’avertissement suivant.

3. Sélectionner Configure Devices using Boundary-Scan (JTAG).

4. Cliquer sur Finish. 5. Sélectionner le fichier de programmation créé (additionneur.bit pour un design basé sur un

schéma ou VHDL-additionneur.bit pour un design basé sur un fichier VHDL). 6. Cliquer sur Ok si un message d’avertissement apparaît 7. Une autre fenêtre s’ouvre permettant de programmer la mémoire flash de la planchette.

Cliquer sur Bypass. (Il faut remarquer que ce n’est pas le même type de fichier qui permet de programmer les deux).

8. Faites un clic droit sur xc3s200 et sélectionner Program.

Page 13: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 13 /32 TP N°1

9. Cliquer sur Ok dans la fenêtre Programming Properties.

10. Vous devrez obtenir le schéma suivant indiquant que la programmation du FPGA s’est bien déroulée.

Recommencer l’étape précédente si ce n’est pas le cas.

11. Vous pouvez maintenant tester votre design sur le FPGA! Vérifier toutes les combinaisons

possibles d’entrées et vérifier que les sorties sont bien conformes au tableau de vérité.

6- DESCRIPTION AVEC UN FICHIER VHDL

1. Refaire les etapes de la section 2- et choisir le « top- level source type» HDL au lieu

de shematic. 2. Sélectionner le menu Project new Source.

3. Sélectionner VHDL Module comme source et entrer le nom du schéma que vous allez

créer.

4. Vérifier que l’option add to project est cochée. 5. Cliquer sur Next

Page 14: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 14 /32 TP N°1

6. Déclarer les ports d’entrée/sortie du design comme définis ci-contre.

7. Cliquer sur Next et ensuite sur Finish. Une ébauche du fichier apparaît avec la

description de l’entité et de l’architecture. 8. Dans la description de l’architecture, en dessous de l’énoncé begin, insérer les

fonctions permettant de calculer la somme et la retenue, tel que montré ci-contre.

Une fois le fichier VHDL édité, il est conseillé de vérifier la syntaxe du design afin de trouver des erreurs de syntaxe, de typographie :

1. Vérifier que synthesis/implementation est sélectionné dans la liste déroulante de la fenêtre sources.

2. Sélectionner le fichier VHDL Compteur-VHDL pour afficher les processus liés dans la fenêtre processes.

3. Cliquer sur le « + » à coté de synthesize-XST.

4. Double-cliquer sur le processus check syntax. Si tout va bien, un crochet vert apparaît. Sinon, consulter les messages d’erreur dans la console au bas de l’écran.

5. Corriger les erreurs s’il y a lieu, puis fermer le fichier VHDL.

6. Refaire le étapes des sections 4- et 5-

Page 15: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 15 /32 TP N°1

T P N°2

I. Objectif

L’objectif de ce module de TP est, au travers de la réalisation de différents petits

projets, d’apprendre à utiliser les outils de la suite logicielle ISE design sofware de la société Xilinx pour configurer des composants logiques programmables à partir d’une description en VHDL. Pré Requis : connaître les fonctions logiques de base.

II. Déroulement

La conduite d’un projet simple comporte les étapes suivantes :

1. Description du projet avec le module ISE qui comporte différents modes d’entrée tels que :

Texte VHDL ou Verilog HDL

Schéma bloc

Machine d’états 2. Simulation fonctionnelle avec le module ModelSim

Cette étape permet d’entrer des stimuli, de simuler le comportement des éléments du projet et de visualiser les résultats sous forme de chronogrammes ou de listes d’états.

3. Synthèse

L’outil de synthèse XST (Xilinx Synthesis Technology) crée, à partir des fichiers texte VHDL, un fichier du type « netlist » de très bas niveau qui décrit les fonctions à implémenter

dans le composant. 4. Implémentation dans un CPLD (XCRP) ou FPGA (sapartanIII) Elle comporte deux étapes :

Traduction (Translation) du modèle logique du composant en une autre forme qui tient compte de l’architecture du composant, et vérification de la validité

des contraintes imposées par l’utilisateur (temps de propagation, brochage).

Adaptation du modèle précédant (Fitting) aux ressources du composant en

tenant compte des contraintes. 5. Simulation post- implémentation Elle consiste à simuler le fonctionnement du composant en tenant compte du chemin

suivi par les signaux et donc des temps de propagation (simulateur ModelSim). 6. Programmation du composant

Elle commence par la création d’un fichier de programmation au format standard JEDEC puis la configuration du composant sur l’application cible avec le logiciel iMPACT

7. Test électrique du projet Nous utilisons comme application cible une carte d’évaluation Digilab XCRP ou

Spartan III de la société Digilent. Cette carte est équipée d’un circuit CPLD CoolRunner XCR3064PC44 ou FPGA XC3S200.

ISET GABES GE 3

èmme Année

LEAII51

ENSEIGNANT : M. TAYARI LASSAAD

TP 2 conceptions de systèmes numériques

Initiation à VHDL avec ISE de Xilinx (V9.2i)

Page 16: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 16 /32 TP N°1

III. Projets proposés

Le tableau de la figure 1 donne la liste des projets proposés.

Exemple n° Fichier.vhd Mode Type

d’instructions

Instructions

1 Basic_gates combinatoire concourantes équations logiques

2 Comparateur combinatoire concourantes when-else

3 Hex27seg combinatoire concourantes when-else

4 Bcd27seg combinatoire concourantes with-select

5 Dec3v8 combinatoire process case

6 Demux1v8 combinatoire process case

7 Com_mot_2v séquentiel process machine d’état sorties

combinatoire

8 Com_mot_2s séquentiel process machine d’état sorties

synchronisées

Figure 1

Compte rendu

Les résultats obtenus à chaque étape de chaque projet seront analysés et consignés

dans un compte rendu sur l’ensemble des projets. Pour chaque projet il sera présenté :

- La fonction du composant réalisé

- Une analyse du fichier source expliquant les nouvelles instructions utilisées - Les tests proposés pour la simulation en justifiant leur choix.

- Les résultats de la simulation et leur interprétation. - Les ressources utilisées après implémentation dans le composant - Les équations logiques synthétisées

- Les résultats de tests effectués avec la carte d’évaluation

Page 17: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 17 /32 TP N°2

-- Exemple 1 Fonctions logiques de base (équations booléennes)

-- mode concourant

-- Le système est purement combinatoire

-- Il utilise le symbole d'affectation <=

-- La mise jour est effective à la dernière instruction

-- fichier Basic_gates.vhd

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

-- le standard IEEE 1164 définit des signaux std_logic à 9 niveaux :

-- 0, 1, Z(haute impédance), - (indifférent), etc

-- Description externe du système

entity Basic_Gates is

Port ( a : in std_logic; -- SW1

b : in std_logic; -- SW2

y1 : out std_logic; -- LED1

y2 : out std_logic; -- LED2

y3 : out std_logic; -- LED3

y4 : out std_logic; -- LED4

y5 : out std_logic; -- LED5

y6 : out std_logic; -- LED6

y7 : out std_logic); -- LED7

end Basic_Gates;

-- Description du fonctionnement interne

architecture Behavioral of Basic_Gates is

begin

-- liste d'instructions concourantes

y1 <= a and b;

y2 <= a or b;

y3 <= a xor b;

y4 <= not a;

y5 <= a nand b;

y6 <= a nor b;

y7 <= not(a xor b);

-- mise a jour des sorties

end Behavioral;

Page 18: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 18 /32 TP N°2

-- Exemple 2 : comparateur 4 bits

-- Fichier Comparateur.vhd

-- mode concourant

-- utilise l''assignation conditionnelle WHEN ... ELSE

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

-- Description externe du système

entity Comparateur is

Port ( A : in std_logic_vector(3 downto 0); -- SW1 ..SW4

B : in std_logic_vector(3 downto 0); -- SW5 ..SW8

SUP : out std_logic; -- LED3

INF : out std_logic; -- LED1

EGAL : out std_logic); -- LED2

end Comparateur;

-- Description du fonctionnement interne

architecture Behavioral of Comparateur is

begin

SUP <= '1' WHEN A>B ELSE '0';

INF <= '1' WHEN A<B ELSE '0';

EGAL <='1' WHEN A=B ELSE '0';

end Behavioral;

Page 19: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 19 /32 TP N°2

-- Exemple 3 : décodeur hexadecimal 7 segments

-- fichier Hex2seg.vhd

-- mode concourant

-- utilise un signal interne

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity HEX27SEG is

Port ( i : in std_logic_vector(3 downto 0); -- SW1,SW2,SW3,SW4

a : out std_logic; -- AA

b : out std_logic; -- AB

c : out std_logic; -- AC

d : out std_logic; -- AD

e : out std_logic; -- AE

f : out std_logic; -- AF

g : out std_logic; -- AG

cat1 : out std_logic; -- CAT1

cat2 : out std_logic); -- CAT2

end HEX27SEG;

architecture Behavioral of HEX27SEG is

SIGNAL seg :std_logic_vector(0 to 6);

BEGIN

seg <= "1111110" when i=0

ELSE "0110000" when i=1

ELSE "1101101" when i=2

ELSE "1111001" when i=3

ELSE "0110011" when i=4

ELSE "1011011" when i=5

ELSE "1011111" when i=6

ELSE "1110000" when i=7

ELSE "1111111" when i=8

ELSE "1111011" when i=9

ELSE "1110111" when i=10

ELSE "0011111" when i=11

ELSE "0001101" when i=12

ELSE "0111101" when i=13

ELSE "1001111" when i=14

ELSE "1000111" when i=15;

a <= seg(0);

b <= seg(1);

c <= seg(2);

d <= seg(3);

e <= seg(4);

f <= seg(5);

g <= seg(6);

cat1 <= '0';

cat2 <= '1';

end Behavioral;

Page 20: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 20 /32 TP N°2

-- exemple 4 :décodeur BCD 7 segments

-- fichier BCD27SEG.vhd

-- mode concourant

-- utilise l'assignation conditionnelle WITH SELECT <= WHEN

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity BCD27SEG is

Port ( i : in std_logic_vector(3 downto 0); -- SW1,SW2,SW3,SW4

a : out std_logic; -- AA

b : out std_logic; -- AB

c : out std_logic; -- AC

d : out std_logic; -- AD

e : out std_logic; -- AE

f : out std_logic; -- AF

g : out std_logic; -- AG

cat1 : out std_logic; -- CAT1

cat2 : out std_logic); -- CAT2

end BCD27SEG;

architecture Behavioral of BCD27SEG is

SIGNAL seg :std_logic_vector(0 to 6);

BEGIN

WITH i SELECT

seg <="1111110" WHEN "0000",

"0110000" WHEN "0001",

"1101101" WHEN "0010",

"1111001" WHEN "0011",

"0110011" WHEN "0100",

"1011011" WHEN "0101",

"1011111" WHEN "0110",

"1110000" WHEN "0111",

"1111111" WHEN "1000",

"1111011" WHEN "1001",

"-------" WHEN OTHERS ;

a <= seg(0);

b <= seg(1);

c <= seg(2);

d <= seg(3);

e <= seg(4);

f <= seg(5);

g <= seg(6);

cat1 <= '0';

cat2 <= '1';

end Behavioral;

Page 21: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 21 /32 TP N°2

-- Exemple 5 : décodeur octal

-- fichier Decodeur_octal.vhd

-- mode combinatoire

-- utilise l'assignation conditionnelle IF THEN ELSE dans un process

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Decodeur_Octal is

Port ( E : in std_logic_vector(2 downto 0); -- SW1,SW2,SW3

S0 : out std_logic; -- LED1

S1 : out std_logic; -- LED2

S2 : out std_logic; -- LED3

S3 : out std_logic; -- LED4

S4 : out std_logic; -- LED5

S5 : out std_logic; -- LED6

S6 : out std_logic; -- LED7

S7 : out std_logic); -- LED8

end Decodeur_Octal;

architecture Behavioral of Decodeur_Octal is

BEGIN

PROCESS(E) BEGIN

IF E="0000" THEN S0 <='1'; ELSE S0 <='0';END IF;

IF E="0001" THEN S1 <='1'; ELSE S1 <='0';END IF;

IF E="0010" THEN S2 <='1'; ELSE S2 <='0';END IF;

IF E="0011" THEN S3 <='1'; ELSE S3 <='0';END IF;

IF E="0100" THEN S4 <='1'; ELSE S4 <='0';END IF;

IF E="0101" THEN S5 <='1'; ELSE S5 <='0';END IF;

IF E="0110" THEN S6 <='1'; ELSE S6 <='0';END IF;

IF E="0111" THEN S7 <='1'; ELSE S7 <='0';END IF;

END PROCESS;

end Behavioral;

-- Exemple 6 : Décodeur 3 vers 8

-- fichier Dec3V8.vhd

-- mode combinatoire

-- utilise l'assignation conditionnelle CASE dans un process

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Decodeur3V8 is

Port ( SEL : in std_logic_vector(2 downto 0);-- SW1,SW2,SW3

S : out std_logic_vector(7 downto 0));-- LEDs 1 a 8

end Decodeur3V8;

architecture Behavioral of Decodeur3V8 is

begin

PROCESS(SEL )BEGIN

Page 22: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 22 /32 TP N°2

CASE SEL IS

WHEN "000" => S <= "00000001";

WHEN "001" => S <= "00000010";

WHEN "010" => S <= "00000100";

WHEN "011" => S <= "00001000";

WHEN "100" => S <= "00010000";

WHEN "101" => S <= "00100000";

WHEN "110" => S <= "01000000";

WHEN OTHERS =>S <= "10000000";

END CASE;

END PROCESS;

end Behavioral;

-- Exemple 7 : Démultiplexeur 1 vers 8

-- fichier demux1V8

-- mode combinatoire

-- utilise l'assignation conditionnelle CASE dans un process

-- utilise le mot clé OTHERS

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Demux1V8 is

Port ( E : in std_logic; -- BTN1

SEL : in std_logic_vector(2 downto 0); -- SW1,SW2,SW3

S : out std_logic_vector(7 downto 0)); -- LEDS 1 à 8

end Demux1V8;

architecture Behavioral of Demux1V8 is

BEGIN

PROCESS(SEL,E) BEGIN

CASE SEL IS

WHEN "000" => S <= (0=>E,OTHERS=>'0');

WHEN "001" => S <= (1=>E,OTHERS=>'0');

WHEN "010" => S <= (2=>E,OTHERS=>'0');

WHEN "011" => S <= (3=>E,OTHERS=>'0');

WHEN "100" => S <= (4=>E,OTHERS=>'0');

WHEN "101" => S <= (5=>E,OTHERS=>'0');

WHEN "110" => S <= (6=>E,OTHERS=>'0');

WHEN OTHERS => S <=(7=>E,OTHERS=>'0');

END CASE;

END PROCESS;

end Behavioral;

Page 23: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 23 /32 TP N°2

-- Exemple 8 :Commande d'un moteur 2 vitesses

-- Machine d'état à sortie combinatoire

-- la grande vitesse passe obligatoirement par la petite vitesse

-- fichier com_mot_2_v.vhd

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Com_Mot_2V is

Port ( Clk : in std_logic; -- MCLK

Rst : in std_logic; -- BTN1

Ma_PV : in std_logic; -- BTN2

MA_GV : in std_logic; -- BTN3

At : in std_logic; -- BTN4

K_PV : out std_logic; -- LED1

K_GV : out std_logic); -- LED2

end Com_Mot_2V;

architecture Behavioral of Com_Mot_2V is

type type_etat is (arret, p_vitesse,g_vitesse);

signal etat: type_etat;

begin

process (clk, rst)

begin

if rst='1' then

etat <= arret;

elsif (clk'event and clk='1') then

case etat is

when arret =>

if Ma_PV='1' then

etat <= p_vitesse;

end if;

when p_vitesse =>

if At = '1' then

etat <= arret;

elsif Ma_GV ='1'then

etat <= g_vitesse;

end if;

when g_vitesse =>

if At='1' then

etat <= arret;

elsif Ma_PV='1'then

etat <= p_vitesse;

end if;

end case;

end if;

end process;

-- assignation des sorties

K_PV <='1'when etat=p_vitesse else '0';

K_GV <='1'when etat=g_vitesse else '0';

end Behavioral;

Page 24: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 24 /32 TP N°2

Exemple 9 : Commande d’un moteur à 2 sens de rotation

Description comportementale par une machine d’états

Le fichier VHDL est obtenu par compilation du diagramme EX_14

Machine d’états Ex_14

-- C:\JOB\XILINX_JOB\EXEMPLE_14\EX_14.vhd

-- VHDL code created by Xilinx's StateCAD 5.03

-- Sun Oct 17 10:53:40 2004

-- This VHDL code (for use with Xilinx XST) was generated using:

-- enumerated state assignment with structured code format.

-- Minimization is enabled, implied else is enabled,

-- and outputs are area optimized.

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY EX_14 IS

PORT (CLK,at,mar,mav,rst: IN std_logic; --MCLK,BTN2,BTN1,BTN3,BTN4

ar,av : OUT std_logic);

END;

ARCHITECTURE BEHAVIOR OF EX_14 IS

TYPE type_sreg IS (Arret,Arriere,Avant);

SIGNAL sreg, next_sreg : type_sreg;

BEGIN

PROCESS (CLK, rst)

BEGIN

IF ( rst='1' ) THEN

sreg <= Arret;

ELSIF CLK='1' AND CLK'event THEN

sreg <= next_sreg;

END IF;

END PROCESS;

PROCESS (sreg,at,mar,mav)

Page 25: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 25 /32 TP N°2

BEGIN

ar <= '0'; av <= '0';

next_sreg<=Arret;

CASE sreg IS

WHEN Arret =>

av<='0';

ar<='0';

IF ( mav='0' AND mar='0' ) OR ( mar='1' AND mav='1'

THEN

next_sreg<=Arret;

END IF;

IF ( mav='1' AND mar='0' ) THEN

next_sreg<=Avant;

END IF;

IF ( mar='1' AND mav='0' ) THEN

next_sreg<=Arriere;

END IF;

WHEN Arriere =>

av<='0';

ar<='1';

IF ( at='1' ) THEN

next_sreg<=Arret;

ELSE

next_sreg<=Arriere;

END IF;

WHEN Avant =>

av<='1';

ar<='0';

IF ( at='1' ) THEN

next_sreg<=Arret;

ELSE

next_sreg<=Avant;

END IF;

WHEN OTHERS =>

END CASE;

END PROCESS;

END BEHAVIOR

Page 26: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 26 /32 TP N°2

T P N°3

I. Objectif

L’objectif de ce module de TP est d’apprendre à utiliser les outils de la suite logicielle

ISE design sofware de la société Xilinx pour configurer des circuits logiques programmables à partir d’une description mixte schématique et VHDL dont le but de définir de nouveaux

composants personnelles.

Pré Requis :

Connaître les fonctions logiques de base.

Initiation de base sur ISE. (TP1 et TP2)

II. Déroulement

2- Lancement de ISE 9.2 et création d’un nouveau composant Dans l’environnement ISE, un ‘projet’ est un regroupement de fichiers en rapport avec un système ou un

design en particulier. Par exemple, dans le cadre d’un cours, on pourrait avoir un projet par laboratoire ou

par devoir.

1. Lancer ISE 9.2 en cliquant deux fois sur l’icône sur le bureau de travail ou en choisissant StartProgramsXilinxISE 9.2iProject Navigator.

2. Choisir File New Project

3. Donner un nom pertinent à votre nom de projet.

ISET GABES GE 3

èmme Année

LEAII51 ENSEIGNANT : M. TAYARI LASSAAD

TP 3 conceptions de systèmes numériques

Création de composants personnalisés avec ISE de Xilinx (V9.2i)

(Création d’une série d’additionneurs complets 2bits, 3bits, 4 bits, 8 bits et 16 bits)

Page 27: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 27 /32 TP N°2

4. choisir Schematic comme Top-Level Source Type.

5. Ensuite cliquer sur Next

6. Vérifier que les paramètres sont identiques à la figure suivante.

Family permet de choisir la famille de FPGA, et Device permet de sélectionner le sous-type (nombre de

portes logiques). Package définit le type de boitier : dans le cas présent, nous utilisons un FPGA Spartan 3

XC3S200 à 256 pattes. Appuyer sur Next.

7. Sélectionner le menu Projectnew Source

8. Sélectionner schematic comme source et entrer le nom du schéma que vous allez créer.

9. Vérifier que l’option Add to project est cochée.

Page 28: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 28 /32 TP N°2

10. Cliquer sur sur Next .

Cliquez sur Finish.

11. Cliquer sur l’onglet sources si nécessaire (partie gauche et en haut de l’écran), puis dans la fenêtre

sources cliquer deux fois sur votre fichier pour ouvrir l’éditeur de schémas.

12. Vous devriez obtenir le schéma final suivant.

13. Selectionner «ToolsSymbol Wizard».

14. Cliquer sur sur Next .

15. Definir le nom du composant ainsi que ses bords( nom :addition1bit ;a,b,r0 :input ;s,r1 :output)

16. Cliquer sur sur Next .

Page 29: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 29 /32 TP N°2

16. Cliquer sur sur Next .

17. Cliquez sur Finish.

Page 30: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 30 /32 TP N°2

18- Dans la fenêtre source onglet « Catgories » sélectionner « addition », puis dans « symbols »

sélectionner le composant « addition1bit »

19. Pointer la sourie sur le composant « addition1bit », en suite avec le bouton droite sélectionner

« symbolpush into symbol »

20. Cliquez sur yes.

Page 31: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 31 /32 TP N°2

21. sélectionner vhdl

le fichier addition1bit.vhd sera générer

22.Dans la zone architecture, donner les équations de l’additionneur :

23. Vérifier que synthesis/implementation est sélectionné dans la liste déroulante de la fenêtre sources.

24. Sélectionner le fichier VHDL addition1bit pour afficher les processus liés dans la fenêtre processes.

25. Cliquer sur le « + » à coté de synthesize-XST.

26. Double-cliquer sur le processus check syntax. Si tout va bien, un crochet vert apparaît. Sinon, consulter

les messages d’erreur dans la console au bas de l’écran.

27. Corriger les erreurs s’il y a lieu, puis fermer le fichier VHDL.

28. Sélectionner le fichier addition.sch (schéma) pour ajouter les marques d’entrée/soritie (I/O marker).

29. vérifier le montage par une simulation.

30. télécharger le montage dans le circuit et vérifier son fonctionnement.

Page 32: ISET DE GABES LAII 5 TP N°1 - labo systèmes …systemesembarques.e-monsite.com/medias/files/... · M TAYARI.L 32 Page 1 / TP N°1 LAII 5 1- Introduction 1.1 Survol ISE Foundation

FPGA ISET GABES

M TAYARI.L Page 32 /32 TP N°2

3- création d’un additionneur 2bits : En utilisant l’additionneur 1bit créé précédemment, un nouveau composant qui permet une

addition sur 2bits. Tester le.

4- création d’un additionneur 3bits : En utilisant l’additionneur 1bit et l’additionneur 2 bits créés précédemment, un nouveau composant

qui permet une addition sur 3bits. Tester le.

5- création d’un additionneur 4bits : En utilisant l’additionneur 2bits créé précédemment, un nouveau composant qui permet une

addition sur 4bits. Tester le.

6- création d’un additionneur 8bits : En utilisant l’additionneur 4bits créé précédemment, un nouveau composant qui permet une

addition sur 8bits. Tester le.

7- création d’un additionneur 16bits : En utilisant l’additionneur 8bits créé précédemment, un nouveau composant qui permet une

addition sur 16bits. Tester le.