Vous êtes sur la page 1sur 16

La simulation numrique efficace

Avec ModelSim
Rfrence :

060409-ReMI-MODEL-TRIAL-V1.1

Auteur(s) :

S. Moutault

Copyright 2006, S. Moutault. Le contenu de ce document peut tre redistribu sous les conditions nonces
dans la Licence pour Documents Libres version 1.1 ou ultrieure.

PRAMBULE LA MANIPULATION...................................................................................................2
Les prsentations - Le logiciel ModelSim dans le flot de synthse........................................................2
Conventions typographiques et iconographiques de ce document........................................................3
Avertissement.........................................................................................................................................3

PREMIER ESSAI........................................................................................................................4
Aperu rapide des tapes de simulation.................................................................................................4
C'est parti................................................................................................................................................4
Lancer le logiciel ModelSim............................................................................................................................................................................4

Construction d'un projet..........................................................................................................................6


Crer un projet................................................................................................................................................................................................6
Ajouter un fichier au projet..............................................................................................................................................................................6
Crer un nouveau fichier pour le projet..........................................................................................................................................................7

Compilation de la description..................................................................................................................8
Compiler le projet............................................................................................................................................................................................8
Corriger les erreurs de compilation.................................................................................................................................................................9

Prparation de la simulation (cration du vecteur de test)...................................................................10


Charger le simulateur....................................................................................................................................................................................10
Prparer l'environnement de simulation.......................................................................................................................................................10
Ajouter des signaux au chronogramme........................................................................................................................................................11
Gnrer des stimuli.......................................................................................................................................................................................11

Simulation et analyse du chronogramme.............................................................................................12


Lancer la simulation......................................................................................................................................................................................12
Faire un zoom sur une partie du chronogramme.........................................................................................................................................12
Faire des mesures temporelles avec les curseurs.......................................................................................................................................12
Fermer le simulateur.....................................................................................................................................................................................13

AUTOMATISER LA SIMULATION AVEC UNE MACRO.............................................................................13


Crer un fichier de macro.............................................................................................................................................................................13
crire une macro...........................................................................................................................................................................................13
Excuter une macro......................................................................................................................................................................................14
Crer une macro partir d'une simulation manuelle....................................................................................................................................15

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 1/16

PRAMBULE

LA MANIPULATION

Ce document est un tutorial du logiciel ModelSim de MentorGraphics. Aprs une courte prsentation du logiciel,
un exemple complet de simulation est prsent. Cet exemple est volontairement simple. Il s'agit de donner
rapidement accs aux fonctionnalits gnrales du logiciel. La partie suivante est consacre quelques problmes
ou difficults bien connus de l'utilisation d'ModelSim .

LES PRSENTATIONS - LE LOGICIEL MODELSIM DANS LE FLOT DE SYNTHSE


ModelSim est un environnement de simulation de description de circuits numriques. Il intgre un gestionnaire de
projet, un diteur de texte et un visualiseur de chronogrammes qui permet de visualiser le rsultat de simulation.
Le coeur du logiciel, le simulateur logique, consomme une description VHDL multi-fichiers et un vecteur de test.
Il produit un rsultat de simulation qui est automatiquement affich l'cran par le visualiseur de chronogrammes.

Description
VHDL

Model
Sim
Macro ou
Vecteur de test

Rsultat de simulation
(Chronogramme)

Fig. 1. Vue locale et partielle du flot de synthse. N'ont t reprsents que les
consomms et produits principaux.

Il y existe 3 possibilits pour raliser un test sous ModelSim :


Construire la simulation l'aide des menus du logiciel. Cette technique sera expos dans la partie du
document intitul Premier essai.
Construire un vecteur de test l'aide d'une macro. C'est une premire faon d'automatiser le test. Les
commandes sont enregistrs dans un fichier texte et l'interprteur de commande de ModelSim l'excute.
Cette technique est beaucoup plus efficace que la prcdente. Elle est prsente dans la seconde partie.
Faire un banc de test virtuel (testbench). Cette technique consiste dcrire un vecteur de test l'aide du
langage VHDL. Elle est donc indpendante de l'outil de simulation. Elle ne sera donc pas expose ici.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 2/16

