View
219
Download
1
Category
Preview:
Citation preview
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
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
TP VHDL
I.DEBBABI, W.LABIEDH & N. ALIMI
ESTI
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
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
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
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
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
Recommended