树莓派你好——支持python,PYNQ-Z2开发板耐人寻味的升级
发布时间:2019-05-09
分享到:
树莓派你好——支持python,PYNQ-Z2开发板耐人寻味的升级
发布时间:2019-05-09
分享到:

Digilent的PYNQ-Z1开启了一个粉色浪漫系的FPGA开发平台,而对于我来说,印象最深刻的事莫过于在PYNQ-Z1上使用python语言搭建嵌入式应用。

很多人会问什么是PYNQ?

PYNQ 是 Python On Zynq 的缩写,它是一个软件开发框架,指导硬件层、驱动层和应用层之间的接口设计,PYNQ框架通过高层次的封装,将底层硬件FPGA实现细节与上层应用层的使用脱耦,让上层应用开发者通过Python编程就可以调用FPGA模块,其适用于大面积的设计者和开发者,能帮助用户实现多种高性能的嵌入式应用,包括:并行硬件执行,高帧率视频处理,硬件加速算法,实时信号处理,高带宽IO,低延时控制。

PYNQ结合了ZYNQ与Python的全部优势,可结合Arduino扩展板,树莓派扩展板使用;可广泛应用于机器学习、研究和原型制造等领域。对于软件工程师来说他们不需要再使用复杂繁琐的开发工具,使用基于浏览器的Jupyter Notebook工具就可以直接编辑工程代码,系统架构师借助PYNQ可以设计更清晰的软件接口和系统架构,对于硬件工程师而言他们设计的硬件平台能够让更多不同开发背景的人使用。

PYNQ-Z2开发板

在第一代PYNQ-Z1广受好评之际,PYNQ-Z2趁热杀马赶到。PYNQ-Z2开发板是Xilinx 大学计划支持PYNQ开源框架的第二代最新开发平台,根据第一代的反馈做了些许的功能升级。

首先,PYNQ-Z2仍旧是一款以ZYNQ XC7Z020 FPGA为核心的FPGA开发板,利用ZYNQ中的可编程逻辑和Arm处理器的优势可以构建强大的嵌入式系统。PYNQ的开源框架可以使嵌入式编程用户在无需设计可编程逻辑电路的情况下充分发挥Xilinx ZYNQ SoC的功能,使用Ethernet作为PC和board之间的通讯方式,这块开发板除支持传统ZYNQ开发方式外,还可支持Python进行SoC编程,并且代码可直接在PYNQ-Z2上进行开发和调试。可编程逻辑电路以硬件库的形式导入并且可以通过API编程,这种方式基本上与软件库的导入和编程方式相同。

众所周知,Arm与FPGA的异构系统是创建高性能嵌入式系统应用的基础也是与市面上众多嵌入式平台最大的不同之处,PYNQ-Z2有别于一般传统的ZYNQ开发平台最大的不同是支持Python 语言开发,同时也可以采用传统的Xilinx Vivado 开发工具流程平台开发嵌入式系统应用, PYNQ-Z2具有极丰富实用的外设,比如千兆以太网口、USB、UART、HDMI输入/输出、数字音频输入/输出、大容量DDR,LED、按键、开关等,还提供了兼容Ardunio、RPi、Pmod的扩展接口, 是创客Maker、学生创新与实践的最佳选择,也适合大一到大四的本科生当FPGA口袋实验平台。

PYNQ-Z2的具体板载资源如下:

产品规格

ZYNQ XC7Z020-1CLG400C
•650MHz双核Cortex-A9处理器
•DDR3内存控制器,带8个DMA通道和
4个高性能AXI3从端口
•高带宽外设控制器:1G以太网,
USB 2.0,SDIO
•低带宽外设控制器:
SPI ,UART,CAN,I2C
•可通过JTAG,Quad-SPI闪存
和MicroSD卡进行
编程•可编程逻辑等效于Artix-7 FPGA
•13,300个逻辑片,每个片有4个6输入LUT
和8个触发器
•630 KB快速Block RAM
•4个时钟管理磁贴,每个磁贴都有一个
锁相环(PLL)和混合模式时钟
管理器(MMCM)
•220个DSP片
•片上模数转换器(XADC)
存储器
•512MB DDR3,16位总线@ 1050Mbps
•16MB四SPI闪存,带工厂编程的
48位全球唯一EUI-48/64™兼容
标识符
•MicroSD插槽
电源
•由USB或7V-15V外部电源供电

