Sie sind auf Seite 1von 26

FACULTÉ DE TECHNOLOGIE MASTER 1- Réseaux et Télécommunications

DÉPARTEMENT ATE 2018/2019

UEM 123 VHDL- FPGA

TP N°1

PRISE EN MAIN DE XILINX ISE 14.7

Ce TP est une prise en main des outils de la plateforme de développement Xilinx ISE
14.7. Ce TP présente les étapes suivantes :

- Création d’un projet Xilinx ISE


- Création d’un modèle VHDL
- Création d’un fichier de contraintes
- Synthèse, implémentation et génération de fichier de programmation.
- Implantation sur FPGA

Ce TP permettra de s’initier au développement et l’implantation de circuit en utilisant


VHDL et une carte de développement avec un FPGA (xc3s200FT256).

À propos du logiciel ISE


Ce document propose un survol de l’outil intégré de conception ISE version 14.7 de Xilinx et de la carte de
développement Spartan 3e. Les connaissances acquises à l’aide de ce matériel pédagogique serviront à effectuer les
séances de travaux pratiques prévus dans le cadre du cours.

Lexique

Flow de conception Ensembles étapes et ordre dans lequel les réaliser pour compléter
l’étape de conception du projet.
Instance top level Instance de niveau hiérarchique supérieur dans le projet. C’est
cette instance ou fichier qui regroupe tous les composants de
niveau inférieur du projet.
Langage HDL Langage de description matérielle (hardware description
language)
Langage VHDL VHSIC (Very High Speed Integrated Circuits) hardware
description language.
Module DCM Modules spécialisés dans la gestion d’horloge disponibles dans
le FPGA Spartan 3E.
Module IP Composant qui est disponible sous forme de black box dans le
projet. ISE permet de générer des IP automatiquement grâce à un
Wizard.
Outils EDA Outil de conception assistée par ordinateur (Electronic design
automation).
Design rule check (DRC) Outil qui permet de vérifier la validité d’un schéma ou d’une

1
implémentation à l’aide d’une liste de règles en vigueur.
ISE Project Wizard Boîte de dialogue utilisée dans ISE pour créer et configurer un
nouveau projet.
ISE Source Wizard Boîte de dialogue utilisée dans ISE pour créer et configurer un
nouvel élément du projet.
ISE Architecture Wizard Boîte de dialogue utilisée dans ISE pour configurer les
ressources d’un composant programmable dont des DCM,
mémoire RAM, etc.
CORE Generator Interface permettant de générer de configurer des composants IP.

Survol de Navigateur de Projet ISE


La figure suivante identifie les principaux éléments de l’interface du Navigateur de Projet ISE utilisé dans ce TP.

Flow de conception FPGA


La figure 2 illustre le flow de conception FPGA mis de l’avant dans ce TP à l’aide d’un schéma.

2
Le suffixe HDL est utilisé pour les fichiers de l’approche de conception par langage HDL.

Création d’un nouveau projet dans ISE

Lancer Project Navigator, soit à partir du bureau (repérer l’icône de ISE ). Soit en
sélectionnant à partir du menu windows\Xilinx Design Tools\ISE Design Suite 14.7\ISE Design
Tools\Project Navigator. On obtient alors la fenêtre suivante:

3
1. Créer un nouveau projet :
1. L’assistant de création de nouveau projet :
A. dans le panneau de 'Start', sélectionner 'Create a new project', ou
sélectionner : 'File  new Project Wizard'. Ce la fait apparaitre la fenêtre
qui permet de configurer le répertoire de travail et sélectionner le nom du
projet. Saisir les noms qui figurent dans la figure suivante:

B. L’étape suivante est la sélection du composant cible qui sera utilisé pour
l’implantation du circuit. Les paramètres appropriés pour utiliser la carte
Spartan 3 sont :

4
Après la saisi des paramètres, appuyer sur 'Next', l’assistant affiche un résumé
des spécifications données.

Appuyer sur 'Finish', pour terminer l'assistant. ISE ouvre le projet dans Project
Navigator, dont les différents constituants sont expliqués par la figure suivante:

Explorateur des
modules du design

Espace de travail,
affichage
Panneau des processus :
synthèse, placement &
routage, implémentation…

Console d’exécution, affichage des erreurs …

5
2. l’assistant de création de modèle VHDL :
A. avec le bouton droit, dérouler le menu de création/d'ajout de ressources et
sélectionner 'New Source' .

B. Dans la fenêtre qui s'ouvre, sélectionner 'VHDL Module', saisir le nom du


fichier 'Comparateur' puis appuyer sur 'Next':

6
C. Maintenant, spécifier l'entité du module 'Comparateur' en saisissant les
noms et le type des ports, comme indiqué ci-dessous:

D. Après 'Next', on obtient un résumé des spécifications saisies du module.


Appuyer sur finish pour terminer l'assistant 'New Source'.

7
3. Edition du modèle VHDL :
A. Après la fermeture de l'assistant 'New Source', le Project Navigator affiche
le nouveau fichier crée pour l'édition.

Le fichier généré automatiquement 'Comparateur.vhd' comprend :


- Des commentaires, à adapter selon l'application, et des instructions à dé-
commenter (éliminer ' -- ') au besoin.
- Une entité définissant le circuit Comparateur.
- Une architecture vide à compléter avec la description du circuit.

Des commentaires donnant des


informations sur le module

Des bibliothèques à dé-


commenter en cas de besoin

Définition de l’entité

Définition de l’architecture :
à compléter

