Académique Documents
Professionnel Documents
Culture Documents
2
Initiation à la simulation par ModelSim VHDL
1. Tutorial ModelSim
Ce tutoriel a pour objectif de vous faire prendre en main un compilateur et un simulateur pour le
langage VHDL. Il s’agit du logiciel ModelSim PE Student Edition (édition dédiée aux étudiants
universitaires) de MentorGraphics.
Ce document présente la manière de créer un projet ainsi que la façon de reprendre un projet en cours.
La première section de ce tutorial présente les différentes manipulations de l’outil ModelSim.
La deuxième section vous guide dans la conception d’une entité de base.
Dans la troisième section, nous listons les éléments de base que vous pourrez développer afin de
compléter votre compréhension du langage et de l’outil.
1 avantde pouvoir lancer pour la première fois l’outil ModelSim, vous devez tout d’abord activer la licence, pour
cela consulter https://www.mentor.com/company/higher_ed/modelsim-student-edition puis lire
attentivement la section Learn more Additional Information Installation
3
Initiation à la simulation par ModelSim VHDL
Sélection du projet.
Recherchez le fichier .mpf qui correspond à votre projet (normalement, ce fichier doit être dans le
répertoire que vous avez sélectionné par le menu précédent).
2.3. La compilation
Le lancement du compilateur s’effectue par le menu :
Compile—> Compile ou Compile
du logiciel. Une fenêtre s’ouvre alors et vous donne accès aux fichiers de votre répertoire de travail.
Sélectionnez un fichier et cliquez sur Compile. La phase de compilation est alors activée.
Compile
4
Initiation à la simulation par ModelSim VHDL
erreur. À partir de cette fenêtre, vous pouvez supprimer un paquetage ou une entité ou une
architecture. Vous observerez que les paquetages IEEE sont présents dans la librairie.
5
Initiation à la simulation par ModelSim VHDL
Figure 3 : Menu View
4. Par défaut, l’intervalle de simulation est de 100 ns, vous pouvez changer cette valeur en choisissant
le menu (voir figure 2) :
Simulate—> Runtime options
5. Pour visualiser les signaux de l’entité de test, sélectionnez ADD4 dans l’onglet sim du workspace,
cliquez surAdd , puis Add to wave . La fenêtre des chronogrammes doit alors faire apparaître la liste
des signaux de l’entité.
6
Initiation à la simulation par ModelSim VHDL
C :/VHDL/Projet2/
Choisissez le menu
File —> Change Directory
et sélectionnez le répertoire
C :/VHDL/ Projet2
Choisissez le menu
File —> New —> Library
et tapez WORK (nom de la bibliothèque de travail dans laquelle toutes vos unités seront stockées);
Choisissez le menu
File —> New —> Project
et tapez projet2 (nom du projet);
3.2. Compilation d’une unité fonctionnelle
Créer un nouveau fichier VHDL dans votre projet
Project—> Add to project—> New File
Saisir le nom de fichier ADD4, le fichier sera créé avec l’extension .vhd et laissez l’option Add
file as type sur VHDL et l’option Folder sur TopLevel.
En double cliquant sur le nom du fichier dans le workspace, un éditeur de texte vous
permettra de saisir la description de l’entité ADD4. Faite la saisie et sauvegarder ;
7
Initiation à la simulation par ModelSim VHDL
Comme pour l'additionneur (ADD4), l'environnement de test est un module. Mais ce module n'a ni
entrées ni sorties : il est autonome, produit lui-même les signaux à envoyer à l'additionneur, et vérifie
que les sorties de l'additionneur sont bien correctes, qui correspond au schéma suivant :
Décrivez une entité de test pour ADD4 Testadd4 ainsi qu’une architecture pour cette entité.
L’architecture instanciera ADD4 et fera évoluer les signaux d’entrées ADD4. Stocker le tout
dans le fichier Testadd4.vhd ;
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity Testadd4 is
end entity;
signal a, b, s, r : std_logic;
component add4 is -- les signaux connectés aux entrée de ADD4 sont produit par le testbench
port ( -- de façon séquentielle
a : in std_logic;
b : in std_logic; -- Le composant prototype component de ADD4 doit être déclaré pour
s : out std_logic; -- pouvoir instancier ADD4 et compiler le testbench indépendamment.
r : out std_logic
);
end component;
begin
process
begin -- Nous ne testerons pas toutes les combinaisons d'entrées possibles, Entre chaque combinaison,
a <= '0'; -- nous ferons une pause (virtuelle) de 5ns, donnée par l'instruction wait 5ns
b <= '0'; -- Notez qu'il n'y a pas de liste de sensibilité car le processus
wait for 5 ns; -- utilise l'instruction wait pour spécifier les points d'arrêt.
a <= '1'; -- Dans ce cas c'est la valeur du temps physique qui est utilisé comme
b <= '0'; -- point d'arrêt du processus.
wait for 5 ns; -- La génération des vecteurs de test est produite de façon séquentielle,
a <= '0'; -- au moyen d'un processus ayant des points d'arrêts
b <= '1'; -- à chaque moment où les entrées doivent changer
wait for 5 ns;
a <= '1';
b <= '1';
end process;
end arc;
Sélectionnez le fichier Testadd4.vhd dans le workspace puis cliquez droit et choisissez
Compile—> Compile selected
Lorsque la compilation est correcte, vous devez voir un message Compile of <nom fichir
vhdl>
was successful ;
8
Initiation à la simulation par ModelSim VHDL
En double cliquant sur cette ligne, vous devez voir apparaître une fenêtre vous indiquant que
les actions suivantes ont été réalisées :
com -work work -2002 -explicit -stats=none C :/VHDL/Projet2/ Testadd4.vhd
Model Technology ModelSim PE Student Edition vcom 10.4a Compiler 2015.03 Apr 7 2015
Il faut maintenant créer un simulateur de l'entité " Testadd4" de plus haut niveau décrite
dans Testadd4.vhd.
L'élaboration de Testadd4 est effectuée et la fenêtre ModelSim apparaît pour lancer la simulation en
graphique.
9
Initiation à la simulation par ModelSim VHDL
A partir de la console ModelSim, Utilisez la commande suivante pour demander le chronogramme des
signaux de test :
Une fenêtre contenant les signaux à tracer apparaît de façon à visualiser les chronogrammes. Lancez
l'exécution de la simulation pendant 20 ns par
VSIM > run 20 ns
Examinez les chronogrammes.
10
Initiation à la simulation par ModelSim VHDL