当我在VLAB脚本中碰到一个断点时,我如何才能确定我是否已经导致精化工作完成?
我的脚本到达一个引发错误的语句:
Error: (E529) insert module failed: elaboration done
(导致这种情况的命令是vlab.instantiate("stim", "stim"))
所以很明显,对我来说,精益求精已经完成了。我需要以某种方式回到这个过程中,找出它是在哪里发生的--所以我需要用某种方式来问“精化完成了吗?”在脚本前面设置断点的地方。
发布于 2014-04-01 05:03:54
SystemC提供了以下函数来查询精化或模拟的当前阶段。
sc_status sc_get_status();它返回SC_ELABORATION、SC_BEFORE_END_OF_ELABORATION、SC_END_OF_ELABORATION、SC_START_OF_SIMULATION、SC_RUNNING、SC_PAUSED、SC_STOPPED或SC_END_OF_SIMULATION。
有关更多细节,请参阅SystemC语言参考手册中的4.5.8节。请注意,此函数仅在最新版本的标准IEEE标准1666-2011中添加。
在VLAB中,SystemC API可以从sysc包中获得,因此可以使用以下脚本来测试当前阶段是否处于精化阶段:
import sysc
print "Is elaboration phase:", sysc.sc_get_status() == sysc.SC_ELABORATIONhttps://stackoverflow.com/questions/22776869
复制相似问题