我正在阅读有关 SystemC 的一些教程,并提到我们不能在 SC_METHOD 中等待,它没有解释原因。
问问题
4167 次
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 回答