J'utilise un simulateur graphique, et ils semblent tous deux faire la même chose.
$finish
quitte la simulation et redonne le contrôle au système d'exploitation.
$stop
suspend la simulation et met un simulateur en mode interactif.
Selon la norme IEEE Standard for Verilog (1364-2005, Section 17.4, "Tâches du système de contrôle de simulation"), $stop
doit suspendre la simulation et $finish
doit obliger le simulateur à quitter et à redonner le contrôle au système d'exploitation hôte. Bien sûr, différents simulateurs peuvent implémenter les spécifications de manière légèrement différente, et tous les simulateurs ne sont pas entièrement compatibles avec les spécifications.
La documentation de votre simulateur peut fournir une description plus détaillée de son comportement, notamment en ce qui concerne les modes d'interface graphique et les modes de ligne de commande.
Ce lien explique cela dans une certaine mesure.
$stop - When Verilog encounters a $stop, it pauses as if you sent a Ctrl-C.
$finish - Verilog exits as if you sent Ctrl-D when it encounters $finish.
Tiré de la page 15 de cette introduction PDF.
à votre santé
$finish;
Finishes a simulation and exits the simulation process.
$stop;
Halts a simulation and enters an interactive debug mode.
$ stop - Met la simulation en pause afin que vous puissiez la reprendre en utilisant la commande fg sous linux. Dans ce cas, lincense ne sera pas publié et le processus ne sera pas non plus tué, consommant de la mémoire.
$ finish - La simulation est terminée, la libération de la licence et la suppression du processus seront alors effectuées.
J'utilise l'interface graphique de Modelsim. Lorsque j'ai une instruction $ stop en simulation, c'est comme si je cliquais sur le bouton stop en haut de l'interface graphique lors d'une simulation. Cependant, si j'ai une instruction $ finish, l'interface graphique affichera une invite de sortie me demandant si je veux quitter complètement Modelim.
$stop
: arrêt non souhaité de la simulation. Toutes les activités du système sont suspendues .$finish
: Utilisé pour soulager le compilateur.
Une bonne analogie serait que $finish
équivaut à éteindre votre ordinateur et $stop
équivaut à débrancher brusquement sa fiche.