0

シグナル/ポートのバインド後、シグナルが変更されると、センシティブ リストによって 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();
    }
}
4

1 に答える 1