2

当我在 VLAB 脚本中遇到断点时,我如何才能知道我是否已经导致精化完成?

我的脚本到达一个引发错误的语句:

Error: (E529) insert module failed: elaboration done

(导致这种情况的命令是vlab.instantiate("stim", "stim")

所以很明显,精心制作(对我来说)已经完成了。我需要以某种方式回到流程中并找出发生的地方 - 所以我需要某种方式来询问“详细说明是否完成?” 在我在脚本前面设置断点的地方。

4

1 回答 1

1

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 可从syscPython 包中获得,因此可以使用以下脚本来测试当前阶段是否处于精细化阶段:

import sysc
print "Is elaboration phase:", sysc.sc_get_status() == sysc.SC_ELABORATION
于 2014-04-01T05:03:54.687 回答