【发布时间】:2019-04-22 16:40:37
【问题描述】:
我有一个 SystemC 测试台(用于 VHDL DUT,但现在无关紧要)。我希望能够使用特定的退出代码从 SC_CTHREAD 中终止测试。我对 SystemC 很陌生(我主要是 verilog/sv 人)。
我尝试过简单地包含“exit(error_code)”,但是虽然这会终止模拟,但最终退出代码来自我的 sc_main 的 return 语句。我想这是有道理的,因为“退出”可能会终止带有该退出代码的单独线程,而不是 sc_main 线程。
我曾尝试在退出前调用 sc_stop,但通常会收到关于调用纯虚拟方法的错误(我相信那是 end_of_simulation,我还没有定义......但这应该是可选的,对吧?)。
我认为影响进程退出代码的唯一方法是更改 sc_main 的 return 语句,但是当我的所有操作都发生在由某处对象的构造函数创建的 SC_THREAD 中时(如果不是很明显,我真的不明白 SystemC 是如何工作的很好,可能是因为有很多我们看不到的秘密类的隐藏操作,而不是模拟排序的 verilog,假设你理解阻塞/非阻塞)。
有没有办法让 SC_THREAD 将一些失败信息传递给 sc_main?
注意:我使用的是商业模拟工具,而不是纯 C++。那里可能存在实现错误。我正在尝试让我们的纯 C++ 编译运行,但它似乎在不久前就坏了(我不负责 SystemC 模型)。
【问题讨论】:
标签: systemc