CONVENTIONS TYPOGRAPHIQUES ET ICONOGRAPHIQUES DE CE DOCUMENT


Icon

Signification
Clic bouton gauche

2x

Double cliquer gauche


Clic droit
Glisser-dplacer (Maintenir le bouton gauche, dplacer l'objet puis relcher)
Slection d'un objet, d'un mot, d'un nom de fichier...
Slection d'une zone ou d'un groupe d'objets

Menu

dmarrer

Menu

Commande accessible depuis de la barre de menus de l'application


Commande accessible depuis le menu dmarrer de Windows
Commande accessible depuis le menu contextuel
Commande accessible par un bouton de la barre d'outils

[ctrl][C]
[alt][F]...[S]

abc

Combinaison des touches ctrl et C frappes simultanment


Combinaison des touches alt et F simultanes puis touche S.
Saisie clavier d'un champ de texte

AVERTISSEMENT
Ce document t ralis partir de la version 6.0 de ModelSim. L'interface des versions antrieures est trs
lgrement diffrente ce qui est dcrit ici.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 3/16

PREMIER

ESSAI

APERU RAPIDE DES TAPES DE SIMULATION


L'exemple qui est trait dans cette partie est donn figure 2. Il s'agit d'une fonction logique deux entres et une
sortie.

exemple.vhd
a
b

s
Fig. 2. Exemple du tutorial.

Les tapes de la simulation sous ModelSim sont les suivantes :


Crer et configurer un projet ;
Compiler le projet ;
Lancer le simulateur et construire le vecteur de test ;
Simuler ;
Visualiser et analyser le rsultat.

C'EST PARTI
Crer un dossier de travail (si ce n'est pas dj fait)
Si vous ne l'avez pas dj fait, crez un dossier de travail, par exemple dans le dossier C:\tmp\. Pour ce premier
essai, appelez votre dossier de travail tutorial. Placez-y les fichiers sources simuler1 le cas chant.
Lancer le logiciel ModelSim
Depuis le menu dmarrer de windows
dmarrer

Programmes > ModelSim > ModelSIm

L'environnement de simulation ModelSim dmarre. Il est compos de 4 zones (fig. 3) :


la zone des barres de menus et d'outils qui rassemble toutes les commandes du logiciel ;
le gestionnaire de projet ;
la fentre d'dition/visualisation qui permet d'diter les vecteurs de test et de visualiser les
chronogrammes de simulation ;
la console qui renvoie des informations sur le droulement de la compilation ou de la simulation.
Ce logiciel comporte quantit de fonctionnalits d'analyse de simulation pas toujours trs intuitives. Seules les
fonctionnalits les plus importantes seront traites ici. tre exhaustif n'est pas le but de ce document. Libre
l'utilisateur d'essayer les fonctionnalits qui ne sont pas dcrites ici.

Vous pouvez aller chercher le fichier exemple.vhd sur site du projet ReMI.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 4/16

2006, S. Moutault

Step Over

Step Into

Run All

Continue

io

Show drivers

Cut

ns
Copy
Fo
de
nc
Paste
co
tio
m
Undo
ns
pi
de
la
Redo
sim tion
Find
ul
at
io
n SelectMode
Co
Zoom Mode
nt
r
le
du
Zoom in
sim
Zoom out
ul
at
Zoom
Full
eu
r

Fo
nc
t

su
a
ch lisa
ro tio
no n
gr et
am co
m ntr
e l
e

Vi

on

iti

d'
d

rs

ie

ich

sf

de

ns

io

ct

Fo
n

io

st

Ge

Menu

Run

Run length

Restart

Break

Simulate

Compile All

Compile

Print

Save

Open

New

Fentre
d'dition
Barre de menus

Console
Barre d'outils

Gestionnaire
de projet

Fig. 3. Environnement de simulation Active-HDL Sim.

Voici un aperu de la barre d'outils de ModelSim :

Fig. 4. Barre d'outils. Tous les boutons ne sont pas dcrits.

060409-ReMI-MODEL-TRIAL-V1.1 5/16

CONSTRUCTION D'UN PROJET


Crer un projet
Depuis la barre de menus
Menu

File > New > Project...

Champ Project location de la fentre de cration de projet

Dossier de projet : C:\tmp\tutorial

fig. 5

Champ Project Name

abc

Nom du projet : Tutorial

Fig. 5. Fentre de slection du dossier de travail.

L'environnement ouvre une fentre d'ajout ou de cration de fichiers. Toutes les commandes de cette fentre sont
galement accessibles depuis le menu file > Add to Project de ModelSim.
Ajouter un fichier au projet

Fig. 6. Fentre d'ajout d'items au projet.


Depuis la fentre d'ajout d'items au projet...
fig. 6

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 6/16

... ou depuis la barre de menus


Menu

File > Add to Project > Existing File...

Depuis la fentre d'ajout de fichier


fig. 6

Fichier de description2 : exemple.vhd

fig. 7
fig. 6

Fig. 7. Slection du fichier de description de l'exemple.

Crer un nouveau fichier pour le projet


Si vous souhaitez crer un nouveau fichier plutt que d'utiliser le fichier source fourni, voici la dmarche suivre.
Depuis la fentre d'ajout d'items au projet...
fig. 6

... ou depuis la barre de menus


Menu

File > Add to Project > New File...

Champ File Name

abc

Nom du fichier : exemple.vhd


fig. 6

Le fichier est cr et ajout au projet. Ne reste plus qu' en crire le contenu.

Vous pouvez aller chercher le fichier exemple.vhd sur site du projet ReMI.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 7/16

Depuis le gestionnaire de projet


2x

Sur le fichier : exemple.vhd

Dans l'diteur de fichier

abc

Le contenu du fichier ci-dessous.

LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY exemple IS
PORT(
a, b : IN STD_LOGIC;
s: OUT STD_LOGIC
);
END exemple;
ARCHITECTURE ar OF exemple IS
BEGIN
s <= a AND b;
END ar;
Depuis la barre d'outils
Save

COMPILATION DE LA DESCRIPTION
Compiler le projet
Depuis la barre d'outils...
Open VHDL File for Simulation
... ou depuis la barre de menus
Menu

Compile > Compile All...

[alt][C]... [A]

Si tout se passe bien, la console indique :


# Compile of exemple.vhd was successful.
S'il y a des erreurs, le compilateur vous l'indique dans la console :
# Compile of exemple.vhd failed with 1 errors.
Dans ce cas, reportez-vous la section suivante.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 8/16

Corriger les erreurs de compilation

Fig. 8. Correction d'une erreur la compilation.


Depuis la console
2x

Le message indiquant l'erreur : # Compile of exemple.vhd failed (...)

fig. 8

Une fentre de rapport de compilation s'ouvre dans laquelle se


trouve la liste complte de toutes les erreurs dtectes.
Depuis la fentre de rapport de compilation
2x

Le premier message d'erreur.


NB : Le premier message a toujours du sens, on ne peut pas en dire autant des
suivants qui sont souvent la consquence de la panique du compilateur.

fig. 8

Dans la fentre d'dition


La ligne concerne par l'erreur est place en surbrillance. Il ne reste
plus qu' identifier la cause de l'erreur et la corriger.

fig. 8

NB : Souvent, l'erreur se trouve au-dessus de la ligne indique, comme dans


l'exemple de la fig. 8 o il manque un ";" la fin de la ligne 30.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 9/16

PRPARATION DE LA SIMULATION (CRATION DU VECTEUR

DE TEST)

Charger le simulateur
Depuis la barre d'outils...
Simulate
... ou depuis la barre de menus
Menu

Simulate > Start simulation3

Dans la fentre de slection du design


Work Pour dvelopper le contenu de la library work.

fig. 9

L'entit simuler : exemple

Fig. 9. Chargement du simulateur.

Si tout se passe bien, le dernier message de la console indique que l'entit a t charge correctement :
# Loading work.exemple(bdf_type)
Prparer l'environnement de simulation
Deux fentres sont ncessaires pour effectuer une simulation. La fentre objects qui permet de manipuler les
signaux du circuit et la fentre wave dans laquelle apparaissent les chronogrammes de simulation.
Depuis la barre de menus

3
4
5

Menu

View > Debug windows > Objects4

Menu

View > Debug windows > Wave5

Dans certaines versions du logiciel, il s'agit de la commande Simulate > Simulate.


Dans certaines versions du logiciel, il s'agit de la commande View > Signals.
Dans certaines versions du logiciel, il s'agit de la commande View > Wave.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 10/16

Ajouter des signaux au chronogramme


La fentre de chronogrammes est initialement vierge. Il faut lui ajouter la rfrence des signaux que l'on souhaite
observer.
Depuis la fentre Objects...
Menu

Add to Wave > Signals in Design

... ou par glisser/dposer


Les signaux observer : a, b et s
Dans la fentre wave

Gnrer des stimuli


Deux types de stimuli sont possibles l'aide de l'interface graphique. Prenons l'exemple d'un signal priodique de
type horloge :
Depuis la fentre Objects...
Le signal diter : a
Menu

Clock

Dans la fentre de dfinition d'horloge

abc

Duty (rapport cyclique) : 50

abc

Period (priode) : 1006

fig. 10

D'autres paramtres peuvent tre modifis...

Fig. 10. Fentre de dfinition d'horloge.

Faites de mme pour b en choisissant une priode de 200.


Le simulateur est prt faire la simulation.

Il est possible de spcifier des units de temps : 100 ms, 100 us, 100 ns, 100 ps.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 11/16

SIMULATION ET ANALYSE DU CHRONOGRAMME


Lancer la simulation
Depuis la barre d'outils...
Run (2 fois)
... ou depuis la console

abc

run 200 ps

[Entrer]

Fig. 11. Fentre de visualisation du chronogramme aprs simulation.

Faire un zoom sur une partie du chronogramme


Diverses fonctions de zoom existent dans la barre d'outils. Essayez les !
Depuis la barre d'outils...
Zoom in
Zoom out
Zoom Full (pour voir tout le chronogramme)

Faire des mesures temporelles avec les curseurs


La barre d'outils spcifique de la fentre wave permet de manipuler des curseurs.

Fig. 12. Manipulation des curseurs dans la fentre wave. La dure entre chaque
curseur est indique.
Depuis la barre d'outils...
Insert Cursor : ajouter un curseur
Delet Cursor : supprimer un curseur

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 12/16

Depuis la barre d'outils...


Previous : recule le curseur courant jusqu' la prcdente
transition
Next : avance le curseur courant jusqu' la prochaine transition

Fermer le simulateur
La visualisation des chronogrammes ncessite un jeton de licence gr par le serveur du dpartement. Or, le
dpartement en dispose d'un nombre limit. Pour ne pas monopoliser un jeton inutilement, ds que vos rsultats
sont analyss, vous devez quitter le simulateur. Le logiciel ModelSim, lui, peut rester ouvert.
Depuis la barre de menus...
Menu

Simulate > End Simulation

... ou depuis la console

abc

quit -sim

[Entrer]

AUTOMATISER

LA SIMULATION AVEC UNE MACRO

La mthode prcdente est un peu fastidieuse lorsqu'on a refaire et refaire la mme simulation pour mettre au
point une description. Les macros permettent d'automatiser certaines tches comme le chargement du simulateur,
ou la gnration des stimuli.
Les tapes des parties Crer un projet et Compilation de la description sont par contre inchanges.
Crer un fichier de macro
Depuis la barre de menus...
Menu

File > New > Source > Do

... ou depuis la barre d'outils


New
Depuis la barre d'outils de la fentre d'dition
Save

abc

Nom du fichier : exemple.do

crire une macro


Une macro est un ensemble de commandes. Pour crire un fichier de macro, il suffit donc d'crire dans le fichier
les diffrentes commandes souhaites.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 13/16

Voici une liste des commandes les plus utiles :


Commande

Rsultat

vsim work.entityName

Charge le simulateur avec l'entit entityName

view wave

Ouverture de la fentre wave

add wave -r /entityName/*

Ajoute tous les signaux (*) de l'entit entityName la


fentre wave

force x 0 0, 1 100 ns

Force le signal x '0' la date 0 puis '1' la date


100 ns

force x 0 0, 1 100 -r 200

Force le signal x '0' l'origine puis '1' au bout de


100 ps, et rpte ce cycle toutes les 200 ps. En ralit,
cette commande gnre une horloge.

force X 0010 0, 0011 100

Force le vecteur de 4 signaux X "0010" l'origine puis


"0011" au bout de 100 ps.

run 400 ps

Lance la simulation pendant 400 ps

La commande de force rpond la syntaxe suivante :


force nom_du_signal etat1 date2{, etatN dateN} [-r periode]
La partie entre accolades peut tre rpte autant que ncessaire. La partie entre crochets est optionnelle.
Voici la macro complte pour la simulation de notre exemple :
vsim work.exemple
view wave
add wave -r /exemple/*
force a 0 0, 1 50 -r 100
force b 0 0, 1 100 -r 200
run 200
Dans le fichier de macro

abc

Les commandes ci-dessus

Depuis la barre d'outils de la fentre d'dition


Save

Excuter une macro


Depuis la console

abc

do exemple.do7

[Entrer]

Si tout se passe bien, la fentre wave apparat et le chronogramme se dessine.

Fig. 13. Fentre de visualisation du chronogramme aprs simulation.


7

La commande do est la commande d'appel de macro. Le nom exemple.do est ici le nom du fichier de macro.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 14/16

Crer une macro partir d'une simulation manuelle


Chaque action excute par l'intermdiaire des menus de ModelSim gnre une commande dans la console du
logiciel (fentre transcript). Le contenu de la console peut tre enregistr sous la forme d'une macro si bien que
toutes les actions qui ont t faites depuis le dmarrage du logiciel peuvent tre rejoues volont.
Cette technique peut s'avrer trs efficace pour fabriquer des macros rapidement sans avoir matriser la syntaxe
de commande.
Reprenez la simulation faite lors du premier essai du simulateur puis excutez les actions ci-dessous.
Depuis la console
Dans la console (transcript) pour la rendre active.
Depuis la barre de menus
Menu

File > Save As

Dans la fentre Save Transcript

abc

Nom du fichier : exemple.txt

Il vous suffit d'appeler la macro que vous venez de crer pour rejouer toutes les actions faites depuis l'ouverture du
logiciel.
Depuis la console

abc

do exemple.txt8

[Entrer]

Certaines lignes du transcipt peuvent poser problme. Il suffit d'enlever du fichier les lignes en question.

2006, S. Moutault

060409-ReMI-MODEL-TRIAL-V1.1 15/16

HISTORIQUE
Date

Version

24/03/06

V1.0

09/04/06

V1.1

2006, S. Moutault

DES MODIFICATIONS

Modifications
Modification de la figure 13.
Ajout de la section Crer une macro partir d'une simulation manuelle

Historique des modifications

060409-ReMI-MODEL-TRIAL-V1.1 16/16