什么';Verilog中$stop和$finish的区别是什么?

什么';Verilog中$stop和$finish的区别是什么?,verilog,Verilog,我使用的是GUI模拟器,它们似乎都做了相同的事情。这在某种程度上解释了这一点 $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. 摘自本PDF第15页 cheers$finish退出模拟并将控制权交还给操作系统 $stop暂停模拟并将模拟器置于交互

我使用的是GUI模拟器,它们似乎都做了相同的事情。

这在某种程度上解释了这一点

$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.
摘自本PDF第15页


cheers

$finish
退出模拟并将控制权交还给操作系统

$stop
暂停模拟并将模拟器置于交互模式。

a:

根据IEEE Verilog标准(1364-2005,第17.4节,“模拟控制系统任务”),
$stop
应暂停模拟,
$finish
应使模拟器退出并将控制权传递回主机操作系统。当然,不同的模拟器可能以细微不同的方式实现规范,并且并非所有模拟器都100%符合规范


您的模拟器的文档可能会对其行为提供更详细的描述,尤其是GUI与命令行模式。

$stop
:模拟的意外终止。所有系统活动都已暂停。
$finish
:用于释放编译器


很好的类比是,
$finish
就像关闭计算机,
$stop
就像突然拔掉插头。

$stop-暂停模拟,因此可以在linux中使用fg命令恢复模拟。在这种情况下,lincense不会被释放,进程也不会被终止,从而消耗内存


$finish-模拟已完成,因此将完成许可证的发布和终止进程。

我正在使用Modelsim GUI。当我在模拟中使用$stop语句时,就好像我在模拟运行期间点击GUI顶部的stop按钮一样。但是,如果我有$finish语句,GUI将显示一个退出提示,询问我是否要完全退出modelsim。

Ctrl-D被视为文件结束,例如,当程序从标准输入而不是按Ctrl-D读取文件时,程序推断输入结束。标准Verilog没有像C的
scanf
那样的例程来读取标准输入,那么为什么Ctrl-D会对Verilog模拟运行产生任何影响呢?
exit
是另一个相关命令。在没有gui的情况下运行Modelsim时,退出模拟非常有用。例如:
vsim-c-keepstdout-do“do simulate\u my\u design.tcl”
$finish;
    Finishes a simulation and exits the simulation process.
$stop;
    Halts a simulation and enters an interactive debug mode.