Vous êtes sur la page 1sur 13

TP1 : Environnement ModelSim

Objet :
Prise en main de l’environnement ModelSim
Programmation et simulation de composants de base
Utilisation sur un exemple de demi-additionneur et additionneur complet

I. Configuration Modelsim
1. Démarrage de l’outil de simulation
Le simulateur utilisé s’appelle ModelSim. Lancez le simulateur à partir du menu principal
demarrer de windows.

Figure 1. Environnement de travaille

2. Création du projet et saisie des fichiers VHDL


Cliquez sur projet dans le menu File —> New —> Project.

1
Langage de description VHDL AU: 2020/2021

Une fenêtre de dialogue sur le modèle de celle apparaissant en partie gauche de la Figure ci-
dessous vous permet de saisir le nom du projet (par exemple accumulateur) et de modifier
éventuellement l’emplacement du répertoire où sera situé le projet, si l’emplacement par défaut
ne vous convient pas.
Remarque : si le répertoire cible du projet n’existe pas sur le disque référencé, l’outil vous
propose de le créer (partie gauche de la ci-dessous). Validez sa décision en cliquant sur le
bouton « OK » comme indiqué.

Figure 2. Création d'un projet

Une fois le projet créé, l’outil vous propose d’insérer ou d’éditer un nouveau fichier source
(Figure ci-dessous). Le fichier source n’existant pas, cliquez sur «Create New File ».

2
Langage de description VHDL AU: 2020/2021

Figure 3. Création ou ajout d'un nouveau fichier source.


Une fenêtre de saisie du nom de fichier vous permet de préciser le nom du fichier. N’oubliez
pas l’extension .vhd. Validez en cliquant sur le bouton « ok » et fermez la fenêtre en cliquant
sur le bouton « close ».

Figure 4. Etat du workspace à la fin de l'opération de création du fichier


Vous observez alors l’apparition du fichier dans l’espace de travail (workspace). Le point
d’interrogation signifie que le fichier n’est pas compilé. Double cliquez sur le nom pour
permettre l’affichage d’une fenêtre de saisie (Figure ci-desous) dans laquelle vous taperez le
code de votre programme.

3
Langage de description VHDL AU: 2020/2021

Une fois la saisie effectuée, sauvegardez la description à l’aide du bouton « save ». Cliquez
ensuite à nouveau sur VHDL dans le Menu : File → New → Source. Effectuez la saisie du
code test. Sauvegardez le fichier sous la référence test_acc.vhd.
A l’aide du bouton droit de la souris dans la cadre workspace, cliquez sur add to project, puis
sur existing file et demandez l’insertion du fichier dans le projet courant. Vous devez alors
observer l’apparition de la référence test_acc.vhd dans le workspace, au coté de
accumulateur.vhd, accompagné d’un point d’interrogation comme indicateur d’état (status) de
fichier.
3. La compilation
 1ére méthode :
Le lancement du compilateur s'effectue par le menu :
Compile —> 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 Selected. La phase de compilation est
alors activée.

Figure 5. 1ére méthode pour la Compilation des fichiers source VHDL.

4
Langage de description VHDL AU: 2020/2021

 2éme méthode :
Compilez vos fichiers sources en respectant les étapes ci-dessous :

Figure 6. 2éme méthode pour la Compilation des fichiers source VHDL.

5
Langage de description VHDL AU: 2020/2021

Erreur :

Figure 7. Compilation des fichiers source VHDL.

6
Langage de description VHDL AU: 2020/2021

4. Simulation
a) Ouverture du simulateur
Cliquez sur l’onglet library dans le cadre workspace. Ouvrez le dossier test puis cliquez avec le
bouton droit de la souris sur bench et sélectionnez simulate. De nouveaux onglets apparaissent
dans le workspace.

Figure 8 . Démarche alternative pour le chargement du fichier de simulation

7
Langage de description VHDL AU: 2020/2021

De manière équivalente, vous pourrez obtenir le même résultat en cliquant sur start simulation
dans le menu Simulate. Dans la fenêtre de simulation qui fera alors son apparition, vous
cliquerez sur work, test et bench avant de valider grâce au bouton ok.
b) Sélection des signaux
Cliquez sur wave dans le Menu View. La fenêtre d’affichage des chronogrammes apparaît.
Faites ensuite une sélection des signaux que vous souhaitez visualiser dans cette fenêtre,
comme l’indique la Figure ci-dessous.

Ou

Figure 9. Ajout de signaux dans la fenêtre de simulation.

8
Langage de description VHDL AU: 2020/2021

Il est possible d’afficher les signaux dans d’autres formats (modification du radix). En
procédant comme l’indique la Figure ci-dessous, vous pouvez obtenir une représentation en
hexadécimal.
Cliquez sur le signal avec le bouton droit de la souris

