「Icarus Verilog」+「IVI」の使い勝手を試す ――波形表示GUI付きのフリー・シミュレータ
● 課題が残るASICライブラリへの対応
Verilog HDLのユーザはFPGAよりもASICの設計に関係している方が多いと思います.ASIC開発で使用するには,ASICベンダが供給するASICライブラリをシミュレーションできなければなりません.
多くのASICライブラリはVerilog HDLのUDP(ユーザ定義プリミティブ)で記述されています.また,遅延条件はspecifyブロック内のspecparameterで記述されています.Icarus VerilogでASICの開発を行うため にはこのASICライブラリが使えなければなりません.specifyブロックはIcarus Verilogでサポートされているようなので,シミュレータとしての機能には問題はないでしょう.ただし,Icarus VerilogをASIC開発に使用するには,現在のところ二つの問題点があります.
一つは,ASICベンダがライブラリのソース・コードを公開していないことです.Icarus Verilogはライブラリのソース・コードがないとシミュレーションできないのです.もう一つは,SDFのバック・アノテーションにまだバグがあり,完全に動作しないことです.SDFのバック・アノテーションはVerilog 2001からシステム関数$sdf_back anoteとして定義されており,Icarus Verilogではこの$sdf_backanoteをサポートすることによってSDFのバック・アノテーションを実現しようとしています.これは,現在プラグインとして提供されている状態で,まだソース・コードの中に組み込まれていないようです注10.
この問題はIcarus Verilogの改良を待つほかはありませんが,順次対応されるようです.ただ,ここにある記述を読む限り,現時点では使いものにならないようです.もちろん,遅延を問題にしなければシミュレーションはできるようですが,それではあまりネットリストでシミュレーションする意味がないでしょう.
注10;http://icarus.com/eda/verilog/plug-ins.htmlの「SDF Support」を参照のこと.