2014年11月20日木曜日

isimで自動テストを回してみた

ハードウェアでも自動テストをやると捗るので自動テストを回してみた。自動テストをやるのにいちいち波形を見る方法は取りづらいので、想定される出力と一致するかのみを判定して、一致しなければsimulationを止める方法で正誤判定を行った。まず、isimの実行ファイルをcliで作るのには依存関係を記述した,prjファイルが必要である。

下記のようなprjファイル(fadd_sim.prjとする)を作る。この例だと、fadd_simを作るのにwork libraryのfadd.vhd,fadd_sim.vhd,fadd_stage1.vhd,fadd_stage2.vhd,fadd_stage3.vhd,right_shift.vhd,ZLC.vhdが必要だという意味である。

次にMakefileを書く。これは普通に書けば良い。


fadd_isim: fadd_sim.prj fadd.vhd fadd_sim.vhd fadd_stage1.vhd fadd_stage2.vhd fadd_stage3.vhd right_shift.vhd ZLC.vhd
        fuse -incremental -prj $< -o $@ fadd_sim
test: fadd_isim
        ./run.sh

最後にtestを回す次のようなスクリプトを書く(run.shとする)。

これを実行すると次のようになる。

[==========] Running 2 tests
[ RUN      ] fadd_isim
[  PASSED  ] fadd_isim
[ RUN      ] i2f_isim
[  PASSED  ] i2f_isim
[==========]
[  PASSED  ] 2 tests.

0 件のコメント:

コメントを投稿