PYNQ 基于Zynq架构添加了对python的支持

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。
图 jupyternotebook实时显示运算图片
pynq能做什么
pynq的整个技术栈包含了python+linux+arm+fpga,提供了无限种扩展的可能性,我们可以使用它来做很多有意思的应用。在pynq.io的社区页面我们可以看到许多pynq社区开发的项目。包括bnn(二值神经网络)的案例。
图 pynq社区应用案例
同时,官方提供了非常多的外部接口案例。同时还包括了opencv的案例。
图 pynq.io 官方案例
logictools功能则实现了使用python编写fpga状态机的功能,使用logictools可以用python编写fpga i/o端口输出任意波形了。
图 pynq logictools
查阅pynq文档
关于pynq的所有资料都可以在网站pynq.io中找到,点击getting started就进入了pynq的文档页面。文档中包含了如何设置pynq等入门资料、如何创建pynq的fpga硬件工程、pynq libraries的详细介绍以及最关键的python-pynq的函数文档,也可以使用搜索功能直接查找关键词。
图 pynq.io getting started

Magik Eye展示Invertible Light™技术 为大众带来3D传感的变革
苹果M1 Mac 连接外置超宽显示器不支持部分分辨率
大规模天线阵列中检测主动窃听的具体方案
Snap推出Snapchat应用程序 消费者可在眼镜捕捉的视频中添加AR叠加效果
电池充电方法、技巧与注意事项大全
PYNQ 基于Zynq架构添加了对python的支持
直通乌镇 | 美食流带你打卡2020“互联网之光”博览会
WASP宣布推出新型3D打印机DeltaWASP Pellet
什么是电源?电源是如何进行分类的?
通用芯片和嵌入式芯片有什么区别
汽车抛负载测试ISO7637 -5A 和ISO16750有何不同?
联发科x27相当于骁龙多少
新型手机屏幕材料 24小时自我修复手机碎屏
企业IT是如何支持通信工具
索尼确认将于今年4月份关闭PS4社区
工业 4.0的电源挑战
三星Exynos处理器成黑马 下一代10nm Exynos处理器曝光:Exynos 9810
一文了解神经网络不同类型的单元和层连接风格
空气流量传感器有哪些种类?
爱特梅尔推出带有LF-RFID阅读器的单一封装微控制器ATA5505