Beruflich Dokumente
Kultur Dokumente
Travaux pratiques
Langage VHDL
B. HAJJI
01/09/2016
1
Guide d’utilisation du logiciel Modelsim
Ce guide d’utilisation du logiciel Modelsim présente les 4 étapes nécessaires pour la simulation d’un
circuit décrit par le langage VHDL :
Lancer l’outil de simulation Modelsim dans le menu Démarrer des programmes ou par le
raccourci.
Lorsque vous validez votre choix en cliquant sur le bouton OK comme indiqué, la fenêtre
suivante s’affiche :
2
Etape 2 : Création ou ajout d’un nouveau fichier source
o Si votre fichier source VHDL existe (a été déjà écrit), vous pouvez simplement
l’ajouter au projet en sélectionnant Add Existing File .
o Dans le cas contraire, sélectionner Create New File. La fenêtre suivante s’ouvre et
vous propose de préciser le nom du fichier tout en indiquant l’extension .vhd.
Après la validation de votre choix en cliquant sur le bouton ok, la fenêtre principale de Modelsim
doit contenir votre fichier source VHDL dans l’espace de travail workspace.
3
Le point d’interrogation signifie que le fichier n’est pas compilé. Vous pouvez à présent éditer le
contenu du fichier en double-cliquant sur son nom. La fenêtre de l’éditeur s’ouvre et vous pouvez en
modifier le contenu. 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 apparaissant dans la figure ci-contre. Souvegardez le fichier sous la référence test_acc.vhd.
Dans le menue File add to project, cliquez 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, avec toujours un point d’interrogation comme indicateur
d’état (status) de fichier.
4
Etape 4 : Simulation
- Sélection des signaux : cliquer sur Wave dans le menu view -> Debug Windows. La fenêtre
d’affichage des chronogrammes s’affiche. Faite ensuite une sélection des signaux que vous
souhaitez visualiser dans cette fenêtre : clique bouton droit de la souris add to Wave
Selected Signals
5
- La simulation faite à l’aide de la commande Force :
La première ligne force le signal clk à 0 au temps 0, à 1 au temps 40, et répète cette séquence
toutes les 80 ns. Ceci correspond à un signal périodique.
6
Prof : B. HAJJI TP VHDL Niveau 4ème GE
Partie 1
Exercice 1 : Demi-additionneur
Un additionneur complet est un système à 3 entrées sur 1 bit (A, B, Cin), fournissant une
sortie S = A + B + Cin et une sortie Cout de retenue.
7
Exercice 3 : Comparateur
Les ports du comparateur qui compare deux nombres de 8bits non assignés sont listés dans
la table 1 ci-dessous :
Library ieee ;
Use ieee.std_logic_1164.all;
end compare;
begin
end dataflow;
Wave /*
8
Exercice 4 : bascule D flip-flop
Le tableau 1 présente les ports de la bascule D flip-flop. L’entrée D est mémorisée à chaque front
montant du signal d’horloge clk.
Library IEEE ;
Use IEEE.std_logic_1164.all;
D : in std_logic;
Clk: in std_logic;
Q: out std_logic);
End DEF;
Begin
End RTL;
2) Compiler le modèle. Vous devez alors avoir dans la librairie WORK l’entité et l’architecture
du modèle.
3) La simulation du modèle VHDL se fait par deux manières différentes. Soit en imposant des
valeurs aux signaux d’entrés à l’aide de la commande « Force » ou bien en utilisant un test
bench.
9
Wave /*
Force clk 0 0, 1 60 – repeat 120
Force d 0 0, 1 100, 0 200
Run 400
entity test_bascule is
--- cette entité n’a pas de signaux car c’est le test
end test_bascule;
Component latch ---- composant que l’on utilise dans le modèle de test
port (data, clock : in std_logic;
sortie : out std_logic);
end component;
--- on doit spécifier quelle entité et quelle architecture on utilise pour le composant.
--- C’est la configuration
begin
--- on définit le process copie dans lequel on affecte la valeur des signaux
4) Compiler le modèle. Vous devez alors avoir dans la librairie WORK l’entité et l’architecture
du modèle.
10
Exercice 6 : Diviseur de fréquence
Exercice 7 : Compteur
Library ieee ;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all;
CLK : in std_logic;
COUNT: out std_logic_vector(3 downto 0));
End BCNT;
11
Wave /*
Force clk 0 0, 1 50 – repeat 100
Run 500
1) Décrire en VHDL un registre à décalage 4-bit, utilisant les bascules D Flip-flop, présenté par
le schéma ci-dessous :
Il s’agit de développer on modèle fonctionnel (comportemental) d’un décodeur pour un affichage LED
à 7 segments
Tous les signaux sont des std_logic_vector Descriptif des bits de SEG (b0 à b6)
1- E rire l’e tité decode et l’ar hitecture concur de ce modèle en utilisant une description de type
flot de données.
2- Ecrire le modèle de test test_compil8bit comportant les 10 valeurs que prendre DataDCB
3- Compiler et simuler
12