Simulation du code RTL
Paradoxalement, pour ce problème simple, la simulation n’est pas aisée. ceci est dû principalement qu’il y a dans le projet beaucoup de chaines de comptage. La simulation risque d’être très longue à partir du moment où on voudrait s’approcher d’un fonctionnement réel. Ceci pose d’ailleurs le problème de la simulation post-routage.
Pour cette raison, on a introduit dans le projet une constante statique « simulation » qui sera positionnée à fausse pour la synthèse (paramètres réels) et à vraie pour la simulation ( modulos de comptage réduits au minimum).
On aura par exemple dans la description du circuit :
IF simulation THEN
valeur_tempo := div_500ms_simu;
ELSE
valeur_tempo := div_500ms;
END IF;
La séquence de stimuli (fichier test_premier.vhd) est construit avec les paramètres de simulations.
Simulation modelsim
D’après notre méthode, le répertoire de travail pour cette simulation est premier_proj/modelsim
On y construira deux fichiers de commandes, l’un pour la compilation compile.do et l’autre pour la simulation proprement dite simu.do
Dés lors , il suffit de créer un projet modelsim ( créer une bibliothèque work et positionner le répertoire de travail sur modelsim).
File > New project On remplit les champs correctement
Il suffit ensuite sur la ligne de commende de taper
- do compile.do pour la compilation dans le bon ordre de tous les fichiers
- do simu.do pour le chargement de l’objet et l’exécution et la visualisation.
on obtient le résultat suivant :
Simulation GHDL
Après avoir installé le logiciel ghdl et assuré l’accès à ce logiciel en modifiant le chemin d’accès ( on met dans un fichier .bashrc la commande export PATH=/chemin d’intalle/ghdl/bin:$PATH), on ouvre une fenêtre terminal et l’on se place dans le répertoire ghdl de notre projet.
On Commence par compiler les fichiers sources:
- ghdl -a primitives_pack.vhd
- ghdl -a bouton_poussoir.vhd
- ghdl -a premier.vhd
- ghdl -a test_premier.vhd
Puis on crée l’éxecutable pour la simulation
- ghdl -e test-premier
Puis on lance la simulation avec création d’un fichier vcd ( pour visualisation graphique)
- ghdl -r test_premier –stop-time=15us –vcd=Simu.vcd
Il faut maintenant invoquer gtkwave pour visualiser les résultats de simulation.
- gtkwave simu.vcd
Dans le menu Search> Signal search Tree on peut choisir les signaux à visualiser.
On obtient un résultat conforme à celui-ci:
Leave a Reply
You must be logged in to post a comment.