PYNQ Overlay 發布工具 PyPI
作為Python的官方第三方軟件存儲庫PyPI,目前已將超過222,000個項目收納囊中,PYNQ作為一款將Python開發語言與FPGA硬件設計完美銜接的產品,自然也是迫不及待地入住PyPI。點開PyPI主頁面搜索PYNQ,可以看到已經有邊緣PYNQ, Alveo板卡,resnet50等項目發布在其中,而你現在與所有這些FPGA工程之間只有一步之遙:pip install !!!
設計初衷--便捷與統一
PYNQ 應用同時包含了硬件設計和軟件驅動,比如PL bitstreams和Python包,用戶必須要同時部署這兩部分內容才能順利運行起來。在GitHub環境中,軟件包的發布比較容易,而硬件設計的bitstream 有時大于10M,發布較為困難,導致了FPGA應用的整體部署往往需要先配置硬件環境然后再裝軟件,顯得有些繁瑣。
特性介紹- pip install all
PyPI將打包硬件bitstreams和軟件程序,一并推送給用戶。用戶可以簡單地在PYNQ平臺上用pipinstall pynq來完成整體環境的部署,包含了FPGA overlays、Python軟件驅動以及Jupyter notebook。
案例介紹
構建Repository
- boards 包含所有硬件projects。用戶可以在里面找到自己對應的硬件平臺,然后build
- pynq_helloworld 這是主要的python package,里面還包含了jupyter notebook
- MANIFEST.in 里面就是需要包含在分發包中的文件,也就是需要把要查找的分發的包的路徑寫上
- pyproject.toml 這里指定了該項目build的最小系統需求
- setup.py 主要寫需要安裝的包的一些配置信息,比如包的版本號、作者、需要處理的包目錄等等
鏈接overlay
在用戶安裝的時候再通過項目里的notebook(例子中是PYNQ-HelloWorld/pynq_helloworld/notebooks/*/)中對應的*.link文件來下載,這是PYNQ Utils Module提供的一個工具(build_py,在setup.py中的cmd_class字段指定)自動完成的。當用戶安裝時會自動讀取當前平臺并找到對應的*.link來下載。
提取notebook
很簡單的一個小技巧,在setup.py中定義一個entry_points,該entry_points實際上就是在安裝時檢測一下當前的硬件平臺(是edge還是pcie),然后當用戶使用pynqget-notebooks pynq-helloworld -p .命令來提取對應notebook時就會拿取對應平臺的文件(命令中的pynq-helloworld實際上已經被替換成了pynq_helloworld.notebook.edge/pcie即項目中的notebook路徑)
打包上傳
- python3setup.py sdist會將項目打包成*.tar.gz并放在dist目錄下,開發者可以用python3-m pip install dist/*.tar.gz命令來嘗試安裝
- 打包安裝沒問題后只需上傳到PyPI就行了,實際上關鍵步驟只要兩步:python3 -m pip install --upgrade twine(更新) & python3 -m twine uploaddist/*(上傳)
- 上傳成功后應該能看到
- PyPI上的頁面
安裝PIP
只需要一條命令就可以愉快地安裝啦python3-m pip install pynq-helloworld
如果需要用jupyternotebook,進入系統的jupyter notebook home目錄并運行pynq get-notebooks pynq-helloworld -p .
編輯:hfy
-
FPGA
+關注
關注
1630文章
21798瀏覽量
606037 -
python
+關注
關注
56文章
4807瀏覽量
85040
發布評論請先 登錄
相關推薦
如何利用FPGA部分可重配置特性實現PYNQ-PRIO經典案例
![如何利用FPGA部分可重配置特性實現<b class='flag-5'>PYNQ</b>-PRIO經典案例](https://file.elecfans.com/web1/M00/C8/45/pIYBAF9t5SeALPY7AALKEp3iq5g998.png)
PYNQ項目——Pynq開發板啟動實驗
基于PYNQ-Z2開發板的PYNQ開源項目
![基于<b class='flag-5'>PYNQ</b>-Z2開發板的<b class='flag-5'>PYNQ</b>開源項目](https://file.elecfans.com/web1/M00/C7/F5/o4YBAF9uIoaALO1HAADqYbqo-sQ545.png)
【PYNQ-Z2申請】基于PYNQ的神經網絡自動駕駛小車
【PYNQ-Z2試用體驗】玩轉PYNQ系列:三、PYNQ數字圖像處理之圖像采集
【PYNQ-Z2試用體驗】基于PYNQ的神經網絡自動駕駛小車 - 項目規劃
PYNQ開源方案
【KV260視覺入門套件試用體驗】Zynq超強輔助-PYNQ配置,并使用XVC(Xilinx Virtual Cable)調試FPGA邏輯
【KV260視覺入門套件試用體驗】PYNQ初次上手體驗
PYNQ中MicroBlaze程序文件的加載過程
探究DSP-PYNQ新增對ZCU111和Ultra96的支持!
為什么需要Overlay網絡?Overlay網絡是如何形成的?Overlay網絡的應用有哪些?
![為什么需要<b class='flag-5'>Overlay</b>網絡?<b class='flag-5'>Overlay</b>網絡是如何形成的?<b class='flag-5'>Overlay</b>網絡的應用有哪些?](https://file1.elecfans.com/web2/M00/93/EC/wKgZomTi1BeADNWyAAAnVGEjV_A498.png)
評論