Applistar

5. 3. 4 sc_start

TOP > 5 SystemC入門 > 5. 3 時間 > 5. 3. 4 sc_start
  5. 3. 4 sc_start  

5. 3. 4 sc_start

シミュレーションの実行開始を指定する時に sc_start() を使います。

sc_start() は sc_clock.h http://www.iro.umontreal.ca/~chareslu/systemc-2.0.1/sc__clock_8h-source.html#l00180 に呼出方法が書いてあるグローバル関数()です。 sc_start() には シミュレーション時間の指定の方法の違いによって 三通りの呼出方法があります。

呼出方法(その一)
sc_start (const sc_time& duration);

sc_time 型の変数で指定します

呼出方法(その二)
sc_start (double d_val, sc_time_unit d_tu);

時間の単位を使って、数値で指定します

呼出方法(その三)
sc_start (double d_val = -1);

現在の時間単位 (sc_get_default_time_unit) を使って指定します。

引数が省略された場合や、-1 の時、つまり次の形の時には、

sc_start ( );
sc_start ( -1 );

シミュレーションは止まらずに無限に実行されます。

三つの呼出方法に共通な説明

もしこれが、一番最初の呼出しの場合には 初期化と、時刻 0 の前の 1 デルタサイクルの実行 をします。

もし duration に指定された時間が SC_ZERO_TIME で、 最初の呼出しでない場合には、 シミュレーションは、現在の時刻で、1 デルタサイクル を実行します。

記述例
// 次のように r_time を指定したとします。
sc_time r_time( 1000, SC_NS);

// その上で上の指定を使って次のように記述します
sc_start(r_time);       // 上記指定の 1000 nSec 実行

// あるいは、次のような書き方もあります
sc_start(1000, SC_NS);  // 1000 nSec 実行
sc_start( 1000 );       // 時間単位 1000 の間実行
sc_start();             // 無限に実行
sc_start(-1);           // 同上
  5. 3. 4 sc_start  
TOP > 5 SystemC入門 > 5. 3 時間 > 5. 3. 4 sc_start