TUTORIAL CADENCE 97 et interface SYNOPSYS-CADENCE
5. Simulation logique (Verilog-XL Integration Control : Ancienne version)
5.1 Utilisation de Verilog-XL Integration Control
Lancement de Verilog-XL Integration Control :
- Dans le composer de schéma, pour ouvrir Verilog-XL, lancez la commande
tools -> simulation -> Verilog-XL. La fenêtre setup environment apparait.
- Cliquez OK, puis la fenêtre de Verilog-XL Integration Control
apparait.
Chargement d'un stimulus :
- Pour effectuer une simulation logique, il vous faut charger un stimulus. Ce
fichier verilog (.v) regroupe les commandes de simulations et est chargé dans
Verilog-XL par la commande stimulus -> verilog...
- Losque vous créez pour la première fois une simulation dans votre nouveau
répertoire, la fenêtre suivante apparait :
- Si vous avez crée votre propre fichier de simulation, cliquez sur
no, autrement il sera crée un fichier simple de simulation par
Verilog-XL. Lorsque vous cliquez sur no, la fenêtre suivante
apparait :
- Sélectionner votre fichier et cliquez OK. Votre fichier
stimulus est copié dans le répertoire de simulation, sous le nom
testfixture.new.
- Sélectionner le fichier testfixture.new par le même principe
que précédemment, afin de pouvoir lancer la simulation.
- Dans le menu Setup -> Simulation..., lorsque la
fenêtre Simulation Options apparait, cliquez sur More >> et
ajoutez dans Options File l'option +notimingchecks. Ceci évite que
le simulateur effectue en plus une vérification temporelle du design.
5.2 Exemple de fichier de simulation
//******************************************************
// Fichier de simulation du compteur/décompteur 4 bits *
//******************************************************
parameter p = 100; // Définition de la période de l'horloge
// Séquence principale de la simulation :
//***************************************
initial
begin
#0 rstb = 1'b1; // Positionne rstb à 1
ud = 1'b1;
ceb = 1'b1;
#p rstb = 1'b0; // 1 cycle d'horloge plus tard, positionne rstb à 0
#p rstb = 1'b1;
#(p*8) ceb = 1'b0; // 8 cycles d'horloge plus tard
#(p*2) ceb = 1'b1;
#(p*2) ud = 1'b0;
#(p*5) rstb = 1'b0;
#p rstb = 1'b1;
#(p*5) $stop;
end
// Génération de l'horloge :
//**************************
initial
begin
clk = 1;
forever #(p/2) clk = ~clk;
end
// Affichage du resultat dans la fenêtre Verilog-XL Integration Control:
//**********************************************************************
always @ (posedge clk)
$display("rstb = ", rstb, " ud = ", ud, " ceb = ", ceb, " Q[3:0] = %b", Q);
// Enregistrement des signaux :
//*****************************
initial
begin
$shm_probe(clk, rstb, ud, ceb, Q[3:0]); // Définition de la liste des E/S à visualiser
#2500;
$finish;
end
Remarques :
- Les fichiers de simulation de toutes les cellules du tutorial vous sont
fournis.
5.3 Simulation et visualisation du résultat
- Pour commencer le processus de compilation et d'exécution, il vous suffit
simplement de cliquer sur l'icône Start Interactive.
- Gardez toujours un oeil sur la fenêtre de simulation, pour voir si le processus se
produit sans erreurs, ni warning.
- Ensuite, lorsque le prompt C1> apparait, vous êtes prêt
à continuer et à finir la simulation.
- On remarquera que toutes les icônes de la barre d'outils deviennent
actives.
- Maintenant, cliquez sur l'icône
Continue pour terminer le processus.
- Après terminaison du processus, seule l'icône
View-Waveforms est accessible.
- Vous pouvez aussi remarquer que le résultat de la simulation est
disponible dans cette même fenêtre, sous la forme suivante :
rstb = 0 ud = 1 ceb = 1 Q[3:0] = xxxx
rstb = 1 ud = 1 ceb = 1 Q[3:0] = 0000
rstb = 1 ud = 1 ceb = 1 Q[3:0] = 0000
rstb = 1 ud = 1 ceb = 1 Q[3:0] = 0001
rstb = 1 ud = 1 ceb = 1 Q[3:0] = 0010
rstb = 1 ud = 1 ceb = 1 Q[3:0] = 0011
rstb = 1 ud = 1 ceb = 1 Q[3:0] = 0100
rstb = 1 ud = 1 ceb = 1 Q[3:0] = 0101
rstb = 1 ud = 1 ceb = 1 Q[3:0] = 0110
rstb = 1 ud = 1 ceb = 0 Q[3:0] = 0111
rstb = 1 ud = 1 ceb = 0 Q[3:0] = 1000
rstb = 1 ud = 1 ceb = 1 Q[3:0] = 1000
rstb = 1 ud = 1 ceb = 1 Q[3:0] = 1000
rstb = 1 ud = 0 ceb = 1 Q[3:0] = 1001
rstb = 1 ud = 0 ceb = 1 Q[3:0] = 1010
rstb = 1 ud = 0 ceb = 1 Q[3:0] = 1001
rstb = 1 ud = 0 ceb = 1 Q[3:0] = 1000
rstb = 1 ud = 0 ceb = 1 Q[3:0] = 0111
rstb = 0 ud = 0 ceb = 1 Q[3:0] = 0110
rstb = 1 ud = 0 ceb = 1 Q[3:0] = 0000
rstb = 1 ud = 0 ceb = 1 Q[3:0] = 0000
rstb = 1 ud = 0 ceb = 1 Q[3:0] = 1111
rstb = 1 ud = 0 ceb = 1 Q[3:0] = 1110
rstb = 1 ud = 0 ceb = 1 Q[3:0] = 1101
- Cliquez sur cette icône, afin
d'invoquer l'interface graphique SimWave.
- Une fois cette opération effectuée, la fenêtre Simwave
apparait :
- Choisissez le menu Tools -> Browser..., la fenêtre suivante
apparait :
- Sélectionnez ensuite les signaux que vous voulez visualiser, et
cliquez sur l'icône suivante pour les ajouter dans la fenêtre
principale.
- Enfin, cliquez sur l'icône Zoom Fit et vous visualisez les
chronogrammes de votre simulation.
Cadence est une marque déposé de Cadence Design Systems,
Inc., 555 River Oaks Parkway, San Jose, CA 95134.