Custom Meta Tags - PYNQ Framework

Hero Banner

Main Title

PYNQ 框架和 Image

PYNQ Framework - LC

PYNQ是一个基于Linux和Ubuntu 以及 Python 语言的开源软件框架 (Framework),主要针对赛灵思(Xilinx) 的Zynq-7000 SoC 系列、Zynq UltraScale+ MPSoC 系列器件以及赛灵思的数据加速卡 Alveo 系列提供了一个基于Python语言的开发平台。PYNQ得名于“Python Productivity for Zynq”, 顾名思义,PYNQ是借助于目前最流行的Python编程语言简化了使用Zynq器件创建嵌入式应用的流程,是嵌入式开发者的福音。

借助PYNQ 平台,设计者可以使用Python这种高效的编程语言进行处理器的应用开发,提高开发效率;同时,基于PYNQ 中的Hardware Overlay and API以及Xilinx提供的xfOpenCV 硬件加速库,可以充分利用Zynq-7000、Zynq UltraScale+ MPSoC 中的可编程逻辑(Programmable Logic)资源,实现硬件加速。

在这里大家可以把PYNQ设想为一个多层堆栈,从底层的硬件系统延伸到操作系统层(包括用于与硬件接口的底层软件驱动程序和API),再到运行于操作系统之上的软件应用。PYNQ提供了一整套集成式软件与硬件组件,开发者不仅可以直接使用现有组件,而且也可以根据需要进行调整和扩展功能。总体而言,PYNQ加速了基于Zynq嵌入式系统的软硬件协同设计工作,提高了开发效率。

PYNQ支持哪些器件和开发板

PYNQ 主要支持赛灵思(Xilinx) 的Zynq-7000 SoC 系列、Zynq UltraScale+ MPSoC 系列器件以及Xilinx Alveo 系列加速卡。

  1. PYNQ 最早由Xilinx Research Lab 和Xilinx University Program (XUP)合作开发,目前,一些第三方也加入了PYNQ的开发,为一些基于Zynq-7000、Zynq UltraScale+ MPSoC 的通用开发板(如:Pynq-Z1, Pynq-Z2, Xilinx的ZCU104, ZCU111 以及安富利 Ultra96)生成PYNQ 镜像文件 (Image file) 并提供持续更新,设计者可以到www.pynq.io 下载这些开发板的最新PYNQ 镜像文件。
  2. 最新版本的PYNQ 也可以支持 Xilinx Alveo加速卡
  3. 用户也可以利用github.com/Xilinx/pynq 提供的Source Code和Build 步骤为自己设计的Zynq-7000、Zynq UltraScale+ MPSoC 电路板生成PYNQ Image.

PYNQ Image 基本构成

PYNQ Image主要由三部分组成,如下图:

  1. Ubuntu Root FS + Python 3.x Package + Jupyter Notebook
    1. Ubuntu根文件系统可以是Ubuntu 16.04或18.04
    2. Python 3.x 的解释器和Python库
    3. Jupyter Notebook 是一个基于Web 应用的交互式笔记本,可用于创建、运行Python代码
  2. 用Xilinx Petalinux工具生成的Linux Image,这部分与器件或开发板的配置有关
    1. 使用Xilinx Petalinux工具和流程基于Zynq-7000、Zynq UltraScale+ MPSoC的BSP 生成Linux Image (该流程适用于通用的开发板,开发板一般会提供完整的BSP)
    2. 也可以使用从赛灵思开发工具Vivado 导出的.hdf 先产生BSP,再生成Linux Image (该流程适用于用户设计的开发板,不需要设计者提供BSP,直接使用Vivado工程导出的.hdf文件)
  3. Xilinx 提供的 PYNQ Python Module and Class
    1. Hardware Overlay API
    2. 针对外设和PS-PL接口的Library,如GPIO, DMA, Interrupt …

Infographic of components to put together for Xilinx PYNQ

运行PYNQ Image

大家可以从www.pynq.io 下载开发板的PYNQ Image 或者自己生成Pynq Image之后,该Image是一个磁盘镜像文件(.iso),使用烧录工具(如Win32 Disk Imager或Etcher)将该.iso 文件烧录到SD卡,设置SD卡启动模式。

PYNQ Image运行之后,相当于启动了一个图形化界面的Desktop Linux (Ubuntu),上面运行Jupyter Notebook这个应用程序,利用Jupyter Notebook 以及打包在Image中的Python 解释器和Python Library,用户就可以使用Python语言编写、运行自己的应用程序和文档了。

Screenshot of log in screen for Jupyter

Screenshot of Jupyter dashboard

Xilinx PYNQ - RRD SHARED

Xilinx PYNQ

PYNQ 是 Xilinx 发起的一个开源项目

了解详情

Lets talk RRD - SHARED

Let's Talk

请联系我们安富利的赛灵思团队去找到适合的方案

了解详情

References