第一章 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,这个真不行!