トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2012-1-25

ISimでのシミュレーションの時間

シミュレーション時間ではなくて,
シミュレーション"の"時間を測定したくなったので,
いろいろ考えてみたのだけど,
Tclスクリプトでやるのが簡単そうだ,という結論に.

proc test { } {
  restart;
  set a [clock clicks -milliseconds];
  run -all;
  set b [clock clicks -milliseconds];
  expr $b - $a;
}

と関数を定義して(実際には1行で入力した)おいて,

test

とすることで計測可能.
特定のシミュレーション時間ということであれば,

run 1000000ns;

とかにする.

Tclスクリプト,はじめて書いてみたのだけど,
[]が,シェルスクリプトの``だと思えば馴染めないこともない,かな.

ちなみに,GUIで波形表示だと,その分のオーバヘッドもあるので,
それがいやな場合は,
コマンドラインからシミュレーションを実行すればいい.
まず

restart;
set a [clock clicks -milliseconds];
run -all;
set b [clock clicks -milliseconds];
puts [expr $b - $a];
quit;

とかTclなスクリプトをtest.tclに保存して,
ISEのプロジェクトディレクトリで,

hoge.exe -tclbatch test.tcl

とか実行すればよい.