Vous êtes sur la page 1sur 17

Informatique Industrielle 2

ME27

UNIVERSITE MENTOURI DE CONSTANTINE


FACULTE DES SCIENCES DE LINGENIEUR
DEPARTEMENT DELECTROTECHNIQUE
Master en lectrotechnique (M1) 2013-2014

TP01

I. Objectif du TP :
1. Installation du Logiciel Xilinx ISE9.2 ;
2. Cration du premier projet sous ISE9.2 ;
3. Dfinition du couple Entit/Architecture.
II. Le logiciel Xilinx ISE9.2 :
Le logiciel ISE9.2 est un environnement intgr (de la compagnie Xilinx) de dveloppement de
systmes numriques sur des composants reconfigurables ayant pour but une implmentation
matrielle sur FPGA. ISE est disponible sur le site www.xilinx.com sous plusieurs versions (, 8.1,
9.2, 10.1, 12.2, 12.3 ). Dans ISE, Les designs peuvent tre dcrits sous trois formes principales
:
Schmas ;
Langage de description matrielle (HDL) comme VHDL, Verilog, ABEL, etc. ;
Diagrammes dtats.
ISE intgre des diffrents outils permettant de passer travers tout le flot de conception dun
systme numrique savoir :
Un diteur de textes, de schmas et de diagrammes dtat ;
Un compilateur VHDL/Verilog ;
Un outil de simulation ;
Des outils pour la gestion des contraintes spatiales et temporelles ;
Des outils pour la synthse ;
Des outils pour la vrification ;
Des outils pour limplantation sur FPGA.
III. Lancement de ISE9.2 et cration dun projet :
Dans lenvironnement ISE, un projet est un regroupement de fichiers en rapport avec un systme
ou un design en particulier. Par exemple, dans le cadre dun cours, on pourrait avoir un projet par
laboratoire ou par devoir. Avant de commencer avec ISE, crez un rpertoire dans un endroit o
vous rangez vos data et appelez-le, par exemple TP_VHDL.
1. Lancer ISE 9.2 en cliquant deux fois sur licne le bureau ou bien en choisissant :
Dmarrer tous les Programmes XilinxISE9.2 Project Navigator.

2. La deuxime tape consiste crer un nouveau projet dans ISE (File New Project) toute en
choisissant le nom et lemplacement et le nom de projet (TP_01 par exemple). A cette tape,
vous pouvez faire le choix entre un design et une implmentation en HDL. Dans notre cas
slectionner HDL comme Top-Level Source Type. Cliquez sur Next.
1
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

3. Vrifier que les paramtres sont identiques la figure suivante. Ces paramtres reprsentent
les caractristiques du circuit FPGA (LX110T) disponible dans la plateforme XUPV5 (voir
Annexe). Vrifier que Enable Enchanced Design Sammary est bien slectionn. Cliquez
sur Next.

4. Appuyer sur Next deux autres fois pour les deux autres fentres et ensuite sur Finish.

III.1. Cration dun fichier VHDL dans le projet


Slectionner le menu Project New Source ;
Slectionner VHDL Module ;
Donner un nom ce fichier, puis veiller ce que licne Add to Project soit coch ;

2
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

Cliquer sur Next ;


Dans la nouvelle boite de dialogue, on dclare les ports dentres/sorties de mon design pour
la cration automatique de quelques lignes de mon programme. Si non cliquer sur Next et
ensuite sur Finish.

Cliquer sur le nom de fichier (TP01_1.vhd) pour ouvrir un diteur de texte et crire votre
code VHDL. Taper le code VHDL suivant :
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entityTP01_Ais
port(
A,B:INstd_logic;
C,D:outstd_logic
);
endTP01_A;
architectureBehavioralofTP01_Ais
begin
C<=AandB;
D<=AorB;
endBehavioral;

III.2. Vrification des erreurs dans un fichier VHDL


Dans la fentre Processes, slectionner le menu Synthesize XST, ensuite slectionner Check
syntaxe. Les erreurs et les remarques seront affiches sur fentre Console. Dans notre cas, il n y a
pas des erreurs normalement.

