PYFPGA是用於供應商獨立FPGA開發的Python類。它允許使用一個項目文件,並通過編程執行綜合,實現,生成Bitstream和/或轉移到受支持的董事會。
工作流程以命令行為中心。
它對版本控制系統和連續集成(CI)很友好。
允許可重複性和可重複性。
與基於GUI的工作流相比,消耗的系統資源少。
使用根據您的需求量身定制的工作流創建自定義的FPGA工具!
警告: (2022-05-15)PYFPGA正在強烈重寫/簡化。大多數更改是內部的,但是API(
Project
類)將會改變。
如何使用pyfpga的最小示例:
從FPGA導入項目#指定後端工具和可選的項目namePrj = project('vivado','示例')#設置設備/partprj.set_part('XC7Z01010110-1-CLG400')#添加HDL源在ProjectPrj中。 add_files('location1/*。v')prj.add_files('location2/top.v')#objistally將約束文件添加到projectprj.add_files('location3/example.xdc')#設置頂級級單位name nameprj。 set_top ('top')#生成bitstream運行toolprj.generate()
現在,您可以閱讀文檔或在Subdir示例中找到更多示例。
Project class
實施的API提供:
必須指定該工具並指示可選項目名稱的構造函數
設置目標設備部分的方法,將多個HDL,約束和TCL文件添加到項目(如果可以指定可選的軟件包名稱)並指定頂級級別
指定不同輸出目錄或獲取一些項目配置的方法
生成botstream並將其傳輸到設備的方法(運行選定的EDA工具)
生成Bitstream時指定優化策略(區域,功率或速度)的能力
添加verilog包含的文件目錄的方法
指定通用/參數值的方法
在流量的最多六個不同部分中添加TCL命令的方法(尚未實現的功能的解決方法)
可選的日誌記錄功能,包括顯示刀具執行時間的顯示
PYFPGA是一個Python 3包,它是在Debian GNU/Linux上開發的。它應該在任何其他兼容的OS上運行,並且可能也可能在不同的操作系統上運行。如果您在非Posix系統上取得成功,請通過問題跟踪器告知我們。
可以使用ISE(xilinx),Vivado(xilinx),Quarts Prime(Intel/Altera),Libero-Soc(Microsemi)和/或Open---源工具。
GDHL( --synth
)允許將VHDL源轉換為VHDL 1993 Netlist。
Yosys允許合成Verilog和VHDL(使用ghdl-yosys-plugin
),並支持多種輸出格式:JSON,Verilog,Edif,Ett。
NextPNR可用於實施JSON NetLists。
此外,ISE和Vivado得到了實施Verilog網絡名單的支持。
傳輸Bitstreams和編程設備:
ISE(影響)可用於通過JTAG編程FPGA和/或記憶(BPI和SPI)。
Vivado,Quartus和Iceprog(用於ICE40設備的Icestorm)可用於編程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
。或者,使用--local
在家中安裝PYFPGA。
您可以通過git克隆或下載tarball/zipfile獲取存儲庫的副本:
git clone https://github.com/PyFPGA/pyfpga.git cd pyfpga
然後,使用repo根源的PIP:
pip install -e .
使用
-e
(--editable
),您的應用程序通過一種符號鏈接安裝到站點包中。這允許通過GIT進行更改或更改分支,而無需重新安裝包裝。