Applistar

5. 9. 3 next_trigger

TOP > 5 SystemC入門 > 5. 9 イべント > 5. 9. 3 next_trigger
  5. 9. 3 next_trigger  

5. 9. 3 next_trigger

next_trigger は SC_METHOD としたプロセスの中で、 次回の起動条件を設定します。 sensitive 文による設定が静的であるのに対し next_trigger は動的な設定と言えます。

複数の next_trigger 文が実行された場合には、最後に実行されたものだけが有効です。

引数無で実行された場合には、next_trigger の効果を取消します。 つまり、 sensitive で記述された元の静的起動条件(static sensitivity) が有効になります。

next_trigger の呼出方法は wait と良く似ています。それらを順に挙げます。

5. 9. 3. 1 "0" 時間後

1 デルタサイクル後に起動します。 この記述方法には例えば次のようにいくつかありますが、意味は同じです。

next_trigger( 0, SC_NS );
next_trigger( SC_ZERO_TIME );

sc_time t(0, SC_NS);         // sc_time 型の変数 t を宣言します
next_trigger( t );           // それを引数に使います。

5. 9. 3. 2 一定時間後

sc_time t(100, SC_NS);       // sc_time 型の変数 t を宣言します
next_trigger(t);             // 100 ns 後に起動
next_trigger(100, SC_NS);    // 直接書いても同じです

5. 9. 3. 3 単一イべント

sc_event e1;                 // イべント型のオブジェクトを宣言
next_trigger(e1);

5. 9. 3. 4 AND イべント

sc_event e1,e2,e3;           // イべント型のオブジェクトを宣言
next_trigger(e1 & e2 & e3);  // 三つ揃って起動

5. 9. 3. 5 OR イべント

sc_event e1,e2,e3;          // イべント型のオブジェクトを宣言
next_trigger(e1 | e2 | e3); // どれか一つで起動
  5. 9. 3 next_trigger  
TOP > 5 SystemC入門 > 5. 9 イべント > 5. 9. 3 next_trigger