PYNQ 基于基于Zynq架构添加了对架构添加了对python的支持的支持
PYNQ介绍PYNQ全称为Python ProducTIvity for Zynq,即在原有Zynq架构的基础上,添加了对python的支持。
Zynq是赛灵思公司推出的行业个可扩展处理平台系列,在芯片中集成了ARM处理器和FPGA可编程逻辑器件,
旨在为视频监视、汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理与计算性能水平。PYNQ希
望能够借助python语言本身易用易学、扩展库多而全、社区活跃贡献度高等特性,有效降低Zynq嵌入式系统的
开发门槛。PYNQ将ARM处理器与FPGA器件的底层交互逻辑完全封装起来,顶层封装使用python,只需要
import对应的模块名称即可导入对应的硬
PYNQ介绍介绍
PYNQ全称为Python ProducTIvity for Zynq,即在原有Zynq架构的基础上,添加了对python的支持。Zynq是赛灵思公司
推出的行业个可扩展处理平台系列,在芯片中集成了ARM处理器和FPGA可编程逻辑器件,旨在为视频监视、汽车驾驶员辅助
以及工厂自动化等高端嵌入式应用提供所需的处理与计算性能水平。PYNQ希望能够借助python语言本身易用易学、扩展库多
而全、社区活跃贡献度高等特性,有效降低Zynq嵌入式系统的开发门槛。PYNQ将ARM处理器与FPGA器件的底层交互逻辑
完全封装起来,顶层封装使用python,只需要import对应的模块名称即可导入对应的硬件模块即可进行底层到上层数据的交互
或者为系统提供硬件加速。对于PYNQ的开发者来说,ARM上运行着一个Linux系统,FPGA被抽象为若干加速IP,开发者可
以通过一行简单的python脚本即可完成动态加载bitstream,通过DMA将数据流传输到加速IP融合输出。PYNQ板卡也提供了
非常丰富的接口资源,如HDMI、AUDIO、Grove模块、常用接口如SPI/I2C等等以及很多通用IO。
图 Python调用底层硬件框架
下面给一个在PYNQ中插入HDMI输入和输出的例子
from pynq importOverlay
frompynq.lib.video import *
base =Overlay(‘base.bit’)
hdmi_in =base.video.hdmi_in
hdmi_out = base.video.hdmi_out
简单高效开发简单高效开发PYNQ-Jupyter
对于嵌入式系统开发来说,往往由于性能的局限性,我们只能ssh进嵌入式linux,在命令行终端进行开发,开发效率是个
很大的问题。在PYNQ上,我们使用了python扩展库Jupyter Notebook,其本质上是一个web服务器,提供了远程可视化、分
步运行python脚本的能力。Jupyter同时可以实时显示程序运行结果,我们甚至可以在浏览器中直接看到我们使用硬件加速处
理图像的结果。我们只需要将PYNQ板子接入网关,即可通过浏览器访问在板上运行的作为嵌入式web服务器的Jupyter
Notebook。