新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

Polyphony で tests suite を試す。

Polyphony で tests suite を試す方法を記します。

Linux とか cygwin とか

まず Python 3 の環境 + pip3 の環境をいれてください。ubuntu なら apt-get でインストールできます。

> sudo apt-get install python3-pip

その後 pip3 でインストール

> sudo pip3 install polyphony
Successfully installed polyphony-0.2.2
> ls -l /usr/local/bin/polyphony
-rwxr-xr-x 1 root root 71  3月  1 16:16 /usr/local/bin/polyphony*

現時点でインストールされるのは 0.2.2 です。IO アクセスの機能が入っていないことに注意してください。(注意してもらえると助かります。)

無事インストールされれば /usr/local/bin に polyphony を見ることが出来るようになります。本来であればチュートリアル的なソースがあればよいのでしょうが、(すいません)現時点ではありません。github には polyphony の開発者用の tests suite があるのでそれを実行することが可能です。iverilog が必要になります。これも apt-get などでインストールしておいてください。

> git clone https://github.com/ktok07b6/polyphony
> cd polyphony
> ./suite.py

.tmp に verilog のファイルが生成されるはずです。

個々のファイルを実行する

個々のテストを実行することも可能です。

> ./simu.py tests/if/if01.py
    0:if01_0_in_x=   0, if01_0_in_y=   0, if01_0_out_0=   x
  110:if01_0_in_x=   0, if01_0_in_y=   1, if01_0_out_0=   x
  140:if01_0_in_x=   0, if01_0_in_y=   1, if01_0_out_0= 721
  150:if01_0_in_x=   1, if01_0_in_y=   1, if01_0_out_0= 721
  180:if01_0_in_x=   1, if01_0_in_y=   1, if01_0_out_0=   2
  190:if01_0_in_x=   0, if01_0_in_y=   2, if01_0_out_0=   2
  220:if01_0_in_x=   0, if01_0_in_y=   2, if01_0_out_0=1442

0.3.0 の新機能を使う

polyphony の 0.3.0 では IO が使えるようになりました。現時点ではテスト的に入れている機能もあるので注意が必要です。

> git clone -b 0.3.0 https://github.com/ktok07b6/polyphony polyphony-0.3.0
> cd polyphony-0.3.0
> export PYTHONPATH=`pwd`
> ./simu.py tests/io/port01.py
    0:p01_in0=   0, p01_in_valid=0, p01_out0=   x, p01_out_valid=x, p01_start=x
   10:p01_in0=   0, p01_in_valid=0, p01_out0=   0, p01_out_valid=0, p01_start=0
  110:p01_in0=   0, p01_in_valid=0, p01_out0=   0, p01_out_valid=0, p01_start=1
wait_rising out_valid
  120:p01_in0=   2, p01_in_valid=1, p01_out0=   0, p01_out_valid=0, p01_start=1
  140:p01_in0=   2, p01_in_valid=1, p01_out0=   4, p01_out_valid=0, p01_start=1
  150:p01_in0=   2, p01_in_valid=1, p01_out0=   4, p01_out_valid=1, p01_start=1
4

tests/io に開発者のテスト用ソースがあります。興味のある方は確認してみてください。残念なことにまだチュートリアルがありません。チュートリアルはでき次第、公開します。

Windows10

Windows 用の Python3 をインストールすることで Windows でも(cygwin なしに)使うことが出来ます。

www.python.org

Python 3.6.0 あるいは 3.5.3 をインストールします。なお、Visual Studio 2013 から Python を使おうとすると 3.5.3 を使うことになるので(VS 2015 なら 3.6.0 が使えます。2017 は?不明)。
私の場合
C:\Users\<ユーザ名>\AppData\Local\Programs\Python\Python36
にインストールされました。

polyphony のインストールは pip3 を使用します(Python をインストールした後に)。pip3 は
C:\Users\<ユーザ名>\AppData\Local\Programs\Python\Python36\Scripts
の下にあるのでコマンド・プロンプトを開き pip3 install polyphony とします。Scripts の下に polyphony というファイルができていれば OK です。(exe ではないのはご容赦)

Python Tools for Visual Studio

これをインストールすると Visual Studio で(無料で使用可能な Express でも!!) Python の開発ができるようになります。Polyphony の開発は主に Visual Studio で行っています。Editor が便利なようです。

https://www.visualstudio.com/ja/vs/python/

PTVS を使用するには、あらかじめ Python をインストールすることになります。VS のバージョンと Python のバージョンには組み合わせがあるので(上記にも書きましたが)注意してください。