黑金开发板实现PYNQ

2020-06-30 10:44:03 浏览数 (1)

最早听说PYNQ是下面这货:

看下简介:

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

PYNQ-Z2配备有以太网,HDMI输入/输出,MIC输入,音频输出,Arduino接口,树莓派接口,2个Pmod,用户LED,按钮和开关。 兼容树莓派连接器、Arduino屏蔽连接器以及Pmod连接器可以支持多种配件拓展,同时这些接口也可以用作GPIO。

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

PYNQ结合了ZYNQ与Python的全部优势,可结合DF arduino扩展板,树莓派扩展板使用;可广泛应用于机器学习、研究和原型制造等领域。

技术规格

  • 外观尺寸
  • 87mm*140mm
  • 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系列可编程逻辑
    • 13,300个逻辑片,每个具有四个6输入LUT和8个触发器
    • 630 KB的快速block RAM
    • 4个时钟管理片,每个片都有一个锁相环(PLL)和混合模式时钟管理器(MMCM)
    • 220 DSP Slices
    • 片上模数转换器(XADC)
  • 存储:
    • 带有16位总线@1050Mbps的512MB DDR3
    • 16MB Quad-SPI闪存,具有出厂编程的特殊标识符(兼容48位EUI-48/64™)。
    • MicroSD插槽

更多的资料见:http://www.pynq.io/

偶然间看到下面这张图片:

原来黑金开发板也是支持Python?的

PYNQ 能简化 ZYNQ 开发吗?

PYNQ 主要目标是使用 Python 开发 Zynq,使设计者能快速体验基于 zynq 的嵌入式开发,按照 Xilinx 官方的说法:让不懂 FPGA、甚至不懂 C 语言的人来开发 ZYNQ。真是如此吗?我们来看一下 PYNQ 的核心部分是什么?

Overlays,这个用中文很难表述清楚,本质是 FPGA 的编译后的结果,是一个 bit 流文件,PYNQ 可以动态加载、卸载这些 bit 流,这样的话 FPGA 端的功能就可以根据 ARM 软件的需求动态改变。那么,如果不会开发 FPGA,这些 bit 流文件怎么来?如果在大公司,可以找 FPGA开发人员开发,如果是规模一般的公司,那么开发者还是老老实实先把 FPGA 学扎实,关于多久能学好 FPGA 的问题,笔者理解是经过坚持不懈地练习,大概一年左右。

PYNQ 使用 python 为开发语言,迄今为止, C 或 C 是最常用的嵌入式编程语言,因为嵌入式经常和硬件底层打交道,虽然 python 可以提升开发效率,但是还是要有人为 Python 开发库,这些底层库基本都是 C 或 C 。

PYNQ 是基于浏览器的,使用一种叫 Jupyter notebook 的技术,这个不是 ZYNQ 特有的,普通的 PC 也可以。

总结一下:

PYNQ= Python ZYNQ

FPGA 还是需要有人开发

还是要有嵌入式开发人员给 Python 提供底层接口

不能简化 ZYNQ 开发为什么还要用 PYNQ 呢?

非常熟悉 Python,以前的算法都是 Python 上写好的,现在需要移植

确实不会 C 或 C ,也不会搭建交叉编译环境

Xilinx 提供了一部分底层硬件的 Python 库,例如寄存器读写、 DMA 使用,有了这些基本的操作,可以解决大部分对效率要求不高的嵌入式程序,用于调试还是很方便的

PYNQ 属于锦上添花,在学校 ZYNQ 的同时,对于有 Python 基础,但是不想再系统学习嵌入式开发的人员来说是非常合适的工具

不会 python 能用 PYNQ 吗?

如果不会 python,这个真不行! PYNQ 学习资源 官网:http://www.pynq.io Github: https://github.com/Xilinx/PYNQ

然后就把黑金官方的一些文档及zynq7010和7020光盘资料分享给大家:

PYNQ黑金资料:

链接: https://pan.baidu.com/s/1IRDOQiILjo2t9opnaxPJHg

提取码: hz2a

黑金zynq7010资料:

链接: https://pan.baidu.com/s/1Z-0PqNvakvWsYl9ba6iKEw

提取码: 7h3g

黑金zynq7020资料:

链接: https://pan.baidu.com/s/1VNFOBDCGxInktesoM9zJJw

提取码: dg7x

所有的资源都是:

获取方法:

公众号:OpenFPGA

后台回复:

ZYNQ

0 人点赞