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

更新

[[公開メモ]]

* Xilinx が ModelSim の無償版&廉価版の配布を中止との情報 [#ta34907b]

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

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

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

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

* コンパイルとGUIの起動 [#qb943146]

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

+ まず必要な *.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
+ そして、ISim シミュレーションエンジン GUI を起動
 synchronize_test_isim_beh.exe            \
      -gui                                \
      -tclbatch isim.cmd                  \
      -view sdram_arbiter_test.wcfg       \
      -wdb synchronize_test_isim_beh.wdb
 
あれ?~
ということは、&COLOR(red){ソースを修正したら GUI を一旦落とさないとリコンパイルできない???};~

* コマンドのエイリアス [#t3d16d4a]

一連のコマンドを連続して実行したいような場合、~
例えば、シミュレーションをリスタートして 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: 19518 (from 2010/06/03), today: 1, yesterday: 1