在SystemC中为什么不能等待SC_METHOD?

时间:2013-05-28 13:29:40

标签: systemc

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

2 个答案:

答案 0 :(得分:7)

这是因为SC_METHOD does not have its own thread of execution。每次触发SC_METHOD敏感度列表上的事件时,SC_METHOD的代码(理想情况下)完全执行。换句话说,在wait()中调用SC_METHOD会冻结模拟本身。

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

答案 1 :(得分:2)

这是该语言的一个特色。与SC_THREAD不同,SC_METHOD意味着执行完成而不会延迟或丢失上下文。