PYNQ简介
=============

PYNQ能简化ZYNQ开发吗
--------------------

PYNQ主要目标是使用\ **P**\ ython开发Z\ **ynq**\ ，使设计者能快速体验基于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 <http://www.pynq.io/>`__

Github: https://github.com/Xilinx/PYNQ
