2009年1月2日金曜日

お金をかけずにSystemVerilogを使ってみる

設計に関して言えば、まだまだ他のツールチェインとの相互運用の面で問題が起きやすく、手放しに喜ぶ事のできないSystemVerilogですが、検証に関して言えば逆にVerilogなんかじゃやってられません。会社で使う分にはライセンスに困らないので普通にIUSとかQuestaを使えば良いのだけど、個人で使うとなると・・・わりと選択肢がないです。

フリーなVerilog処理系で有名なのはIcurus Verilog。ウェブなんかではSystemVerilogにも対応してるとか書いてるページもあるんですが、それは嘘。引数の互換性を持たせるためにVerilogのバージョンを指定できるようになってますが、パーザは引数を見ずに、全てのモードで同じ動作をします。

という事で商用の評価版として重宝しているのがModelSim。ModelSim Xilinx Edition-III Starterが制限付きながらも利用できます。Windows版しか利用できないのが残念ですが・・・。あくまでインストールしたコンソール端末だけで利用せよ、との意図で、リモートデスクトップからログインしているとライセンス違反で起動できません。そうなると、Cygwinを入れてsshdを立てておき、sloginしてコマンドを叩く、って使い方をするしかありません。もちろんちょっとした試験にはこれで十分なんですが、波形を表示しようとするとちょっと面倒。wlfをvcdに変換してscpしたり、gtkwaveを使ったり。あるいはVNCを使うのもありですが。。。もう少しなんとかならんかなぁ、って事でLinux+wineにインストールしてみました。って事で、以下書きメモです。

  1. Configure Wineのアプリケーション設定でWindowsのバージョンを「Windows 98」に設定。
  2. Configure Wineのドライブ設定でCドライブの詳細設定を選びシリアルを適当に設定(8桁の[0-9A-F]です)。
  3. インストーラから標準インストール(mxe_3_6.3c/setup.exeを使いました)。
  4. ライセンス申請
    • インストーラからの流れでうまくいかない場合、Modeltech_xe_starter/lic_request.txtの6行目に書かれているURLを叩けばライセンス申請に入れる
    • lic_request.txtで最後から2番目の行に「Disk Serial Number」の行がなければシリアルの取得に失敗してるので、上記のURLのQueryにも「ds=xxxxxxxx」(xxxxxxxxは2で設定したシリアル番号)を追加してやる必要あり。
こんな感じでうまく動いてそうです。あとはvlib.exe、vlog.exe、vsim.exeあたりに

--- /usr/local/bin/vlib ---
#!/bin/sh
exec wine $HOME/.wine/drive_c/Modeltech_xe_starter/win32xoem/vlog.exe $*
------------
こんな感じのラッパーを用意してやれば、ほぼLinux版のつもりで使えそうです。とりあえずovm-2.0.1のexample/tlm/tlm_fifoが動くのは確認しました。

そんなこんなで、近々OVMあたりも紹介したいなぁ、と思ってます。

追記(2009/1/4):バージョン設定についてはmodelsim.exe、vsim.exe、vish.exeあたりを個別に行っておけば、Default Settingsは変えずにOKっぽいです。

0 件のコメント: