Vous êtes sur la page 1sur 33

Guide des outils de conception Page 1 Eduardo Sanchez

Guide dutilisation
des outils de conception
VHDL - FPGA





Eduardo Sanchez
EPFL - LSL
2003
Guide des outils de conception Page 2 Eduardo Sanchez
Exemple de programme VHDL:
Une ALU 8 bits


Cest une ALU trs simple, avec seulement deux oprations possibles, choisies
laide de la variable de contrle OPALU:

OPALU
opration
0 A + B
1 A - B

Les deux entres (ENTREEA et ENTREEB) ainsi que le rsultat (RESULTAT)
sont des variables 8 bits.

Lopration de soustraction produit un flag qui est charg dans un registre si
la variable de contrle LDFLAG est active.


















ENTREEA ENTREEB
RESULTAT
CLK
INALU
OPALU
LDFLAG
FLAG
RESET
ALU
0
INALU
LDFLAG
FLAG
OPALU
CLK
ENTREEA
ENTREEB
0 1
RESULTAT
RESET VRAIB
ZERO
Guide des outils de conception Page 3 Eduardo Sanchez
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity alu is
port (clk : in std_logic;
reset,
inalu,
opalu,
ldflag : in std_logic;
flag : out std_logic;
entreea,
entreeb : in std_logic_vector(7 downto 0);
resultat : out std_logic_vector(7 downto 0));
end alu;

architecture synt of alu is
signal vraib : std_logic_vector(7 downto 0);
signal zero : std_logic;
begin

process (entreeb, inalu)
begin
if inalu='0'
then vraib <= entreeb;
else vraib <= (others => '0');
end if;
end process;

process (opalu, entreea, vraib)
variable bidon : std_logic_vector(7 downto 0);
begin
zero <= '0';
if opalu='0'
then resultat <= entreea + vraib;
else
bidon := entreea - vraib;
resultat <= bidon;
if (bidon = "00000000")
then zero <= '1';
end if;
end if;
end process;

