win7 64bitマシンで動かしてみた

↓動いたと思ったのですが、今やると動きませんでした(再現性がない)。ということは、実現できる手順があるということです。調べます。

modelsim ase 10.5d(aseと書いていますが、今はIntelバージョンなので厳密にはちょっと違います…)をwin7 64bitマシンに入れてuvm-1.2を動かせたのでメモを書いておこうと思います。

環境:

  • win7 64bit 4GBメモリ(VAIO)
  • cygwin(32bit版にした)→ 64bit版だとmodelsim側でうまくいかないところがある
  • uvmはアクセレラからダウンロードしたピュアなuvm-1.2
  • ソースコードは、このサイトで説明に使っている10日で学ぼうの9日目のもの(コードは出してなくてすみません)

cygwinは、マシンが64bitなので64bitのを入れていました。しかし、UVMを使う際にどうしてもDPI-C絡みとかが外せない(defineで外そうとしても)ところがあって、困っていました。

ネットで「modelsim uvm」で検索すると、こちらのサイトがトップヒットするので見ていたんですが、以前ぼくがUVMを動かしたときはDPI-C周りをdefineで外していたけれど、このサイトでは逆に組み込む方向 でした。なるほど…そうするのか、と参考にしました。

そのあと、それでもUVMを動かせないので、うーん…と、試しにcygwin 32bit版を入れてみたんです。そして、64bit環境のワークをコピペして、workを作り直して…としたところ、動きました。動かした方を書い ておきます。

1.UVMクラスライブラリのコンパイル(コードはtcshです)

set dir = ../uvm-1.2/src

vlog -sv $dir/uvm_pkg.sv +incdir+$dir +define+UVM_NO_DEPRECATED $dir/dpi/uvm_dpi.cc -ccflags -DQUESTA

→ uvm-1.2は、自分でアクセレラから持ってきて展開するか、一応modelsimのセットの中にもある(/cygdrive/c/intelFPGA/17.1/modelsim_ase/verilog_src/uvm-1.2/src)ので、これを使ってもいいです。ただ し、modelsimのを使おうとすると、vlogが「そのファイル読めないよ」と行ってくるため、かといって簡単にchmodがかからなかったので、自分でuvm-1.2/まるごとコピペすれば使えました。

2.自分で用意したモデルやテストベンチをコンパイル

vlog -sv tb/tb_top.sv +incdir+./+model+./tb+../uvm-1.2/src

→ モデルなどのコードはご自分で用意してください。気が向いたら自作コードを公開するかも…しれません。

3.実行します

vsim -c tb_top +UVM_TESTNAME=$TEST -do "run -all;quit"

→ $TESTは何か適切なUVMのテストクラス名を書いてください。

実行すると、エラーカウントが1つあります。

# ** Error (suppressible): (vsim-19) Failed to access library 'mtiUvm' at "mtiUvm".

mtiUvmが何のために使うライブラリなのかわからないため、ライブラリを作って対応などができないのですが、suppressibleなので、まあ放置でもいいかなと(開発プロジェクトの方はMentorに問い合わせてくだ さい)。家で遊ぶ分には出ても気にしなくていいと思っています。