8
Modifier le fichier pour obtenir le fichier ci-dessous. L'architecture du circuit est
donnée par affectation simple des sorties avec des équations logiques en fonctions
des entrées. Enregistrer le fichier à la fin.

4. La synthèse :
Dans le panneau 'Processes', double cliquer sur 'Synthesize – XST' pour lancer la
synthèse du circuit. Cette étape consiste à traduire la description en circuit selon
les ressources du FPGA choisi.

Des erreurs éventuelles peuvent être affichées lors de la vérification de la syntaxe


du code suite à des erreurs de saisi, voici un exemple:

9
Il manque le ‘ ;

Si le design ne contient pas d’erreurs, la synthèse s'achève normalement. Pour


afficher le résultat de la synthèse on utilise:
 View RTL Schematic: donne un schéma du circuit indépendamment de
la technologie utilisé (FPGA).
 View Technology Schematic : donne le schéma en fonction des
ressources du FPGA choisi.

Afficher d'abord le schéma RTL, on double cliquant sur View RTL Schematic.
si la fenêtre suivante s'affiche, sélectionner 'start with schematic ….' .

10
On obtient alors le schéma du comparateur suivant:

Afficher et Masquer les détails avec les barres d'outils:

11
Afficher maintenant le schéma du comparateur avec les ressources du FPGA
xc3s200.

Afficher les détails avec les boutons de la barre d'outils comme précédemment.
Double cliquer sur le premier LUT pour afficher la fonction implémentée sous
forme de: logigramme, équation, table de vérité et table Karnaugh

12
5. Le placement & routage :
Le placement consiste à désigner parmi les ressources existantes sur FPGA, les
slices et les pins (broches) d'entrées sorties qui seront utilisées. Le routage
consiste à désigner les segments de connexions pour lier les slices et les ports
choisies lors du placement.

Le Design Summary donne un rapport détaillé sur les caractéristiques de


l'implémentation du circuit.

13
A titre démonstratif, on observe 2 paramètres importants dans toute
implémentation sur FPGA:
- La surface : le pourcentage des ressources utilisées est affiché sous forme
d'un tableau comme indiqué ci-dessous. Le Comparateur utilise 1% des Slices
et 2% des E/S disponibles.
- Le timing: à partir de Static Timing, on peut voir les valeurs des délais réels
de propagations des signaux entre les entrées et sorties du circuit.

14
On peut observer le résultat du placement & routage sous forme d’une
représentation graphique. Pour cela, double cliquer sur la sélection indiquée
par la figure suivante:

On obtient alors la figure suivante (Xilinx FPGA Editor):

15
Utiliser l'outil zoom pour voir de près la zone exploitée:

Les
5
pins
d’E/
S
Les 2
slices
utilisées

Cliquez sur les slices pour afficher les détails des deux slices générant Egal, Sup et
Inf:

La sortie Egal

16
6. L'implantation sur FPGA:
A. Création du fichier de contraintes:
Notre objectif est d'implanter le circuit sur FPGA en utilisant la carte de
développement. Pour tester ce circuit après son implantation, on veut utiliser
deux commutateurs (switchs) pour appliquer les valeurs des entrées A et B,
et des Leds pour visualiser les valeurs des sorties Egal, Sup et Inf.

Les leds

Les switchs

Selon la documentation de la carte, les switchs et les leds sont connectés aux pins
selon les tableaux ci-dessous. On utilisera K13, K14, P11, P12, N12 pour les ports A,
B, Egal, Sup et Inf respectivement.

17
Les pins déjà assignées par le synthétiseur lors du placement & routage
sont C8, D8, B8, A7 et A8. Pour modifier ces pins on utilise l'outil
PlanAhead:

Dans la fenêtre qui s'ouvre, affecter les pins choisis aux différents ports.
Enregistrer et quitter PlanAhead.

L’assignation des nouvelles pins, génère un fichier .ucf (user contraints


file) qui décrit les contraintes qu’on a imposé :

18
Ce fichier peut être créé au début, après la création du modèle VHDL,
et sans passer par PlanAhead en utilisant l’assistant New
SourceImplementation Constraints File.

Après ces modifications, relancer la synthèse et le placement &


routage, utiliser directement le bouton suivant :

B. Génération du fichier de programmation:


Ce fichier (d’extension) .bit est le fichier à transférer dans la mémoire du
FPGA (programmation) pour implanter le Comparateur. Configurer
d’abord la liaison entre la carte et le PC (câble JTAG) de la manière
suivante :

19
Maintenant, générer le fichier de programmation :

C. Programmation du FPGA :
Connecter la carte au port parallèle du PC, et lancer l’outil de
programmation iMPACT :

20
On obtient la fenêtre de dialogue ci-dessous, cliquez OK.

On obtient :

21
Lancer la configurer la chaine de programmation :

Initialiser la chaine de programmation :

22
La chaine composée du FPGA (xc3s200) et une mémoire PROM (xcf102s)
est alors affichée. Dans la boite de dialogue demandant de continuer avec
l’assignation du fichier de programmation, cliquer sur ‘No’

Cliquer OK pour fermer la fenêtre des propriétés qui s’affiche :

23
Assigner le fichier de programmation Comparateur.bit:

Sélectionner le fichier Comparateur.bit :

24
Lancer la programmation du FPGA :

On obtient alors une barre indiquant la progression de la programmation:

Après une programmation réussie, on obtient la fenêtre ci-dessous. La


programmation réussie est indiquée aussi par une led sur la carte.

25
Procéder maintenant à la vérification du circuit en changeant les switchs
et en observant les leds des sorties.

26