Simulateur Modelsim

Modelsim est un simulateur HDL développé par Mentor Graphics qui supporte plusieurs langages (VHDL, Verilog, SystemVerilog, SystemC).

Ce tutoriel présente de façon succincte les principales commandes pour pouvoir simuler des modules Verilog que ce soit en mode console ou en mode graphique.



Back to Top

Simuler un utilisant la ligne de commande:

Créer la bibliothèque de travail:

Bien que la notion de bibliothèque de travail n'existe pas en Verilog, Modelsim exige la création d'une bibliothèque de travail.

Cette bibliothèque est nommée « work ».

La commande pour la créer est :

vlib work

Compiler un fichier:

Les fichiers compilés peuvent contenir plusieurs modules. Modelsim les identifiera et les rendra disponibles dans la bibliothèque de travail work.

La commande pour compiler un fichier est:

vlog +acc <nom_du_fichier.v>

Cette commande doit être lancée dans le répertoire où la librairie work a été crée.

Des options peuvent être spécifiées, par exemple:

-vlog95compat Assure la compatibilité avec le standard 1364-1995
-vlog01compat Assure la compatibilité avec le standard 1364-2001



Utiliser la ligne de commande TCL en mode interactif:

Modelsim propose une console TCL en mode interactif, cette console est accessible en utilisant la commande vsim avec l'option "-c".

vsim -c lance le tcl shell de Modelsim
vsim -c <nom_du_module> charge le module pour la simulation



Dans la console TCL la liste des commandes possibles peut être obtenue en utilisant la commande « help commands »



Pour lancer la simulation utiliser la commande run.

run lance la simulation pour la durée par défaut
run 100ns lance la simulation pour 100ns
run -all lance la simulation jusqu'au prochain point d'arrêt

Utiliser différentes bibliothèques:

Modelsim permet de définir plusieurs bibliothèques (comme en VHDL) pour organiser ses modules.

Pour créer une bibliothèque il suffit d'utiliser la commande vlib

vlib <nom_de_la_bibliothèque>

Pour qu'un module compilé appartienne à un librairie spécifique.

vlog +acc <nom_du_fichier.v> -work <nom_de_la_bibliothèque>



Pour simuler un module faisant appel à des modules se trouvant dans d'autres bibliothèques.

vsim <nom_du_module> -L <nom_de_la_bibliothèque> -L ...
Back to Top

Simuler en utilisant l'interface graphique:

Pour utiliser l'interface graphique du simulateur il faut utiliser la commande « vsim »

vsim



L'image suivante est une capture d'écran de cette interface graphique.



Le bloc Workspace contient pour l'instant la liste des bibliothèques chargée par défaut par l'outil.

Le bloc Transcript est la console TCL interactive. Elle permet d'afficher les messages durant la compilation et la simulation et de passer des commandes TCL directement.

La console affiche également les instruction qui correspondent aux actions effectuées en utilisant les outils graphiques.



Remarque :

Si on veut directement simuler un module déjà compilé on peut le préciser comme argument de la commande vsim.

vsim <nom_du_module>

lance Modelsim en mode graphique en chargeant un module déjà compilé.



Créer la bibliothèque de travail:

Pour créer la bibliothèque de travail (si elle n'existe pas), il faut utiliser la commande file/new/library. Une boite de dialogue « Create a new library » permet ensuite de preciser le nom de la bibliothèque et le chemin vers le répertoire qui la contiendra.

Compiler un fichier:

Pour compiler un fichier source il faut utiliser la commande compile/compile. Une boite de dialogue vous permet de préciser la bibliothèque à laquelle appartiendront les modules compilé et de choisir les fichiers sources.



Charger un module pour la simulation:

Pour charger un module et lancer la simulation utiliser la commande simulate/start simulation. Une boite de dialogue apparaît et permet de sélectionner le module dans la librairie à laquelle il appartient.

Cette boite de dialogue vous permet aussi de préciser des option de simulation comme:

On peut aussi lancer rapidement la simulation en double cliquant sur le nom du module dans le Workspace. Dans ce cas, les option par défaut sont utilisées.

Une fois le module chargé, le bloc Workspace contient un ongle « sim » qui décrit la hiérarchie de modules en cours de simulation.

Un bloc Objects content tous les objet du module sélectionné dans l'onglet sim (càd les entrées/sorties et les signaux internes).

Le bloc Locals contient lui les variables locales.

Le menu View permet de choisir les blocs à afficher.

Visualiser des chronogrammes:

Pour visualiser des chronogrammes il faut afficher le bloc Wave (View/wave).

Pour ajouter des signaux à visualiser il suffit de les sélectionner dans la fenêtre Objects (ou Locals si on veut afficher des variables locales) puis de les glisser sur le bloc Wave.



Des outils spécifiques au bloc Wave apparaissent et permettre entre autre de zoomer et positionner des curseurs.

Simuler:

Pour lancer la simulation il faut utilser les commandes suivante:

De gauche à droite on peut:

Back to Top