使用脚本捕获vsim退出代码或当前模拟器状态

时间:2014-08-28 15:37:42

标签: tcl modelsim

我正在尝试编写一个Tcl脚本,该脚本在ModelSim中加载模拟,然后执行其他一些操作,因此需要确定模拟是否成功加载。但vsim命令似乎没有返回任何值,至少我可以弄清楚如何捕获。作为测试,我做了:

set rv [vsim $sim_name]

$rv始终为空,无论是否加载了SIM卡,因此使用catch无法正常工作。我目前的解决方法是在加载后尝试一些只在模拟上下文中工作并且 返回一个值,然后捕获它。例如:

vsim $sim_name
if {[catch {log *} ...

但这远非理想。有没有更好的方法来检测vsim是否成功运行?

1 个答案:

答案 0 :(得分:1)

为了在模拟启动时处理精化错误,您可以使用onElabError命令关联回调。您的回调可以设置您稍后检查的全局变量:

onElabError {global vsim_init_failure; set vsim_init_failure 1}
...
set vsim_init_failure 0
vsim $sim_name
if {$vsim_init_failure} ...