ホーム  |  製品 & サービス   |  サポート & ダウンロード  |  開発者向け情報  |  お問い合わせ
Polyphony: Pythonによる高位合成

PolyphonyはPythonベースの高位合成ツールです。Polyphonyを使えば、Pythonのソースコードが特別な変更なしに合成可能なHDLに変換されます(※1)。Polyphonyが出力したHDLをベンダの合成ツールに渡せば、それがそのままハードウェアの回路になります。もうHDLで複雑な状態マシンを書く必要はありません。

FPGAのプログラミングをもっと身近に

Pythonは可読性に優れ、学習が容易な汎用のプログラミング言語です。Pythonを使えば、VHDLやVerilogなどのHDLを使うよりも格段に簡単にハードウェアを作ることが可能です。また、Pythonはアルゴリズムを記述する言語としてとても優れた言語です。ハードウェア回路のソースをPythonで書くことで、RTLの煩雑な処理をできるだけ自動化し、アルゴリズムの設計に注力することができます。

その他のPythonベースのツールとの違い

実際のところ、Pythonを使ってハードウェアを記述できるような便利なツールは既に世の中にあります。Polyphonyとそれらとの主な違いは、Polyphonyが高位合成ツールであるということです。既存のツールはハードウェア定義を記述できますが、シミュレータ上でのみ動作するものであったり、特別なクラスライブラリを通してHDLの要素を追加するようなものであったりします。Polyphonyはこれらのツールとは異なり、Pythonのプログラムとして自然に書かれたコードそのものを解析し、実際のハードウェアとして動作可能なHDLに変換します。

オープンソース

Polyphonyは、市販の高価な高位合成ツールとは違い無料で使用することができます。さらに、オープンソースとして実装を全て公開予定です。また、現在のところ外部のツールやパッケージに依存することがないため、追加のインストールなしにすぐに使い始めることができます。

※1:現在はPythonの一部の基本的な構文要素のみに対応しています。合成可能な構文や組み込み関数は、今後順次増やしていく予定です。