3
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

IV. Simulation
Lenvironnement de simulation de notre conception devra assurer la gnration des stimuli et
laffichage des rsultats, ce qui se fera de manire procdurale. Ces lments peuvent tre hbergs
dans un module de test (test-bench). Ce module est un programme VHDL, avec ni entre ni sortie,
dans lequel le programme principal est appel comme component. Dans le test-bench est ajoute
aussi une partie pour la gestion des entres/sorties du programme principale. Cette mthode est
ncessaire pour des programmes avec des entres/sorties importantes et de diffrentes natures.
Une autre mthode est aussi applicable pour des programmes VHDL simple. Cette mthode consiste
crer un fichier graphique waveforme sur le quel nous pouvons varier les entres et observer
les rsultats des sorties aprs lopration de simulation. Pour cela, nous suivrons les tapes ci-aprs :
Slectionner le fichier TP01_A dans la fentre Sources ;
Crer un nouveau fichier source (test-bench) par la slection de Project New Source ;
Dans la fentre New Source Wizard slectionner Test Bench WaveForm dans
licne source type et taper le non de fichier test-bench (TP01_A_tbw). Tbw pour dire
que cest un test bench waveform ;

Appuyer sur Next deux fois ensuite sur Finish. Observer les fentres dinformation
chaque fois qui indiquent lassociation du test-bench avec le programme principal.
Dans la fentre qui suit, il faut indiquer les dlais comme montr sur la figure suivante :

Cliquer sur Finish pour complter linitialisation de la simulation. La figure suivante est
affiche :
4
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

Enregistrer le waveform ;
Dans fentre (Sources), slectionner (Behavioral Simulation). Vrifier que le
TestBenchWaveform est automatiquement ajout votre projet ;

Slectionner TP10_A_tbw dans la fentre (Behavioral Simulation). Dans la fentre


(Processes), un double click sur (Simulate Behavioral Model). Le simulateur (ISE
simulator) va simuler le code VHDL et ouvrir une nouvelle fentre de simulation.
Question 1 : Expliquer les rsultats de simulation. Vrifier le bon fonctionnement du compteur.
Remarque : Il est possible dutiliser un autre simulateur avec ISE mme sil nest pas de la mme
compagnie Xilinx. Pour des applications qui demandent plus doption et de temps de simulation, il
est prfrable dutiliser ModelSim de MenterGraphics.
V. Synthse des programmes VHDL :
Lobjectif de cette partie est synthtiser et implmenter le programme VHDL pour un FPGA donns
(Virtex5 LX110T). Double cliquer sur Syntesize-XST dans la fentre Processes pour valider et
voir sil y a des erreurs dans le programme. Il faut corriger toute erreur trouve dans vos fichiers
source. Si vous continuez sans que la syntaxe soit valide, vous ne serez pas en mesure de simuler ou
de synthtiser votre conception.
Si cette tape de synthse passe sans erreurs, vous obtenez en bas de fentre le message suivant
Process "Synthesize - XST" completed successfully .
Question 2 : Explique les rsultats obtenus dans la fentre design sammary (synthesized) et la
fentre console.

A cette tape, vous pouvez afficher le schma RTL (affichage graphique du programme
VHDL) avec double click sur view RTL schematic de licne Synthesize XST .
5
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

Question 3 : Expliquer les figures affiches.


Annexe TP01 : La plateforme de prototypage XUPV5 de Xilinx
XUPV5 est une plateforme de dveloppement des SoCs, de la 5 eme gnration (Virtex5), pour de
multiples utilisations. Les caractristiques de cette carte assurent une solution parfaite pour
limplantation des applications sur FPGA surtout pour les applications qui ont besoin de ressources
mmoire gnreuse tendue et qui ont besoin aussi de plus de flexibilit et defficacit.
Le cur de la plateforme XUPV5 est le circuit FPGA Virtex5-XC5VLX110T-3FFG1136. Cest lun
des nouveaux produits de la compagnie Xilinx. En plus des caractristiques hautes performances
assures par Xilinx dans des versions prcdentes, les nouveaux circuits Virtex5 contiennent
plusieurs blocs IP : des blocs mmoire RAM de 36 Kbit, des FIFO, des DSP, interfaces DCM,
gnrateurs dhorloge, etc. La famille Virtex5LX est utilise gnralement pour des applications
hautes performances. La figure suivante montre les dtails des cartes de prototypage Virtex5 suivant
le nom de circuit FPGA associ :

