Vous êtes sur la page 1sur 3

Universit Joseph Fourier Master 1 Informatique

Anne 2010/2011

Option Introduction la modlisation et la vrification des systmes numriques Planche de TP n1 Simulation avec ModelSim (http://model.com/)

Nous allons dcouvrir l'utilisation de ModelSim avec un exemple simple (additionneur 1 bit) qui vous est fourni dans ~xm1iarclpi/TP/Add1 Vous devez tout d'abord crer un rpertoire pour cet exemple et l'organiser en 4 sous-rpertoires comme c'est le cas dans ~xm1iarclpi/TP/Add1 (attention, il devra en tre de mme pour tous les exercices que nous ferons) :
total 4 drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 2 4 2 xm1iarclpi xm1iarclpi xm1iarclpi xm1iarclpi 512 512 512 512 Feb Feb Feb Feb 15 15 15 15 10:21 09:44 10:11 09:44 bench confmodelsim libs srcvhd

Puis : - rcuprer les fichiers qui sont dans ~xm1iarclpi/TP/Add1/confmodelsim et les placer dans votre rpertoire du mme nom, puis modifier dans ces fichiers le chemin $HOME/TP/Add1/ par votre propre chemin d'accs - rcuprer les fichiers qui sont dans ~xm1iarclpi/TP/Add1/srcvhd et les placer dans votre rpertoire du mme nom, il s'agit du source VHDL de l'additionneur 1 bit et d'un script utile pour raliser sa compilation - rcuprer les fichiers qui sont dans ~xm1iarclpi/TP/Add1/bench et les placer dans votre rpertoire du mme nom, il s'agit d'une entit de test et d'un script utile pour raliser sa compilation. Raliser successivement les oprations suivantes : - se placer dans votre rpertoire srcvhd, faire source ../confmodelsim/config, vrifier que le fichier add1.vhd contient bien la description d'un additionneur 1 bit (style dataflow, temps de traverse des portes ngligs), et excuter le script script.csh pour raliser sa compilation (on remarque que la bibliothque de travail utilise est ../libs/LIB_ADD1), - se placer dans votre rpertoire bench, et diter le fichier testAdd1.vhd : il contient une entit de test et une configuration externe pour cette entit. Complter l'architecture de l'entit de test de faon considrer tous les cas d'essais possibles pour les stimuli d'entre de l'additionneur, - excuter le script script.csh pour raliser la compilation de ce testbench (on remarque que la bibliothque de travail utilise est ../libs/LIB_ADD1_BENCH), - lancer le simulateur par la commande vsim Dans le menu "simulate" de vsim, slectionner "start simulation" et choisir la configuration qu'on

vient de compiler :

Puis slectionner les signaux dont on souhaite visualiser les valeurs dans la waveform et faire "add to wave". Enfin, lancer la simulation, soit par la commande "run" suivie d'un temps dans le champ de commande en bas de la fentre, soit en utilisant le bouton associ (et le champ de choix d'un temps) :

Vous obtiendrez les waveforms de simulation, c'est dire quelque chose de la forme :

Il reste vrifier que le rsultat est bien le rsultat attendu !

Exercice 1. Appliquer la mme technique pour crer un environnement de simulation pour un additionneur N bits, et raliser la simulation d'une instance 4 bits de ce composant. Exercice 2. On considre un systme de multiplexage, dont l'entit VHDL est donne ci-dessous, qui fonctionne comme suit : si le bit de contrle c est '1', le circuit reoit sur sa sortie la valeur du vecteur d'entre a, sinon il reoit sur sa sortie la valeur du vecteur d'entre b.
entity MUX is generic(N:positive); port(c:in bit; a,b:in bit_vector(0 to N-1); s:out bit_vector(0 to N-1)); end MUX;

Proposer une ralisation de ce systme (attention, on sera dans un style purement dataflow avec une instruction for..generate, les temps de traverse des portes tant ngligs). Proposer une entit de test pour une instance 8 bits de ce composant, et raliser la simulation.