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); // 同上
