CVC 実行方法と処理速度 ― 2015年08月27日 18:38
CVC をコンパイルしたので、これを使ってシミュレーションしてみる。
CVC には、インタープリターモードとコンパイルモードがある。
インタープリターモード(+interp)
・すぐに実行
・途中で止められる
・止まった時点でのレジスタ値、メモリ値などが見られる
・続きから実行できる
コンパイルモード
・コンパイルして実行ファイルが出来る→実行
・途中で止めたら終わり
それぞれ上のような特徴があるが、最も大きな違いは実行速度にある。
コンパイルして実行する場合、インタープリターモードで実行するよりも10倍速い。冗談ではなく、10倍速い。
コンパイルにかかる時間もわずかなので、インタープリターモードを使う意味はほとんどないと言えよう。内部のレジスタ値はVCDファイルにダンプしておけば見ることが出来るし。
試しにちょっと実行とか、ちょっと文法チェックなどの場合くらいしか使い道がないだろう。もちろん、時間のかからないシミュレーションであれば、インタープリターモードだけでも十分ではあるが。
主要な実行フラグを示しておく
詳細は、 http://www.tachyon-da.com/cvc-resources/ の Quick Start Guide を参照のこと。
試しにシミュレーションにかかった時間を比較してみる。
詳しくは明かせないが、ちょっとしたIP
Verilator にちょっと古いベンチマークがあるが、だいたい合っている感じ。
http://www.veripool.org/wiki/veripool/Verilog_Simulator_Benchmarks
以上。
CVC には、インタープリターモードとコンパイルモードがある。
インタープリターモード(+interp)
・すぐに実行
・途中で止められる
・止まった時点でのレジスタ値、メモリ値などが見られる
・続きから実行できる
コンパイルモード
・コンパイルして実行ファイルが出来る→実行
・途中で止めたら終わり
それぞれ上のような特徴があるが、最も大きな違いは実行速度にある。
コンパイルして実行する場合、インタープリターモードで実行するよりも10倍速い。冗談ではなく、10倍速い。
コンパイルにかかる時間もわずかなので、インタープリターモードを使う意味はほとんどないと言えよう。内部のレジスタ値はVCDファイルにダンプしておけば見ることが出来るし。
試しにちょっと実行とか、ちょっと文法チェックなどの場合くらいしか使い道がないだろう。もちろん、時間のかからないシミュレーションであれば、インタープリターモードだけでも十分ではあるが。
主要な実行フラグを示しておく
| 基本型 | cvc64 mytest.v | mytest.v をコンパイルし、cvcsimという実行ファイルが出来る | |
| -f | 入力ファイルリスト指定 | cvc64 -f mylist.txt | Verilogファイルを列挙したテキストファイルを使用 |
| -o | 出力ファイル名指定 | cvc64 -o mytest mytest.v | この場合、mytest という実行ファイルが出来る |
| -O | 最適化 | cvc64 -O mytest.v | コンパイル時間が伸びるが実行は速くなる |
| +2state | 2値処理 | cvc64 +2state mytest.v | 内部処理を4値(0/1/x/z)ではなく2値(0/1)で行う 若干速くなる |
| +nbaopt | ノンブロッキング最適化 | cvc64 +nbaopt mytest.v | ノンブロッキング代入直前の遅延を無視して高速化 |
| +dumpvars | VCD出力 | cvc64 +dumpvars mytest.v | 内部ノードをVCDファイルに出力 Verilogファイルの変更は不要 |
詳細は、 http://www.tachyon-da.com/cvc-resources/ の Quick Start Guide を参照のこと。
試しにシミュレーションにかかった時間を比較してみる。
詳しくは明かせないが、ちょっとしたIP
| mode | flag | 分:秒 |
| インタープリタモード | +interp | 40:29 |
| コンパイルモード | 3:36 | |
| コンパイルモード | -O | 3:33 |
| コンパイルモード | +2state | 3:03 |
| (参考)Cadence IES | 1:15 |
Verilator にちょっと古いベンチマークがあるが、だいたい合っている感じ。
http://www.veripool.org/wiki/veripool/Verilog_Simulator_Benchmarks
以上。
コメント
トラックバック
このエントリのトラックバックURL: http://marusu.asablo.jp/blog/2015/08/27/7752694/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。