我们要出PYNQ开发板了
1 PYNQ是什么
PYNQ全称为Python Productivity for Zynq,即在原有Zynq架构的基础上,添加了对python的支持。Zynq是赛灵思公司推出的行业第一个可扩展处理平台系列,在芯片中集成了ARM处理器和FPGA可编程逻辑器件,旨在为视频监视、汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理与计算性能水平。PYNQ希望能够借助python语言本身易用易学、扩展库多而全、社区活跃贡献度高等特性,有效降低Zynq嵌入式系统的开发门槛。PYNQ将ARM处理器与FPGA器件的底层交互逻辑完全封装起来,顶层封装使用python,只需要import对应的模块名称即可导入对应的硬件模块即可进行底层到上层数据的交互或者为系统提供硬件加速。
简单来说,它直接对硬件底层进行的封装,用户借助封装库文件可以直接使用python语言操作硬件I/O管脚等功能。对于软件工程师来说他们不需要再使用复杂繁琐的开发工具,使用基于浏览器的Jupyter Notebook工具就可以直接编辑工程代码,系统架构师借助PYNQ可以设计更清晰的软件接口和系统架构,对于硬件工程师而言他们设计的硬件平台能够让更多不同开发背景的人使用。
框架分布介绍:
PYNQ开发板是PYNQ开源框架的硬件平台。 在ARM A9 CPU上运行的软件包括:
.载有Jupyter Notebooks设计环境的网络服务器;
.IPython内核和程序包;
.Linux;
.FPGA的基本硬件库和API。
2PYNQ和ZYNQ对比
PYNQ = Python + ZYNQ——ZYNQ部分功能的Python化。
PYNQ优点:
1、Python用于ZYNQ开发,Python库和FPGA硬件库可以直接调用,极大加快开发进程、缩短开发周期、降低开发难度,更方便、快捷;
2、用PYNQ开发,当Python有更加有效的可用库时(如图像处理—OpenCV),其性能要比C/C++开发更强。
缺点:
目前,PYNQ还不支持任何高级的综合,也无法将Python应用直接移植到FPGA中,仅能调用已有库。
ZYNQ优点:一般基于C/C++开发,功能更全面、扩展性更强。
缺点:没有PYNQ方便快捷、易上手,缺少Python那些强大功能库的支持。
3 PYNQ能做什么
PYNQ的整个技术栈包含了python+linux+ARM+FPGA,提供了无限种扩展的可能性,我们可以使用它来做很多
有意思的应用。在pynq.io的社区页面我们可以看到许多PYNQ社区开发的项目。
1、cv2PYNQ此Python包加速了PYNQ平台的OpenCV图像滤波功能。该库实现了一组特定的流行图像滤波和特征检测算法。耗时任务的计算在ZYNQ芯片的可编程逻辑(PL)中实现。cv2PYNQ还包括PYNQ基础项目的视频子系统。因此,HDMI输入和输出接口可用于您的应用程序。如果输入和输出缓冲区位于芯片的连续存储器中,则库将在16 ms内计算1080p灰度通道图像的每个滤波器。
2、Python on Zynq FPGA for Convolutional Neural Networks用于图片分类的开源框架
3、FGPU Demo using PYNQ on the Xilinx ZC706 FGPU is a soft GPU-like architecture for FPGAs. It can be programmed using OpenCL and customized according to application needs。
PYNQ社区应用案例:
同时官方提供很多的外部接口案例,还包括opencv案例:
文章的结尾特别感谢网友莫烦对本文1,3节内容的贡献。也希望广大网友积极参与留言投票。
领取专属 10元无门槛券
私享最新 技术干货