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 correctementmodelsim_proj

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 :

simu_modelsim

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:

 

Simu GHDL

Leave a Reply

You must be logged in to post a comment.