Professional Documents
Culture Documents
TUTORIAL ModelSim
VHDL
Pr. Rachid EL ALAMI
A. U : 2014/2015
TP du VHDL
A. U : 2014/2015
TP du VHDL
Tutorial Modelsim
Tutorial ModelSim
Cette premire section a pour objectif de vous faire prendre en main un compilateur et un simulateur pour le
langage VHDL. Il sagit du logiciel ModelSim de MentorGraphics.
Aprs un bref rappel concernant le langage VHDL, ce tutorial prsente la manire de crer un projet ainsi que
la faon de reprendre un projet en cours.
La premire section de ce tutorial prsente les diffrentes manipulations de loutil ModelSim.
La deuxime section vous guide dans la conception dune entit de base.
Dans la troisime section, nous listons les lments de base que vous pourrez dvelopper afin de complter
votre comprhension du langage et de loutil.
Bonne lecture et bons dveloppements ...
Rachid EL ALAMI
A. U : 2014/2015
TP du VHDL
Tutorial Modelsim
1.1
Une fois loutil ModelSim lanc, vous pouvez soit reprendre un projet en cours soit crer un nouveau
projet.Nous allons dans un premier temps expliquer les principales fonctionnalits de loutil. Cette
prsentation sera ensuite accompagne dun petit guide qui vous permettra de compiler et simuler votre
premire entit.
2.1
Lorsque vous dbutez votre projet, vous devez configurer loutil ModelSim afin quil organise correctement les
diffrents fichiers que vous allez crer et manipuler.
1. laide de Windows, crez un rpertoire de travail sur votre espace disque Z :/VHDL/Projet
2. Dans ModelSim, modifier le rpertoire de travail par le menu :
File > Change directory
Slectionnez le rpertoire que vous venez de crer Z :/VHDL/Projet.
Rachid EL ALAMI
A. U : 2014/2015
TP du VHDL
Tutorial Modelsim
3. Pour pouvoir stocker correctement vos units de conception VHDL, vous devez crer une bibliothque
de travail :
File > New > Library
Laisser les noms work comme librairie de travail et physique, et cocher a new library and a
logical mapping to it. Cest dans cette bibliothque que seront places toutes les entits compiles sans erreur.
4. Vous devez ensuite crer un projet :
File > New > Project
Tapez un nom de projet, par exemple projet, laisser coch copy library mappings et valider.
5. Loutil vous demande dajouter des items dans le projet. Pour linstant, cliquer sur Close.
Vous pouvez ensuite passer au dveloppement de votre systme et aux compilations des diffrentes spcifications.
2.2
Lorsque vous reprenez votre travail sur un projet que vous avez dj initialis et sur lequel vous avez dj
travaill, vous devez vous ouvrir le projet souhait.
1. Aprs le lancement du logiciel ModelSim, placez vous dans votre rpertoire de travail sur votre espace
disque par le menu :
File > Change directory
Slectionnez le rpertoire de travail Z :/VHDL/Projet.
2. Ouvrez votre projet :
File > Open > Project
Slection du projet.
Recherchez le fichier .mpf qui correspond votre projet (normalement, ce fichier doit tre dans le
rpertoire que vous avez slectionn par le menu prcdent).
2.3
La compilation
Remarques
Utilisez intelligemment les indentations et les commentaires pour que vos fichiers soient lisibles et facilement
maintenables.
Donnez lextension .vhd tous vos fichiers VHDL (fichiers de dclaration dentits, darchitectures, de
paquetages, de corps de paquetage, etc) ;
Afin dviter une surabondance de fichiers dans votre rpertoire de travail, nous vous conseillons de placer le
corps dun paquetage dans le mme fichier que la spcification de ce mme paquetage. De mme, regroupez
dans un mme fichier, la dclaration dentit (entity, generic, port) et son ou ses architectures.
crivez un fichier par entit ou par paquetage.
2.3.2
Lordre de la compilation de vos fichiers est important. Il faut toujours que toutes les units utilises (par
lunit compiler) soient prsentes dans la bibliothque. Ce qui signifie que vous devez respecter lordre de
compilation suivant :
3
Rachid EL ALAMI
A. U : 2014/2015
TP du VHDL
Tutorial Modelsim
1. compilation de vos paquetages. Si vous en avez plusieurs, compilez dabord ceux qui nutilisent aucun
autre paquetage, ensuite vous compilerez les autres ;
2. compilation de vos entits feuilles. On entend par entit feuille, toute entit dcrite de faon comportementale ;
3. compilation de vos entits dcrivant un sous-systme, cest dire des entits dcrites sous la forme dune
structure de composants ;
4. compilation de votre entit systme, cest dire de lentit du plus haut niveau regroupant lensemble
des sous-systmes (relis par des signaux) ;
2.3.3
Rsultats de compilation
Ds que la compilation dune unit est ralise sans erreur, lunit en question apparat dans la bibliothque de
travail. Vous pouvez la visualiser en cliquant sur longlet Library du workspace ;
Dans cet onglet, vous voyez alors tous les paquetages et entits prsents dans la bibliothque Work, et pour
chaque entit vous pouvez obtenir la liste de toutes les architectures dcrites et compiles sans erreur. partir
de cette fentre, vous pouvez supprimer un paquetage ou une entit ou une architecture. Vous observerez que
les paquetages IEEE sont prsents dans la librairie.
2.3.4
Nattendez pas que tout votre systme soit ralis pour effectuer des tests sur vos entits. La dmarche idale
consiste tester chaque entit ds que sa compilation est correcte. Pour cela, dcrivez une entit de test. Compiler alors cette entit et lancer une simulation.
2.4
2.4.1
La simulation
Lancez une simulation
Simulate > Start simulation
2. Une fentre est alors ouverte et vous propose lensemble des units prsentes dans la bibliothque. Slectionnez une entit SIMULABLE (ou une configuration), cest dire une entit autonome qui instancie
lentit simuler et qui gre les signaux dentre de lentit simuler. Les entits que vous allez dvelopper seront stockes dans la librairie Work ;
3. Ouvrez ensuite les fentres de simulation par le menu
4. Par dfaut, lintervalle de simulation est de 100 ns, vous pouvez changer cette valeur en choisissant le
menu :
Simulate > Runtime options
5. Pour visualiser les signaux de lentit de test, slectionnez TestPorteET dans longlet sim du workspace,
cliquez sur Add , puis Add to wave . La fentre des chronogrammes doit alors faire apparatre la liste
des signaux de lentit.
6. Pour lancer un pas de simulation (de 100 ns), choisissez
Rachid EL ALAMI
A. U : 2014/2015
TP du VHDL
Tutorial Modelsim
Dans cette section, nous allons modliser et simuler en VHDL un lment de base qui nous permettra de prendre
en main loutil ainsi que le langage.
3.1
Initialisation du projet
laide de Windows, crez un rpertoire de travail sur votre espace disque Z :/VHDL/Tutorial/
Choisissez le menu File > Change Directory et slectionnez le rpertoire Z :/VHDL/Tutorial ;
Choisissez le menu File > New > Library et tapez WORK (nom de la bibliothque de travail dans
laquelle toutes vos units seront stockes) ;
Choisissez le menu File > New > Project et tapez tutorial (nom du projet) ;
3.2
Crer un nouveau fichier VHDL dans votre projet Project > Add to project > New File . Saisir le
nom de fichier and, le fichier sera cr avec lextension .vhd et laissez loption Add file as type
sur VHDL et loption 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 lentit PorteET. Faite la saisie et sauvegarder ;
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY PorteET IS
PORT
(
entree1 : IN
entree2 : IN
sortie : OUT
) ;
END PorteET ;
Std_Logic ;
Std_Logic
Std_Logic
Rachid EL ALAMI
A. U : 2014/2015
TP du VHDL
Tutorial Modelsim
USE IEEE.STD_LOGIC_1164.ALL ;
ARCHITECTURE Comportementale OF PorteET IS
BEGIN
ProcessPorteET : PROCESS (entree1, entree2)
BEGIN
sortie <= entree1 AND entree2 AFTER 1 ns;
END PROCESS ProcessPorteET ;
END Comportementale ;
Slectionnez le fichier ArchCompAnd.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 ;
En double cliquant sur cette ligne, vous devez voir apparatre un fentre vous indiquant que les actions
suivantes ont t ralises :
vcom Z:/VHDL/VONNEUMAN/ARCHCOMPAND.VHD
ModelTechnology ModelSim SE vcom 6.3a compiler 2007, 06 Jun 25 2007
# - Loading package standard
# - Loading package std_logic_1164
# - Compiling architecture Comportementale of PorteET
# - Load entity PorteET
Visualisez le contenu de la librairie de travail dans longlet Library du workspace. Dveloppez la librairie Work, vous devez voir apparatre lentit PorteET et larchitecture Comportementale dans cette
librairie ;
3.3
Pour parvenir tester / simuler / valider notre entit PorteET il faut dcrire un testbench. Le testbench doit
instancier un composant de type PorteET et faire voluer les signaux dentre de la porte ET.
Dcrivez une entit de test pour la porte ET TestAnd ainsi quune architecture pour cette entit. Larchitecture instanciera une porte ET et fera voluer les signaux dentres de la porte ET. Stocker le tout dans le
fichier TestAnd.vhd ;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY TestPorteET IS
END TestPorteET ;
ARCHITECTURE Test OF TestPorteET IS
COMPONENT PorteET
PORT
(
entree1 : IN
entree2 : IN
sortie : OUT
) ;
END COMPONENT;
Std_Logic ;
Std_Logic ;
Std_Logic
Rachid EL ALAMI
A. U : 2014/2015
TP du VHDL
Tutorial Modelsim
Rachid EL ALAMI
A. U : 2014/2015
TP du VHDL
Tutorial Modelsim
Rachid EL ALAMI