電気回路/HDL/ISim 事始め のバックアップ(No.1)

更新


公開メモ

Xilinx が ModelSim の無償版&廉価版の配布を中止との情報

http://marsee101.blog19.fc2.com/blog-entry-1570.html

Xilinx 向けには ModelSim は敷居の高い環境になってしまいました。

そこで、ISim を使ってみることに。

これまでの感触では、ModelSim が使えないのはかなり致命的な 気がしているのですが、食わず嫌いだったと判明することを期待しながら。。。

コンパイルとGUIの起動

テストベンチ synchronize_test.v に対して ISE から Simulate Behavioral Model をダブルクリックしたところ、起動プロセスは

  1. まず必要な *.v をコンパイルして synchronize_test_isim_beh.exe というシミュレーション用 実行ファイルを生成
    fuse -intstyle ise                       \
         -incremental                        \
         -d simulation                       \
         -lib unisims_ver                    \
         -lib unimacro_ver                   \
         -lib xilinxcorelib_ver              \
         -o synchronize_test_isim_beh.exe    \
         -prj synchronize_test_beh.prj       \
         work.synchronize_test work.glbl
  2. そして、ISim シミュレーションエンジン GUI を起動
    synchronize_test_isim_beh.exe            \
         -gui                                \
         -tclbatch isim.cmd                  \
         -view sdram_arbiter_test.wcfg       \
         -wdb synchronize_test_isim_beh.wdb
    
    あれ?
    ということは、ソースを修正したら GUI を一旦落とさないとリコンパイルできない???

コマンドのエイリアス

一連のコマンドを連続して実行したいような場合、
例えば、シミュレーションをリスタートして 10 us 走らせるなら、 Console ウィンドウで

ISim> restart
ISim> run 10us

と打てばいいのですが、こういった処理を毎回手で打つのは面倒なので、 ModelSim では alias というコマンドを使って、rs という新しいコマンドを作って、 rs と2文字打つだけで複雑なコマンドを実行することができました。

ModelSim> alias rs "restart -force; run 10us"
ModelSim> rs

その他にも、例えば

ModelSim> alias re "do {synchronize_test.fdo}"
ModelSim> alias sv "write format wave trimac_tx_test_wave.fdo"
ModelSim> alias q "quit"

としておけば、re だけでソースのリコンパイル&再実行ができますし、 sv でウェーブウィンドウの設定を保存できました。

ISim のマニュアルで Alias の項を探したところ、あるにはあったのですが、 信じられないことに、

ISim> set rs "restart; run 10us"
ISim> eval $rs

というのが、対応する方法だそうです。

やっているのは、rs という名前の文字列変数に値を入れておいて、 それを eval (evaluate) しているわけですが、、、
これではタイプ量が減らない(泣

あんまりうれしくないです。


Counter: 19514 (from 2010/06/03), today: 3, yesterday: 2