電気回路/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 をダブルクリックしたところ、起動プロセスは
- まず必要な *.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
あれ?
ということは、ソースを修正したら 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: 19817 (from 2010/06/03),
today: 1,
yesterday: 5