Applistar

3. 3. 1 バジェット追加プログラムとは何をするプログラムですか

TOP > 3 高速協調検証システム > 3. 3 高速協調検証システムの仕組みを覗いてみよう > 3. 3. 1 バジェット追加プログラムとは何をするプログラムですか
  3. 3. 1 バジェット追加プログラムとは何をするプログラムですか  

3. 3. 1. 1 バジェット追加プログラムの基本処理

ここで基本ブロックとはC 言語プログラムの中で分岐を持たないコードのかたまりをいいます。

これを以下のように、分岐が生じる枝ごとにターゲットマシンでの命令実行ステップ数を静的に解析し、 実行時間に相当するwait文を挿入します。

3. 3. 1. 2 wait文挿入のタイミングの制御

バジェット追加プログラムでwait文を入れる場合、 wait文を実際に挿入するタイミングを制御するオプションがあります。 これは SystemCでのシミュレーションを高速に実行するためです。

wait文はSystemC のカーネルでコンテキスト・スイッチを起こすため、 頻繁にwait文を実行すると、シミュレーション速度の低下を招きます。 そのため、動的に実行される命令数を積算し、 命令数がある閾値を超えたら、実際のwait文を挿入する、というオプション「積算閾値モード」があります。

また、RTOS のようにコンテキスト・スイッチを限定したコード領域のみで許す場合、 人手で、wait文の挿入個所を制御できます。 その場合、「積算モード」で基本ブロックごとに命令実行数を積算しておきます。 コンテキスト・スイッチを許可する領域まできたとき、はじめて、これまで積算した命令数を考慮したwait文を発行し、積算した命令数をFlushします。

3. 3. 1. 3 バジェット追加プログラムのオプション設定

以下に、バジェット追加プログラムの処理オプションについて説明します。 詳しくは、「バジェット追加ツール for ARM (評価版) 使用手引書」 を参照してください。

「ターゲットプロセッサ名」

登録されている選択肢からプロセッサ名を選択します。選択肢に応じて、プロセッサ詳細設定の各項目の有効・無効状態が切り替わります。

「モジュール名の設定」

SystemCソースコードにおけるモジュール名を指定します。デフォルト値は「TimedModule」です。

「遅延挿入しない関数列の設定」

必要に応じて設定します。何も指定しないことも可能です。複数指定する場合はカンマ区切りで記述します。

「追加コマンドラインオプションの設定」

必要に応じてオプションを追加します。ここで指定できるオプションには次のものがあります。

「-I <インクルードパス>」:

Cソースをコンパイルするときに指定するインクルードファイルパスを追加指定します。

「wait挿入モードの設定」

「非積算モード」「積算モード」「積算閾値モード」の中から一つを選択します。このとき、「積算閾値モード」を選択したときのみ、閾値が選択可能になります。

「閾値の設定」

選択可能なときのみ書き換えることが可能になります。デフォルト値は1000です。

「キャッシュモデルの設定」

「使用しない」「使用する」のうち、どちらかを選択します。

  3. 3. 1 バジェット追加プログラムとは何をするプログラムですか  
TOP > 3 高速協調検証システム > 3. 3 高速協調検証システムの仕組みを覗いてみよう > 3. 3. 1 バジェット追加プログラムとは何をするプログラムですか