2

シミュレーション終了時を報告したいと思います。end_of_simulationルーチンを使用し、ルーチンでsc_timestampを実行するだけだと思いました。

問題は、カーネルがend_of_simulationの前に終了し、偽のタイムスタンプを取得することです。

シミュレーションから私を引き離すのは、すべてのスレッドがイベントを待機しているため、スレッドを使用してこれを判断することはできません。タイムスタンプを保存できる「マスタースレッド」はありません。

何かご意見は?

4

3 に答える 3

1

次のようなものを使用できます。

cout << "Start of simulation is " << sc_time_stamp() << endl;
sc_start (); // sc_start (-1);
cout << "End of simulation is " << sc_time_stamp() << endl;

それが役に立てば幸い。

于 2013-07-24T17:52:09.633 に答える
0

あなたの質問を理解できるかどうかわかりません。

シミュレーションを実行するには、合計でかかる時間を規定する必要があります。sc_start(total_time、SC_NS)。

total_timeは、シミュレーションの最後の時間です。

于 2012-05-30T14:44:58.927 に答える
0

これは少しハックなようですが、待機前や時間のかかる関数から戻る前など、シムの終わりになる可能性のあるコードの重要なポイントでsc_time_stamp()を使用してグローバルタイム変数を更新できますか?次に、sc_start()から戻った後、気になるコードから最後の時間の値を取得します。

于 2012-07-21T01:27:21.010 に答える