我正在使用GUI模拟器,他们似乎都做同样的事情。
答案 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)
$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。