Signal/Port 绑定后,当信号发生变化时,敏感列表会导致 SC_METHOD 注册方法运行。
当我实现 SystemC 版本时,我遇到了这个警告 W571。老实说,我认为这个警告是正确的,因为没有活动。但是为什么在我认为应该有的地方没有活动是个问题。
第二次调用 sc_start() 时会出现问题;
我怀疑信号/端口之间的绑定处理不好。
SC_MODULE ( MyClass )
{
SC_CTOR(MyClass)
{
SC_METHOD(eventListener);
dont_initialize();
sensitive << m_event;
}
void eventListener()
{
Event* event = m_event.read();
...
delete event;
}
}
int sc_main (int argc, char* argv[])
{
sc_signal<Event*> eventSubject;
MyClass context("CONTEXT");
context.m_event(eventSubject); //bind signal to port, m_event is the port
while(true)
{
getline(cin, in);
...
eventSubject = new Event();
sc_start();
}
}