XC5VLX110T 3 FF G 1136
Type du circuit
Vitesse
(-1, -2, -3)

Type de package

Nombre des Pins


Pb-Free

La carte Xilinx XUPV5 contient le matriel suivant :


Circuit FPGA de type Xilinx Virtex5- XC5VLX110T-3FFG1136 ;
256 MB DDR2-SDRAM-SODIMM, 1 MB ZBT SRAM, 32 MB linear flash (External
Memory Controller EMC), System ACE CF (Compact Flash).
JTAG programming interface
External clocking (two differential pairs)
2x USB - host and peripheral , 2x PS/2 keyboard, mouse , RJ-45 - 10/100 networking,
RS-232 serial port, UART, Timer, GPIO, IIC, PLB v46 Bus

Ce circuit a lavantage de supporter plusieurs modes de configuration : JTAG, Master Serial, Slave
Serial, Master SelectMAP, Slave SelectMAP, Byte-wide Peripheral Interface (BPI) Up, BPI Down,
6
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

and SPI modes. Le tableau suivant montre les diffrentes caractristiques du circuit FPGA. Pour
plus dinformations sur cette carte, consulter le site officiel de Xilinx (www.xilinx.com).

UNIVERSITE MENTOURI DE CONSTANTINE


FACULTE DES SCIENCES DE LINGENIEUR
DEPARTEMENT DELECTROTECHNIQUE
Master en lectrotechnique (M1) 2013-2014

TP02

I.

Objectif du TP :
1. Dfinition du couple Entit/Architecture.
2. Les notions de base dun programme VHDL.
3. Dclaration des bibliothques.
II. Partie pratique
A. Soit le code VHDL suivant :
Library ieee ;
Use ieee.std_logic_1164.all ;
Entity porteslogique is
Port (A, B : IN std_logic ;
Y1,Y2,Y3,Y4,Y5,Y6,Y7 : OUT std_logic) ;
End porteslogique ;
Archtecture arch_portes of porteslogique is
Begin
Y1<=A and B ;
Y2<=A or B ;
Y3<=A xor B ;
Y4<= not B ;
Y5<=A nor B ;
Y6<=not(A xor B) ;
Y7<=not A ;
End arch_portes ;
1. Donner les noms des bibliothques utilises, et les noms des paquets utiliss ?
2. Quels sont les noms de lentit et larchitecture utiliss ?
3. Reprsenter le schma fonctionnel de la fonction, on placera les entres gauches et les sorties
droite ?
4. Reprsenter le schma structurel du circuit ?
5. Saisissez ce code VHDL, sous ISE9.2 ? Corriger sil ya des erreurs ? lancer la simulation et la
synthse du circuit ?
6. Visualiser les signaux dentres /sorties sur un fichier waveform ?
7. Expliquer la notion des instructions concurrentes ?

B. Les mmes questions pour le programme VHDL suivant :


library ieee;
use ieee.std-logic-1164.all;
use ieee.std-logic-arith.all;
entity tp2 is
port( a,b: in integer ;
S1,s2: out integer;
7
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

);
architecture tp2a of fct is
begin
s1<=a-b;
S2<=a+b;
end ;
UNIVERSITE MENTOURI DE CONSTANTINE
FACULTE DES SCIENCES DE LINGENIEUR
DEPARTEMENT DELECTROTECHNIQUE
Master en lectrotechnique (M1) 2013-2014

TP03

I.

