シグナル/ポートのバインド後、シグナルが変更されると、センシティブ リストによって SC_METHOD 登録メソッドが実行されます。
SystemC バージョンを実装しているときに、この警告 W571 に遭遇しました。正直なところ、活動がないのでこの警告は正しいと思います。しかし、あるべきだと思っていた活動がなぜないのかが問題です。
sc_start() を 2 回目に呼び出すと、問題が発生します。
シグナル/ポート間のバインディングが適切に処理されていないと思われます。
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();
}
}