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

时间:2010-03-07 04:00:55

标签: verilog

我正在使用GUI模拟器,他们似乎都做同样的事情。

7 个答案:

答案 0 :(得分:29)

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

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

答案 1 :(得分:8)

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

模拟器的文档可能会提供有关其行为的更详细说明,尤其是在GUI与命令行模式方面。

答案 2 :(得分:2)

link在某种程度上解释了它。

$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.

摘自本indtroduction PDF的第15页。

欢呼声

答案 3 :(得分:2)

A quick reference link

$finish;
    Finishes a simulation and exits the simulation process.
$stop;
    Halts a simulation and enters an interactive debug mode.

答案 4 :(得分:2)

$stop:不希望终止模拟。所有系统活动都被暂停。 $finish:用于缓解编译器。

很好的比喻$finish就像关闭你的计算机一样,$stop就像突然拔掉插头一样。

答案 5 :(得分:2)

$ stop - 暂停模拟,这样你就可以在linux中使用fg命令恢复它。在这种情况下,lincense不会被释放,进程也不会被杀死,消耗内存。

$ finish - 模拟完成,因此将完成许可证的发布并终止该过程。

答案 6 :(得分:2)

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