Objectif du TP :
1. Utilisation du process et if-then-else ;
2. Utilisation de la notion du signal ;
3. Utilisation du Component.
II. Partie pratique :
A. Soit le code VHDL suivant :
library ieee;
use ieee.std_logic_1164.all;
entity tp4c is
port ( hor,e : in bit;
s:out bit);
end tp4c;
architecture arch of tp4c is
signal qa,qb:bit;
begin
s<=qa or qb;
P1 : process (hor)
begin
if hor='1' and hor'event then -- le front montant de lhorloge
qa<=e;
qb<=qa;
end if ;
end process P1;
end arch;
1. Saisir et Compiler ce code?
2. Quelle est la liste de sensibilit du process p1 ?
3. Aprs avoir cr un fichier waveform, et choisi un temps de simulation, faite entrer les
valeurs suivantes pour lentre : e=0 , 1 after 4ns ; 0 after 6ns ; 1 after 11ns ; 0 after 13ns .
Compiler et Visualiser vos chronogrammes? (afficher aussi les signaux utiliss)
Expliquer le chronogramme trouv? Commenter lutilisation des signaux?
B. Soit le programme VHDL suivant :
library ieee;
use ieee.std_logic_1164.all;
entity inconnue is
port( E, clk:in std_logic;
x,y,z: out std_logic);
end inconnue;
architecture inconnue_fct of inconnue is
8
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

signal s :std_logic_vector(1 to 3);


begin
P1: process(ck)
begin
if rising_edge(clk) then
s(1)<=E;
s(2)<=s(1);
s(3)<=s(2);
end if;
end process;
x<=s(1);
y<=s(2);
z<=s(3);
end inconnue_fct;
1. Saisir et Compiler ce code?
2. Quelle est la liste de sensibilit du process p1 ?
3. Aprs avoir cr un fichier waveform, et choisi un temps de simulation gal 20us, avec un
pas de visualisation (prcision) gal 1us, faite entrer les valeurs suivantes pour les entres :
Clk commence par 0.
E =2*clk
Compiler et Visualiser vos chronogrammes?
Commenter vos rsultats? Quelle est la fonction ralise par ce code ?
Donner le circuit logique de ce programme ?
C. Ecrire le programme VHDL du circuit suivant utiliser la notion du component ?

B
Cin

Decodeur

0
1
2
3
4
5
6
7

M
U
X

Cou
t

9
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

UNIVERSITE MENTOURI DE CONSTANTINE


FACULTE DES SCIENCES DE LINGENIEUR
DEPARTEMENT DELECTROTECHNIQUE
Master en lectrotechnique (M1) 2013-2014

TP04

I. Objectif du TP :
Lobjectif de ce TP est de passer de la simulation la synthse et limplmentation physique des
programmes VHDL sur des cartes de prototypages FPGA, savoir la carte Virtex5 XUPV5
(LX110T) de la compagnie Xilinx.
II. Partie pratique 1 :
Lobjectif de cette premire partie est dnumrer et de dcrire les tapes simples pour :
Crer un projet dans ISE 9.2 ;
Dcrire un circuit numrique laide dune description VHDL et lintgrer au projet ;
Simuler le circuit numrique en lui appliquant des signaux dentre dsirs et en observant
les sorties ;
Synthtiser et implmenter le circuit pour un FPGA donns (Virtex5 LX110T).
Lancement de ISE9.2 et cration dun projet :
5. Lancer ISE 9.2 et crer un nouveau projet ;
6. Ajouter un nouveau fichier ;
7. Cliquer sur le nom de fichier pour ouvrir un diteur de texte et crire le code VHDL
suivant :
signalcount_int:std_logic_vector(3downto0):="0000";
begin
process(CLOCK)
begin
ifCLOCK='1'andCLOCK'eventthen
if(CLR='1')then
count_int<="0000";
else
ifDIRECTION='1'then
count_int<=count_int+1;
else
count_int<=count_int1;
endif;
endif;
endif;
endprocess;
COUNT_OUT<=count_int;
endBehavioral;

Vous pouvez rcuprer ce code VHDL partir de Language Templates de ISE. Cliquer
sur Edit Language Templates. Ensuite utiliser le symbole + pour ouvrir la fentre du
code exemple (VHDL Synthesis Constructs Coding Examples Counters
Binary Up/Down Counters Simple Counter).