USB和以太网
•千兆以太网PHY
•Micro USB-JTAG编程电路
•Micro USB-UART桥接器
•USB 2.0 OTG PHY(仅支持主机)
音频和视频
•HDMI接收器端口(输入)
•HDMI源端口(输出)
•I2S接口带有3.5mm TRRS插孔的24位DAC
•带3.5mm插孔
开关,按钮和LED
•4个按钮
•2个滑动开关
•4个LED
•2个RGB LED
扩展连接器
•2个标准Pmod端口
•16个总FPGA I / O(8个带
Raspberry Pi连接器的共享引脚)
•Arduino Shield连接器
•24个总FPGA I / O.
•6个单端0-3.3V模拟输入至XADC
•Raspberry Pi连接器
•28个总FPGA I / O(8个共享引脚,带Pmod
A端口)

PYNQ基于其支持框架可以面向多种应用场景适合多种领域的专家使用,并向硬件工程师、软件工程师、数据工程师提供了各自合适的开发环境与手段。可以说,Xilinx PYNQ项目,让非传统FPGA用户也能轻松开发FPGA。

PYNQ-Z2与PYNQ-Z1参数对比:

 

PYNQ-Z2使用介绍视频

PYNQ-Z2与PYNQ-Z1有何区别?

虽然两者版型基本相似,包括一些功能,如都具备Zynq-7020 SoC,512MB DDR,10/100/1000以太网,USB,SD卡启动等。

但还是有一些改变的地方,主要区别在于扩展接口和音频系统。

PYNQ-Z1有2个Pmod,一个Arduino接口和ChipKit接口;而PYNQ-Z2除了2个Pmod和一个Arduino接口外,采用40pin的树莓派接口取代了原先的ChipKit接口。(其中树莓派接口有26个数据引脚连接到PL,这些引脚中的8个与Pmod A共用)。

PYNQ-Z1具有带PWM输入的集成MIC和单声道PDM音频输出;而PYNQ-Z2具有完整的ADI音频编解码器,带有耳机输出,麦克风和Line In。

此外,两者的PCB板尺寸也略有不同。

是否可以在PYNQ-Z1和PYNQ-Z2上使用相同的PYNQ image?

PYNQ-Z1和PYNQ-Z2大致的引脚都兼容(除了上面列出的具体差异),所以不去计较细节部分是都可以从相同的PYNQ image启动。但是,由于这两块开发板上可用音频子系统之间的物理差异以及树莓派接口的添加改变,最好两者使用不同的单独的PYNQ image,毕竟两者的基础覆盖不同,每个开发板的PYNQ image中包含不同的音频驱动文件和其他驱动程序。

当然,某些叠加可能会检查在运行时或安装期间使用的开发板型号,如果PYNQ-Z1的Overlays对'Pynq-Z1'进行运行时检查, 它将不会在PYNQ-Z2上安装/运行。

例如

if (os.environ['BOARD'] == 'Pynq-Z1'):

如果叠加层不使用音频,则应该可以在PYNQ-Z2上运行它。

可以按如下方式修改开发板的检查以增加对PYNQ-Z2的支持。 根据执行检查的位置,可能需要在setup.py中为Overlay 修改 ,或者在覆盖的主Python代码中修改:

if (os.environ['BOARD'] in ['Pynq-Z1', 'Pynq-Z2']):

我可以在PYNQ-Z1和PYNQ-Z2上使用相同的overlays吗?

因为这两块开发板的引脚是大致兼容的,所以除非overlays使用音频子系统或RaspberryPi/ChipKit引脚,否则它应该可以在任一开发板上工作。

 

强烈推荐阅读:

加入微信技术交流群

技术交流,职业进阶

关注电路设计技能公众号

了解最新技术方案

加入电路城 QQ 交流群

与技术大牛交朋友

讨论