PYNQ简介#

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: Xilinx/PYNQ