10
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

Question 1 : Complter le programme VHDL (lentity et les librairies) en indiquant les


entres/sortie.
8. Ensuite cliquer sur FileSave pour enregistrer ce fichier.
9. Double cliquer sur Syntesize-XST dans la fentre Processes pour valider et voir sil y a
des erreurs dans le programme. Il faut corriger toute erreur trouve dans vos fichiers source.
Si vous continuez sans que la syntaxe soit valide, vous ne serez pas en mesure de simuler ou
de synthtiser votre conception.
10. Si cette tape de synthse passe sans erreurs, vous obtenez en bas de fentre le message
suivant Process "Synthesize - XST" completed successfully .
Question 2 : Explique les rsultats obtenus dans la fentre design sammary (synthesized) et la
fentre console.

A cette tape, vous pouvez afficher le schma RTL (affichage graphique du programme
VHDL) avec double click sur view RTL schematic de licne Synthesize XST .

Question 3 : Expliquer les figures affiches.


Simulation
Slectionner le fichier VHDL dans la fentre Sources ;
Crer un nouveau fichier source (test-bench) par la slection de Project New Source ;
Dans la fentre New Source Wizard slectionner Test Bench WaveForm dans
licne source type et taper le non de fichier test-bench (TP10_A2_tbw). Tbw pour dire
que cest un test bench waveform ;

11
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

Appuyer sur Next deux fois ensuite sur Finish. Observer les fentres dinformation
chaque fois qui indiquent lassociation du test-bench avec le programme principal.
Dans la fentre qui suit, il faut indiquer la frquence dhorloge, les dlais de sorties, et.
Comme montr sur la figure suivante :

Cliquer sur Finish pour complter linitialisation de la simulation. La figure suivante est
affiche :

Enregistrer le waveform ;
Dans fentre (Sources), slectionner (Behavioral Simulation). Vrifier que le
TestBenchWaveform est automatiquement ajout votre projet ;

Slectionner TP10_A_tbw dans la fentre (Behavioral Simulation). Dans le fentre


(Processes), un double click sur (Simulate Behavioral Model). Le simulateur (ISE
simulator) va simuler le code VHDL et ouvrir la fentre suivante :

12
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

Question 5 : Expliquer les rsultats de simulation. Vrifier le bon fonctionnement du compteur.


Remarque : Il est possible dutiliser un autre simulateur avec ISE mme sil nest pas de la mme
compagnie Xilinx. Pour des applications qui demandent plus doption et de temps de simulation, il
est prfrable dutiliser ModelSim de MenterGraphics.
III.
Partie pratique 2 :
En plus des tapes de la premire partie (A), lobjectif de cette deuxime partie consiste
programmer le circuit FPGA de la carte de prototypage choisie (XUPV5). Cest un passage de la
simulation des programmes VHDL limplmentation matrielle (implmentation physique sur
FPGA). Dans cette partie nous pouvons vrifier la bonne excution (physique ou matrielle) de nos
programmes VHDL en utilisant les accessoires disponibles sur la carte XUPV5 (LEDs, Boutons
poussoirs, afficheur, ).
Pour limplmentation physique sur FPGA, ISE (les outils annexes de ISE) utilise un cble JTAG
(srie RS232 ou bien USB) pour assurer la liaison entre le PC et la carte de prototypage. Nous
allons utiliser le programme compteur afin dobserver le comportement des LED disponibles dans
la carte. Les dtails suivants reprsentent les tapes ncessaires limplmentation matrielle du
projet compteur. Les adresses des Pins, associs aux LEDs et aux boutons poussoirs, sont prises de
la documentation UG347 (ML505/ML506 Evaluation Platform User Guide) tlcharg partir du
site officiel de XILINX. Note : la plateforme XUPV5 (University Program Platform) dispose des
mmes composants que la plateforme ML505, la seule diffrence est dans circuit FPGA (LX110T
au lieu de LX50T).
Contrainte temporaire
Lhorloge intgre dans notre FPGA opre une frquence de 100Mhz. Cela signifie que lorsquon
va tester notre compteur dans le FPGA, on ne verra pas lil nu les LED clignotes. Pour parer
cela on a song incorpor un sous-programme diviseur de frquence qui a pour fonction de rduire
la frquence du signal de sortie pour visualiser le changement dtat de LEDs. Voir ci-dessous le
procs diviseur-frquence ajoutes au projet :
process(CLOCK)
begin
ifCLOCK='1'andCLOCK'eventthen
if(CLR='1')then

