我正在阅读一些关于SystemC的教程,并提到我们不能在SC_METHOD中等待,但它没有解释原因。
答案 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意味着执行完成而不会延迟或丢失上下文。