process (clk, reset)
begin
if reset='0'
then flag <= '0';
else if (clk'event and clk='1')
then if ldflag='1'
then flag <= zero;
end if;
end if;
end if;
end process;
end synt;
Guide des outils de conception Page 4 Eduardo Sanchez
Simulation VHDL avec ModelSim
(avant placement - routage du circuit FPGA)

O Dmarrer lapplication ModelSim:

St ar t Pr ogr ams Model Si mSE 5. 7d Model Si m

Deux fentres saffichent:

la fentre de contrle, tableau de bord de la application, et

une fentre de bienvenue.

(Si cette dernire fentre napparat pas, vous pouvez lappeler depuis le
menu Hel p Wel come Menu).



Le bouton J umpst ar t de la fentre de bienvenu permet laffichage
dune nouvelle fentre qui facilite le choix de la premire commande
excuter (en gnral, crer un nouveau projet ou ouvrir un ancien
projet).

Guide des outils de conception Page 5 Eduardo Sanchez


O Crer un projet, en indiquant son emplacement et son nom:



Lemplacement du projet est un dossier (directory) cr lavance par
vos soins. Les fichiers VHDL compiler et simuler doivent se trouver
lintrieur de ce dossier.

En crant un projet, ModelSim cre en fait un fichier, au nom du projet
et avec lextension . mpf , et la bibliothque (library) de travail (wor k).
Dans notre exemple, aprs la cration du projet al u, dans le dossier
Manuel , nous aurons un nouveau dossier wor k (la bibliothque de
travail) et un nouveau fichier al u. mpf (des informations sur le projet,
internes ModelSim). Nous devons maintenant crer notre fichier VHDL
al u. vhd lintrieur du dossier Manuel .

O Crer le fichier VHDL de travail: un nouveau dialogue nous permet la
cration dun fichier source, ou lajout dans le projet dun ou plusieurs
fichiers source dj existants.

Guide des outils de conception Page 6 Eduardo Sanchez


Si nous choisissons de crer un nouveau fichier source, un dialogue nous
demande son nom:



Aprs fermeture des dialogues, la fentre de contrle est disponible:



barre doutils
barre de menus
fichiers source criture des commandes et
affichage des rsultats
Guide des outils de conception Page 7 Eduardo Sanchez
Les commandes du simulateur peuvent tre excutes depuis la barre de
menus, depuis la barre doutils ou en les crivant dans la fentre de
contrle.

Un diteur de fichiers source VHDL est appel en cliquant deux fois sur
le nom du fichier:


O Compiler les programmes VHDL dans la bibliothque wor k:

Tool s Compi l e

ou icne Compi l e sur la barre doutils:




Les fichiers doivent tre compils dans le bon ordre hirarchique, de bas
en haut.

O Dmarrer la simulation:

Si mul at e Si mul at e. . .

ou icne Si mul at e sur la barre doutils:

Guide des outils de conception Page 8 Eduardo Sanchez


Un dialogue apparat, qui permet de choisir larchitecture simuler,
lintrieur de la bibliothque wor k :



O Afficher toutes les fentres de simulation:

Vi ew Al l Wi ndows
Guide des outils de conception Page 9 Eduardo Sanchez


O Dplacer de la fentre si gnal s vers la fentre wave tous les signaux
que lon veut suivre en simulation.


Guide des outils de conception Page 10 Eduardo Sanchez

Si ncessaire, modifier la base pour laffichage des valeurs numriques
des signaux. Pour passer la base hexadcimale, par exemple, il faut
slectioner le signal voulu et excuter la commande:

For mat Radi x Hexadeci mal

O Excuter les commandes de simulation. Ceci peut tre fait en les crivant
dans la fentre de commande ou en excutant un script:

do NomDuScr i pt

Un exemple de script de commande pour lALU du chapitre prcdent est
le suivant:

f or ce cl k 0 0, 1 40 - r epeat 80
f or ce st ar t 1 0, 0 60
f or ce ent r eea 16#39 0, 16#0 60, 16#39 140
f or ce i nal u 0 0, 1 60, 0 140
f or ce ent r eeb 16#12 0, 16#39 140
f or ce opal u 1 0, 0 140, 1 220
f or ce l df l ag 0 0, 1 60
r un 300 ns

O la commande f or ce sert initialiser un signal, laide de trois
paramtres: le nom du signal, sa valeur et le temps o cette valeur est
affecte. Il est possible de donner plusieurs valeurs, en les sparant par
des virgules. Et loption r epeat n indique que la suite de valeurs
prcdentes sera rpte chaque n nanosecondes. Le prfixe 16#
indique que la valeur est donne en hexadcimal.

Le rsultat de cette simulation est illustr par la figure suivante:

Guide des outils de conception Page 11 Eduardo Sanchez

Synthse avec Leonardo

O Dmarrer lapplication Leonardo Spectrum:

St ar t Pr ogr ams Leonar do Spect r umLS2002e_16
Leonar doSpect r umLS2002e_16



O Excuter le wizard depuis la barre doutils:

barre doutils
Guide des outils de conception Page 12 Eduardo Sanchez


O Choisir la cible de la synthse: type de circuit (FPGA), fabricant (Altera),
numro du circuit (EP20K200EFC484), vitesse (-2X):



O Choisir le dossier (directory) de travail, le fichier VHDL synthtiser et le
type de codage pour les machines squentielles:

Guide des outils de conception Page 13 Eduardo Sanchez


O Spcifier la vitesse voulue de fonctionnement (frquence dhorloge:
33MHz):


O Spcifier le format de sortie de la netlist (le format par dfaut, Aut o,
produit un fichier en format EDIF)

Guide des outils de conception Page 14 Eduardo Sanchez


Prenez note du nom du fichier de sortie.
O Le bouton Fi ni sh du dialogue prcdent termine lintroduction des
donnes et dmarre la synthse.

Les rsultats sont affichs dans la fentre principale (faire attention aux
ventuels warnings et messages derreurs).



utilisation
du FPGA
frquence
dhorloge
Guide des outils de conception Page 15 Eduardo Sanchez


Le fichier VHDL peut tre modifi directement dans Leonardo: il suffit de
cliquer sur un message derreur pour ouvrir une fentre avec le code
source. Dans ce cas, aprs correction on doit relancer le wizard

O Afficher le logigramme gnr en cliquant sur le bouton Vi ew RTL
Schemat i c de la barre doutils







O Sauver le projet:
Guide des outils de conception Page 16 Eduardo Sanchez

Fi l e Save Pr oj ect
Guide des outils de conception Page 17 Eduardo Sanchez
Carte de dveloppement Altera

Pour limplmentation de nos systmes, nous utiliserons la carte de
dveloppement dAltera (Excalibur Development Kit), qui est quipe dun
circuit FPGA EP20K200EFC484-2X (lquivalent de 200'000 portes disponibles,
plus 106'496 bits de RAM).



Plusieurs des entres/sorties du FPGA sont disponibles pour lutilisateur :

onze pins du connecteur J P12. Le numro du pin correspondant du FPGA
est indiqu sur la figure suivante (le pin 5 du connecteur J P12 est
connect, par exemple, au pin R18 du FPGA). Le connecteur J P12 fournit
en plus les signaux dalimentation (GND et +5V)

Guide des outils de conception Page 18 Eduardo Sanchez

vingt-neuf pins du connecteur J P11. Le numro du pin correspondant du
FPGA est indiqu sur la figure suivante (le pin 15 du connecteur J P11 est
connect, par exemple, au pin N17 du FPGA). Le connecteur J P11 fournit
en plus plusieurs signaux de terre (GND)




un affichage 7 segments deux caractres. Le numro du pin du FPGA
connect chaque segment de laffichage est donn la figure suivante.
Un segment sallume lorsquun 0 est envoy sur la sortie correspondante
du FPGA

Guide des outils de conception Page 19 Eduardo Sanchez


un bloc 8 interrupteurs (SW1). Le numro du pin du FPGA connect
chaque interrupteur est donn la figure suivante. Le FPGA voit un 1
lorsque linterrupteur correspondant est la position OPEN



cinq boutons poussoirs (SW3, SW4, SW5, SW6, SW7) et deux LEDs (LED1 et
LED2). Le numro du pin du FPGA connect un bouton ou un LED est
donn la figure suivante. Le FPGA voit un zro lorsque le bouton
correspondant est press. Les LEDs sallument lorsquun 1 est envoy la
sortie correspondante du FPGA.
Le bouton SW3 est marqu CLEAR, mais sa fonction dpend entirement
de lutilisateur (il est connect lentre N7 du FPGA)


Le bouton poussoir SW2 est un power-on reset: chaque fois quil est press, le
systme reoit un reset gnral et le FPGA est charg avec la configuration
par dfaut stock dans la mmoire Flash (le processeur Nios 32 bits).

Guide des outils de conception Page 20 Eduardo Sanchez
Le chargement de la configuration externe du FPGA se fait via le cble
ByteBlasterMV, reliant le connecteur J P3 de la carte (plac ct du
connecteur RS232) avec un port parralle du PC.

Un circuit dhorloge interne fournit un signal 33MHz, connect au pin L6 du
FPGA. Le mme signal est disponible lextrieur via le pin 9 du connecteur
J P13.

Dautres caractristiques de la carte sont principalement utilisables en
combinaison avec le processeur Nios:

1 Mbyte de mmoire Flash (512K x 16)
256 Kbytes de mmoire RAM statique (deux circuits 64K x 16)
un connecteur RS232
un connecteur SODIMM, compatible avec des modules de mmoire
dynamique
deux connecteurs de type PCI
Guide des outils de conception Page 21 Eduardo Sanchez
Placement-routage du FPGA avec Quartus I I

O Dmarrer lapplication Quartus II:

St ar t Pr ogr ams Al t er a Quar t us I I 2. 2



O Crer un nouveau projet:

Fi l e New Pr oj ect Wi zar d. . .

Introduire le nom du dossier (directory) de travail, le nom du projet et le
nom du fichier .edf placer-router:



Guide des outils de conception Page 22 Eduardo Sanchez
Slectionner les autres fichiers inclure dans le projet (sils existent):



Slectionner ModelSim comme outil de simulation:



Slectionner le type de circuit (EP20K200EFC484-2X)

O Indiquer le brochage (pinout) du systme: il faut associer chaque
entre/sortie de lentit (entity) au plus haut niveau avec lun des pins
du FPGA disponibles lextrieur (voir le chapitre sur la carte de
dveloppement dAltera pour les dtails)

Guide des outils de conception Page 23 Eduardo Sanchez
Assi gnment s Assi gn Pi ns. . .



Dans ce dialogue, on fait laffectation de chaque port de lentit VHDL
avec lun des pins du FPGA: on slectionne le pin, on crit le nom et on
presse le bouton Add. Pour notre exemple, une affectation possible est
la suivante:

Nom du port Numro du pin FPGA

cl k L6
horloge interne 33MHz
r eset N7
bouton CLEAR
i nal u R18
pin 5 du connecteur J P12
opal u U21
pin 7 du connecteur J P12
l df l ag U1
pin 9 du connecteur J P12
ent r eea[ 0] L15
pin 3 du connecteur J P11
ent r eea[ 1] N19
pin 5 du connecteur J P11
ent r eea[ 2] M3
pin 7 du connecteur J P11
ent r eea[ 3] U5
pin 9 du connecteur J P11
ent r eea[ 4] L14
pin 13 du connecteur J P11
ent r eea[ 5] N17
pin 15 du connecteur J P11
ent r eea[ 6] R3
pin 17 du connecteur J P11
ent r eea[ 7] P3
pin 21 du connecteur J P11
ent r eeb[ 0] Y10
interrupteur 1 de SW1
ent r eeb[ 1] U12
interrupteur 2 de SW1
ent r eeb[ 2] P11
interrupteur 3 de SW1
ent r eeb[ 3] V10
interrupteur 4 de SW1
ent r eeb[ 4] U10
interrupteur 5 de SW1
ent r eeb[ 5] T10
interrupteur 6 de SW1
ent r eeb[ 6] U9
interrupteur 7 de SW1
Guide des outils de conception Page 24 Eduardo Sanchez
ent r eeb[ 7] V9
interrupteur 8 de SW1
f l ag P18
pin 32 du connecteur J P11
r esul t at [ 0] P19
pin 4 du connecteur J P11
r esul t at [ 1] R20
pin 6 du connecteur J P11
r esul t at [ 2] N1
pin 8 du connecteur J P11
r esul t at [ 3] M2
pin 10 du connecteur J P11
r esul t at [ 4] T20
pin 14 du connecteur J P11
r esul t at [ 5] T21
pin 16 du connecteur J P11
r esul t at [ 6] P1
pin 18 du connecteur J P11
r esul t at [ 7] M15
pin 28 du connecteur J P11

Remarquez lutilisation des crochets en lieu et place des parenthses,
pour les noms des ports: cest une exigence de Quartus, contraire la
syntaxe VHDL.

O Dmarrer le processus de placement-routage, laide de la commande:

Pr ocessi ng St ar t Compi l at i on

ou du bouton St ar t Compi l at i on de la barre doutils:



A la fin du processus, un rapport est affich, avec lers rsultats du
placement-routage :


Guide des outils de conception Page 25 Eduardo Sanchez
O A ce point, le fichier al u. sof contient la configuration du FPGA. Pour
charger cette configuration, il faut connecter la carte de dveloppement
Altera au port parallle du PC, laide du cble ByteBlasterMV. Ensuite,
on slectionne la commande:

Tool s Pr ogr ammer

ou on presse le bouton Pr ogr ammer de la barre doutils:



Le dialogue suivant apparat:



Presser sur le bouton Add Fi l epour ajouter le fichier de configuration
al u. sof . Slectionner alors Pr ogr am/ Conf i gur e.

Si, en haut du dialogue, le type de matriel de programmation nest pas
Byt eBl ast er MV, il faut presser le bouton Set upet le slectionner
dans le nouvel dialogue.

Finalement, il faut presser le bout on St ar t . Aprs quelques secondes,
le FPGA est configur et vous pouvez tester votre systme

Guide des outils de conception Page 26 Eduardo Sanchez



Guide des outils de conception Page 27 Eduardo Sanchez
Simulation VHDL avec ModelSim
(aprs placement - routage du circuit FPGA)

O Lapplication Quartus, lors du placement-routage, a cr un ensemble de
fichiers pour prparer la simulation avec les vrais retards. Ces fichiers
sont placs dans le dossier:
<Dossi er DuPr oj et >\ si mul at i on\ model si m

Le fichier al u. vho contient la nouvelle description VHDL simuler et le
fichier al u_vhd. sdo contient les retards.

La simulation a besoin en plus dune description du FPGA, fournie par
Altera dans les fichiers:
<Di squeDur >: \ quar t us\ eda\ si m_l i b\ apex20ke_at oms. vhd et
<Di squeDur >: \ quar t us\ eda\ si m_l i b\ apex20ke_component s. vhd

O Pour la nouvelle simulation, il faut crer un nouveau projet, lintrieur
du mme dossier de la simulation prcdente.

Dmarrer lapplication ModelSim:

St ar t Pr ogr ams Model Si mSE 5. 7d Model Si m

Crer le nouveau projet:

Fi l e New Pr oj ect . . .



Donner un nouveau nom au projet et vrifier que lemplacement est le
mme du projet prcdent et que la librairie par dfaut est wor k

O Ajouter au projet les trois fichiers VHDL mentions au point 1:
apex20ke_at oms. vhd, apex20ke_component s. vhd et al u. vho:
Guide des outils de conception Page 28 Eduardo Sanchez


O Crer la bibliothque apex20ke, en la reliant wor k:

Fi l e New Li br ar y. . .







Guide des outils de conception Page 29 Eduardo Sanchez
O Compiler les fichiers VHDL, dans lordre suivant:

apex20ke_at oms. vhd
apex20ke_component s. vhd
al u. vho

Avant de compiler, il faut vrifier que le compilateur accepte la syntaxe
1993. Pour cela, il faut slectionner les noms des trois fichiers dans la
fentre de contrle de ModelSim et cliquer sur le bouton droit de la
souris, pour choisir les proprits des fichiers:




O Dmarrer la simulation (icne Si mul at e):



Pour commencer, il faut ajouter le fichier des retards, al u_vhd. sdo:

Guide des outils de conception Page 30 Eduardo Sanchez


Ensuite, il faut charger larchitecture que lon veut simuler:



O Afficher toutes les fentres de simulation:

Vi ew Al l

Guide des outils de conception Page 31 Eduardo Sanchez



O Dplacer ds la fentre si gnal s vers la fentre wave tous les signaux
que lon veut suivre en simulation. Il peut tre ncessaire de changer de
module dans la fentre st r uct ur e pour voir apparatre la fentre
si gnal s les signaux recherchs.

Guide des outils de conception Page 32 Eduardo Sanchez



O Excuter les commandes de simulation. Ceci peut tre fait en les crivant
dans la fentre de commande ou en excutant un script:

do NomDuScr i pt

Un exemple de script de commande pour lALU de notre exemple est le
suivant:

f or ce cl k 0 0, 1 40 - r epeat 80
f or ce st ar t 1 0, 0 60
f or ce ent r eea 16#39 0, 16#0 60, 16#39 140
f or ce i nal u 0 0, 1 60, 0 140
f or ce ent r eeb 16#12 0, 16#39 140
f or ce opal u 1 0, 0 140, 1 220
f or ce l df l ag 0 0, 1 60
r un 300 ns

Le rsultat de cette simulation est illustr par la figure suivante:

Guide des outils de conception Page 33 Eduardo Sanchez



Ces rsultats de simulation sont diffrents de ceux obtenus avant le
placement-routage: les retards sont maintenant visibles, notamment
dans le bus resultat et le signal flag.