2013-01-31 53 views
1

我想要做的事情就像發送av事件從一個模塊到另一個模塊(如按下按鈕)。但正如我已經搜查似乎應該以其他方式完成,因爲我沒有找到任何標準的方式發送AV事件觸發/通知。將事件觸發器發送到SystemC中的模塊

我的簡單模型包含兩個模塊,一個發生器和一個控制器。我希望Generator能夠將Controller中的內部布爾值設置爲true(表示在傳感器上進行了註冊)。控制器有一個線程,如果自上次以來進行了註冊,則該線程會執行操作,然後將bool重置爲false(在5秒鐘的等待期間有效忽略並丟棄更多傳感器註冊)。

if(sensor_activity) 
{ 
    doStuff(); 
    wait(5, SC_SEC); 
    sensor_activity = 0; 
} 

我應該如何從發電機發送信號到控制器?

+0

一種解決方案可能是讓發電機發送脈衝讓我們說1毫秒來指示一個觸發器。但它感覺馬虎。 – Moberg

+0

把一個端口從一個模塊,並進入另一個然後加入他們... – Ifor

+0

如果我發送一百個1,它只會檢測到第一個。你是什​​麼意思我應該加入他們?什麼類型/端口/頻道? – Moberg

回答

0

使用緩衝區。即使你寫出已有的值,它也會觸發。

0

有很多方法可以完成。

  1. Systemc基本上是C++。所以生成器可以調用控制器的公共功能,它會通知內部事件,這將觸發所需的線程。
  2. 在控制器中創建一個對端口敏感的進程,該進程會通知一個內部事件,這將觸發所需的線程。從發生器寫入端口。
  3. 聲明全局sc_event變量。現在在生成器中通知它並使用它來觸發控制器中的線程。
+0

1:沒想到,可能是一個選項。 2:如何查看是否發生了寫入? 3:全局事件似乎不合適。 – Moberg

+0

對於#2,就像我說的那樣,使控制器中的進程對端口敏感。切換從發生器寫入端口的值,它會自動觸發該過程。 – zehawk

+0

所以我需要保持調用者的本地值,我切換併發送? – Moberg