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
+关注
关注
1610文章
21390浏览量
595429 -
python
+关注
关注
53文章
4701浏览量
83700
发布评论请先 登录
相关推荐
如何利用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)
评论