annexe 2 : programmation d un fpga...

8
TP VHDL 15 Annexe 2 : Programmation dun FPGA Xilinx Objectifs: Les buts de ce TP sont: Se familiariser avec l’ISE 7.1. Décrire un circuit numérique l'aide d'une description VHDL et l'intégrer au projet; Synthétiser et implémenter le circuit pour un FPGA; Programmer un FPGA I. LISE 7.1 ISE 7.1 est un environnement intégré de développement de systèmes numériques. Il permet limplémentation matérielle sur un FPGA de la famille 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. II. Lancement de ISE 7.1 et création d'un projet : Dans l'environnement ISE, un projetest un regroupement de fichiers en rapport avec un système ou un design particulier. 1. Lancer ISE 7.1 en cliquant deux fois sur l'icône sur le bureau de travail ou en choisissant Start Programs Electriques - XilinxISE 7.1 Project Navigator. 2. Choisir File New Project 3. Donner le nom de votre projet. Puis cliquer sur next. 4. choisir HDL comme Top_Level Source Type puis cliquer sur next 5. Vérifier que les paramètres sont identiques à la figure ci-contre. 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 et à une horloge d’une fréquence de 50 MHz. Appuyer sur Next. Puis appuyer sur Next deux autres fois pour les deux autres fenêtres et sur Finish. I.DEBBABI, W.LABIEDH & N. ALIMI ESTI

Upload: duongnhu

Post on 15-Sep-2018

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Annexe 2 : Programmation d un FPGA Xilinxna-elec.weebly.com/uploads/3/7/3/4/37344177/tutorial_ise_xilinx_7... · TP VHDL 17 7. Dans la description de l'architecture, donnée en exemple,

TP VHDL

15

Annexe 2 : Programmation d’un FPGA Xilinx

Objectifs:

Les buts de ce TP sont:

Se familiariser avec l’ISE 7.1.

Décrire un circuit numérique l'aide d'une description VHDL et l'intégrer au projet;

Synthétiser et implémenter le circuit pour un FPGA;

Programmer un FPGA

I. L’ISE 7.1 ISE 7.1 est un environnement intégré de développement de systèmes numériques. Il permet

l‘implémentation matérielle sur un FPGA de la famille 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.

II. Lancement de ISE 7.1 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 particulier.

1. Lancer ISE 7.1 en cliquant deux fois sur l'icône sur le bureau de travail ou en choisissant Start

—Programs –Electriques - XilinxISE 7.1 Project Navigator.

2. Choisir File à New Project

3. Donner le nom de votre projet. Puis cliquer sur next.

4. choisir HDL comme Top_Level Source Type puis cliquer sur next

5. Vérifier que les paramètres sont identiques à la figure ci-contre.

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 et à une horloge d’une fréquence de 50 MHz.

Appuyer sur Next. Puis appuyer sur Next deux autres fois pour les deux autres fenêtres et sur Finish.

I.DEBBABI, W.LABIEDH & N. ALIMI

ESTI

Page 2: Annexe 2 : Programmation d un FPGA Xilinxna-elec.weebly.com/uploads/3/7/3/4/37344177/tutorial_ise_xilinx_7... · TP VHDL 17 7. Dans la description de l'architecture, donnée en exemple,

TP VHDL

16

III. Description d'un circuit numérique

On désire implémenter un demi-additionneur ayant deux entrées A et B chacune sur un bit et une

deux sorties S (la somme) et R (la retenue) chacune sur un bit. 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. Il faut suivre les instructions suivantes:

1. Sélectionner le menu Project — new Source.

2. Sélectionner VHDL Module 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 Next

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

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

l'entité et de l'architecture.

I.DEBBABI, W.LABIEDH & N. ALIMI

Remarque : Si votre circuit est déjà décrit et simulé, ajouter les fichiers sources (Add Existing Sources), cliquer sur Next, puis sur Finish et passer directement à l'étape 11.

ESTI

Page 3: Annexe 2 : Programmation d un FPGA Xilinxna-elec.weebly.com/uploads/3/7/3/4/37344177/tutorial_ise_xilinx_7... · TP VHDL 17 7. Dans la description de l'architecture, donnée en exemple,