parametre<=(others=>'0');
else
parametre<=parametre+1;
ifparametre=33554431then335544321
NEW_CLOCK<=notNEW_CLOCK;
endif;
endif;
endif;
endprocess;

13
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

Question 6 : Complter le programme VHDL et corriger la partie dj raliser en ajoutant aussi les
signaux ncessaires. Expliquer le fonctionnement de la nouvelle partie.
Question 7 : Donner la nouvelle frquence de fonctionnement.
Question 8 : Lancer lopration de synthse nouveau et expliquer les rsultats.
Attribution et emplacement des broches (pins)
Dans cette tape, nous allons spcifier les endroits des broches pour les ports dE/S de la conception
afin qu'ils soient correctement branchs sur le kit virtex5-XUPV5. Ceci ne se fait pas au hasard, il
faut consulter le fichier .pdf user guide UXPV5 Evaluation Platform (UG347) concernant la virtex5
(Annexe). Cependant nous pouvons simplement ici forcer le logiciel utiliser un fichier de
contraintes (User Constraints File .ucf) dans lequel seront forcs le placement des entres et des
sorties de notre design. Comme on peut le voir sur limage suivante.

Pour raliser cette affectation des pins sur l'ensemble des broches, on procde comme suit :
Double cliquer Assign Package Pins dans la fentre Processes ;
Slectionner Package View ;
Dans la fentre de conception qui saffiche, entrez un emplacement broches pour chaque
broche dans la ligne de la colonne en utilisant les informations suivantes :
1. clock input port de connexion FPGA pin AH15 ;
2. counter_out <0> output port de connexion FPGA pin H18 ;
3. counter_out <1> output port de connexion FPGA pin L18 ;
4. counter_out <2> output port de connexion FPGA pin G15 ;
5. counter_out <3> output port de connexion FPGA pin AD26 ;
6. enable input port de connexion FPGA pin V8 ;
7. reset input port de connexion FPGA pin U8.
Cliquer File Save. Ainsi le fichier de contrainte UCF a t modifi.
Chargement du Design dans notre FPGA
Cest la dernire phase de conception et de vrification concrte de notre design. Cette section
fournit toutes les informations et instructions conues au paravent notre FPGA.
Alimenter le FPGA la prise du secteur via son adaptateur 5V DC ;
Connecter le FPGA au PC via le cble JTAG (USB), puis le mettre en marche ;
Slectionner Synthesis/Implementation de la fentre Sources ;
Dans la fentre Processes, cliquer + Generate Programming File ;
Double cliquer Configure Device (iMPACT), puis cliquer Decline si une nouvelle boite de
dialogue apparat ;
Slectionner Disable the collection of device usage statistics for this project only et cliquer
OK. iMPACT souvre comme suit:

14
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

Cliquer Finish ;
Une boite de dialogue du nom de Assign New Configuration File apparat ;
Dans cette dernire, slectionner Bypass jusqu lapparition du fichier counter.bit (fichier
en question charger dans notre FPGA). Slectionner le et appuyer sur OK ;

Clique droit sur la petite boite verte en image, et slectionner Programainsi une boite de
dialogue Programming Properties souvre ;

Cliquer OK ;
Quand la programmation est complte, le message Program succeeded saffiche.

Enfin nous verrons les LEDs 0, 1, 2, 3 de notre FPGA clignoter, cela signifie que notre
compteur est en train de tourner.
15
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

Question 9 : Excuter ces tapes et expliquer les rsultats dimplmentation matrielle du


programme VHDL sur FPGA.

Annexe

16
K. Messaoudi 2013/2014

Informatique Industrielle 2
ME27

17
K. Messaoudi 2013/2014