2

我正在阅读有关 SystemC 的一些教程,并提到我们不能在 SC_METHOD 中等待,它没有解释原因。

4

2 回答 2

9

那是因为SC_METHOD 没有自己的执行线程。每次SC_METHOD触发敏感度列表中的事件时, SC_METHOD(理想情况下)会完全执行 's 代码。换句话说,调用wait()anSC_METHOD会冻结模拟本身。

相反,anSC_THREAD有自己的执行线程,并且它的活动通常在包含或不包含wait()语句的循环内建模,这会暂停线程的执行。每当触发(敏感度列表的)事件时,就会在先前发出的命令之后的命令处恢复执行wait()

于 2013-05-28T14:29:50.857 回答
2

它是语言的一个特点。与 SC_THREAD 不同,SC_METHOD 旨在执行完成而不会被延迟或丢失上下文。

于 2013-07-30T08:10:21.467 回答