Figure 10. Changement de format du signal A (en hexadécimal)


5. Le Résultat de la simulation
Il existe plusieurs manières de faire avancer la simulation :
• En tapant une ligne de commande (run 800 ns par exemple)
• En appuyant sur le bouton « run » (simulation par pas de 100 ns par défaut)
• Vous pourrez obtenir le même résultat en cliquant sur run dans le menu Simulate, puis « run
-all »

9
Langage de description VHDL AU: 2020/2021

Solution N°1 Solution N°2

Solution N°3

Figure 11. Lancement de la simulation.


Dans notre cas, nous voulons simuler 800 ns. Tapez « run 800 » comme commande dans la
fenêtre transcript. Nous voyons apparaître un chronogramme résultat de la simulation dans la
fenêtre « wave » comme le montre la Figure ci-dessous

Figure 12. Résultat de la simulation.

10
Langage de description VHDL AU: 2020/2021

6. Relancer la simulation
Modifiez le programme source de test afin d’insérer une modification de la valeur de E1 de 0 à
770 ns. Pour relancer la simulation après modification de la source VHDL, il vous suffit de:
• Compiler les fichiers modifiés (Ne pas oublier !!),
• Cliquer sur restart dans le menu Simulate et de valider par « Restart » la fenêtre présentée à
l’écran.
• Dérouler la simulation (Run).

Figure 13. Relance du simulateur.


Sauvegarde des chronogrammes
Dans le menu file, cliquez sur Datasets, et cliquez dans la fenêtre Dataset Browser pour la
rendre active. Cliquez ensuite sur le bouton save as et nommez votre fichier (.wlf).

Travail demandé :

Exercice N°1 – demi-additionneur (Half-Adder)

On souhaite réaliser demi-additionneur (Half-Adder) en utilisant une description Flot de


données en VHDL. Ce circuit, qui permettrait d'effectuer l'addition des deux bits. Les figures a,

11
Langage de description VHDL AU: 2020/2021

b et c donnent la structure classique d’un demi-additionneur 1 bit, son symbole et sa table de


vérité. La figure d montre l’architecture de ce demi-additionneur :

Symbole d’un demi-additionneur La table de vérité associée

a b

Les deux fonctions sous leur forme Le circuit schématisé


canonique

c d
1. Créer un nouveau fichier VHD que vous nommerez demi_adder1bits.vhd. Ce fichier
correspondra à la description Flot de données en VHDL d’un demi-additionneur.
2. Ecrire le code VHDL :
- Ecrire l'entité demi_add et l'architecture arch_demi de ce modèle en utilisant
une description de type flux de données.
- Ecrire le modèle de test test_demi_add comportant une valeur de A et des
valeurs de B décrivant tous les combinaisons possibles.
- Testez en simulation le comportement.

Exercice N°2 – Additionneur complet 1 bit

L’additionneur complet un bit possède 3 entrées :


- Ai : le premier nombre sur un bit.
- Bi : le deuxième nombre sur un bit.
- Ri-1 : la retenue entrante sur un bit.
• Il possède deux sorties :
- Si : la somme
- Ri la retenue sortante

12
Langage de description VHDL AU: 2020/2021

Le circuit correspondant, l'additionneur complet, se compose de deux demi-additionneurs


en série accompagnés d'une logique pour calculer la retenue (un OU entre les deux
retenues générables par chacun des demi-additionneurs) comme montre le figure ci-
dessous :

3. Créer un nouveau fichier VHD que vous nommerez add1bits.vhd. Ce fichier


correspondra à la description Structurelle en VHDL d’un additionneur complet 1 bit.
4. Ecrire le code VHDL :
1. Ecrire le programme du composant OR.
2. Faire appel au programme du demi-additionneur.
3. Ecrire l'entité addcomp et l'architecture arch_addcomp de ce modèle en utilisant
une description Structurelle.
4. Faire compiler les trois programmes.
- Ecrire le modèle de test test_addcomp comportant une valeur de Ai, Bi et Ri-1
décrivant tous les combinaisons possibles.
- Testez en simulation le comportement.

Exercice N°3 – Additionneur 4 bit

Un additionneur sur 4 bits est un circuit qui permet de faire l’addition de deux nombres A et B
de 4 bits chacun
- A(A3A2A1A0)
- B(B3B2B1B0)
En plus il tient en compte de la retenu entrante
• En sortie on va avoir le résultat sur 4 bits ainsi que la retenu (5 bits en sortie)

On utilisant le programme de l’additionneur complet 1 bit écrire un programme en VHDL qui


permette de tester le fonctionnement de ce circuit.

13

Vous aimerez peut-être aussi