PYFPGAは、ベンダーに依存しないFPGA開発のPythonクラスです。単一のプロジェクトファイルを使用し、合成、実装、ビットストリームの生成、および/またはサポートされたボードへの転送をプログラム的に実行できます。
ワークフローはコマンドライン中心です。
バージョン制御システムと継続的な統合(CI)とフレンドリーです。
再現性と再現性を可能にします。
GUIベースのワークフローよりも少ないシステムリソースを消費します。
ニーズに合わせたワークフローを使用して、カスタムFPGAツールを作成してください!
警告: (2022-05-15)PYFPGAは、強く書き直される/簡素化されています。ほとんどの変更は内部ですが、API(
Project
クラス)が変更されます。
pyfpgaの使用方法の最小限の例:
FPGAインポートプロジェクト#バックエンドツールとオプションのプロジェクトNAMEPRJ = Project( 'Vivado'、 'Example')を指定します。#デバイス/partprj.set_part( 'xc7z010-1-clg400')を設定します。 add_files( 'location1/*。v')prj.add_files( 'location2/top.v')#オプションでプロジェクトに制約ファイルを追加します( 'location3/example.xdc')#トップレベルのユニットnameprjを設定します。 set_top( 'top')#toolprj.generate()を実行するbitstreamを生成する
これで、ドキュメントを読んだり、サブディールの例でより多くの例を見つけることができます。
Project class
によって実装されたAPIは次のことを提供します。
ツールを指定する必要があり、オプションのプロジェクト名を示すことができるコンストラクター
ターゲットデバイスパーツを設定し、複数のHDL、制約、TCLファイルをプロジェクトに追加する方法(VHDLの場合、オプションのパッケージ名を指定できます)、トップレベルを指定する
別の出力ディレクトリを指定する方法、またはプロジェクトの構成を取得する方法
ビットストリームを生成してデバイスに転送する方法(選択したEDAツールの実行)
ビットストリームが生成されたときに最適化戦略(エリア、電力、または速度)を指定する機能
Verilogを追加する方法には、ファイルディレクトリが含まれています
ジェネリック/パラメーター値を指定する方法
フローの最大6つの異なる部分にTCLコマンドを追加する方法(まだ実装されていない機能の回避策)
ツール実行時間の表示を含むオプションのロギング機能
Pyfpgaは、Debian Gnu/Linuxで開発されたPython 3パッケージです。他のPOSIX互換性のOSで、おそらく異なるOSで実行する必要があります。 POSIX以外のシステムで失敗の成功を達成した場合は、Issue Trackerを通じてお知らせください。
開発フロー全体(読み取りHDLおよび制約ソースからビットストリームの生産まで)は、ISE(xilinx)、vivado(xilinx)、quarts prime(intel/altera)、libero-soc(microsemi)、および/またはオープンで実行できます。ソースツール。
GDHL( --synth
)により、VHDLソースをVHDL 1993 NetListに変換できます。
Yosysは、VerilogとVHDL( ghdl-yosys-plugin
を使用)を合成することを許可し、JSON、Verilog、EDIFなどの複数の出力形式をサポートします。
NextPNRは、JSONネットリストの実装に使用できます。
また、ISEとVivadoは、Verilog Netlistsの実装にサポートされています。
ビットストリームとプログラミングデバイスの転送:
ISE(衝撃)は、JTAGを介してFPGAおよび/またはメモリ(BPIおよびSPI)のプログラミングに使用できます。
Vivado、Quartus、IceProg(Icestorm、ICE40デバイス用)は、FPGAのプログラミングに使用できます。
Libero-SOCおよびプログラミングECP5デバイス(PRJTrellis、OpenOCD)を使用したプログラミングはまだサポートされていません。
注:
オープンソースツールは、GHDL/Dockerプロジェクトのトラフコンテナ画像をサポートされているため、DockerまたはPodmanをインストールする必要があります。同じワークフローをCIサービスで使用できます。
ISE、Libero-SOC、Quartus Prime、Vivadoは、ターミナルから実行する準備ができている必要があります(設置され、よく構成されています)。
pyfpgaにはpython >=3.6
が必要です。今のところ、GitHubでホストされているGitリポジトリとしてのみ利用できます。 PIPでインストールできます。
pip install 'git+https://github.com/PyFPGA/pyfpga#egg=pyfpga'
GNU/Linuxでは、システムにPIPパッケージをインストールするには
sudo
必要です。または、自宅にpyfpgaを設置するために--local
使用してください。
GitクローンまたはTarball/Zipfileのダウンロードを介してリポジトリのコピーを入手できます。
git clone https://github.com/PyFPGA/pyfpga.git cd pyfpga
次に、リポジトリのルートからPIPを使用します。
pip install -e .
-e
(--editable
)を使用すると、アプリケーションがSymlinkのようなサイトパッケージにインストールされます。これにより、パッケージを再インストールする必要なく、GITを介して変更を引いたり、ブランチを変更したりすることができます。