スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SystemVerilog DPI-Cを書いてみた。

SystemVerilog にて、Direct Programming Interface "C言語"(DPI-C)があります。

細かい説明などは「All of SystemVerilog」にて。
今回はその"DPI-C"を使った場合にシミュレーション速度はどうなるか?

シミュレータにもよりますが、異なる言語間はシミュレーションを劣化させる結果をもたらす場合もあります。SystemC-Verilogなどの環境だった場合にそういった思いをしたこともあります。

テスト環境は上記の関連サイトを参考にてみました。
レジスタに対してのWrite/Readを繰り返すもので、アドレスやレジスタをランダムで生成します。あとは気が済むまでシミュレーションをどS的まわすだけです。
① SystemVerilogのみの環境(SystemVerilog randmize())
② SystemVerilog+DPI-Cの環境(C RAND関数)
シミュレーション速度の結果ですが、
② < ①
という形でDPI-C(C関数にてランダム生成)したほうが20%ほど早かったです。DPI-Cはとても便利だと思います。
普及や「DPI-Cのあらたな可能性」については師匠にお任せですが、外部言語を使うことでシミュレーション速度が落ちるのでは?と疑問に思っている方にはこの結果は意外ではないでしょうか?

言語によって得意不得意があると思うので、効果的な使い分けが必要ではないかと思います。そうしないと逆に損してますよ!
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。