TP VHDL

I.DEBBABI, W.LABIEDH & N. ALIMI

ESTI

Page 4: Annexe 2 : Programmation d un FPGA Xilinxna-elec.weebly.com/uploads/3/7/3/4/37344177/tutorial_ise_xilinx_7... · TP VHDL 17 7. Dans la description de l'architecture, donnée en exemple,

TP VHDL

17

7. Dans la description de l'architecture, donnée en exemple, insérer les équations du demi-

additionneur.

8. Une fois le fichier VHDL édité, il faut de vérifier la syntaxe du design afin de trouver des

erreurs de syntaxe :

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

sources.

10. Sélectionner le fichier VHDL VHDL_didacticiel pour afficher les processus liés dans la

fenêtre processes.

11. Cliquer sur le « + » à côté de synthesize-XST.

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

13. Corriger les erreurs s'il y a lieu, puis fermer le fichier VHDL.

IV. Synthèse et implémentation du design

IV.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:

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

blocs spécifiques du FPGA;

2. 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;

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

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

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

I.DEBBABI, W.LABIEDH & N. ALIMI

ESTI

Page 5: Annexe 2 : Programmation d un FPGA Xilinxna-elec.weebly.com/uploads/3/7/3/4/37344177/tutorial_ise_xilinx_7... · TP VHDL 17 7. Dans la description de l'architecture, donnée en exemple,

TP VHDL

I.DEBBABI, W.LABIEDH & N. ALIMI

IV.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 A (SW1) et B (SW2) et les ports des sortie sont Retenue (LED 1) et Somme (LED 0).L'assignation des ports se fait par l'entremise d'un fichier de contraintes avec l'extension « .ucf » (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.

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 A,

G12 pour B, P14 pour retenue, K12 pour somme). Cela a pour effet de connecter les entrées

aux commutateurs SW0 et SW1 et les sorties aux LEDs LD1 et LD0.

ESTI

Page 6: Annexe 2 : Programmation d un FPGA Xilinxna-elec.weebly.com/uploads/3/7/3/4/37344177/tutorial_ise_xilinx_7... · TP VHDL 17 7. Dans la description de l'architecture, donnée en exemple,

TP VHDL

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

I.DEBBABI, W.LABIEDH & N. ALIMI

ESTI

Page 7: Annexe 2 : Programmation d un FPGA Xilinxna-elec.weebly.com/uploads/3/7/3/4/37344177/tutorial_ise_xilinx_7... · TP VHDL 17 7. Dans la description de l'architecture, donnée en exemple,

TP VHDL

I.DEBBABI, W.LABIEDH & N. ALIMI 18

IV.3. Programmation du FPGA et tests

2. Double-cliquer sur Configure Device (IMPACT). Cliquer sur Cancel si vous obtenez unmessage d'avertissement.

3. Sélectionner Configure Devices using Boundary-Scan

(JTAG).

4. Cliquer sur Finish.

1. La programmation du FPGA se fait par un câble Parallèle-JTAG. A noter qu’il faut faireattention lors du branchement du connecteur noir du câble à la carte pour que les noms dessignaux marqués sur le connecteur correspondent à ceux marqués sur le circuit imprimé.Un mauvais branchement du connecteur risque d’endommager la carte !

TM

ST

DI

TD

OT

CK

GN

DV

DD

2.8V

UP

TO

5V

J7

23

21 20

22

TM

ST

DI

TD

OT

CK

GN

DV

CC

ESTI

Page 8: Annexe 2 : Programmation d un FPGA Xilinxna-elec.weebly.com/uploads/3/7/3/4/37344177/tutorial_ise_xilinx_7... · TP VHDL 17 7. Dans la description de l'architecture, donnée en exemple,

TP VHDL

I.DEBBABI, W.LABIEDH & N. ALIMI 19

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.

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.

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

9. Cliquer sur Ok dans la fenêtre Programming

Properties.

5. Sélectionner le fichier de programmation créé "nomprojet.bit".

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 carte. Cliquer sur Bypass.

ESTI