シミュレーション
polyphony
2019-3-12 23:35 JST

Polyphony: テストベンチの合成とシミュレータでの実行

テストベンチを追加したfact.pyを合成します。先ほどと同様にpolyphonyを実行します。

$ ./polyphony -o fact fact.py

先ほどと同様にfact.vが出力され、今度はさらにtest.vも出力されるはずです。テストベンチは、メインのモジュールとは異なるファイルに出力されます。ファイル名は自動的にテストベンチの関数名になります。

シミュレータでHDLの動作を確認

出力されたファイルをVerilogシミュレータのIcarus Verilog(iverilog)で確認してみます。

$ iverilog -o fact_sim -s test test.v fact.v
$ .fact_sim
       0:fact_0_IN0=       x, fact_0_OUT0=       x
      10:fact_0_IN0=       x, fact_0_OUT0=       0
     110:fact_0_IN0=       0, fact_0_OUT0=       0
     160:fact_0_IN0=       0, fact_0_OUT0=       1
     200:fact_0_IN0=       1, fact_0_OUT0=       1
     330:fact_0_IN0=       2, fact_0_OUT0=       1
     460:fact_0_IN0=       2, fact_0_OUT0=       2
     500:fact_0_IN0=       3, fact_0_OUT0=       2
     670:fact_0_IN0=       3, fact_0_OUT0=       6
     710:fact_0_IN0=       4, fact_0_OUT0=       6
     920:fact_0_IN0=       4, fact_0_OUT0=      24
     960:fact_0_IN0=       5, fact_0_OUT0=      24
    1210:fact_0_IN0=       5, fact_0_OUT0=     120