# 02\_PYNQ常见问题

## 什么是PYNQ？ <a href="#shi-mo-shi-pynq" id="shi-mo-shi-pynq"></a>

PYNQ是Python On Zynq的缩写，它是一个软件开发框架，指导硬件层、驱动层和应用层之间的接口设计，不是ISE、Vivado、SDSoC这样的IDE工具，更不是Zynq芯片的下一代芯片产品。

![](https://gblobscdn.gitbook.com/assets%2F-Luk3T3QoKyS_b-1joBV%2F-Luk3tukeoHpawWbVABz%2F-Luk4J6DptOU7hJqfmFm%2FFramework.png?generation=1574912214909447\&alt=media)

PYNQ框架的设计初衷是通过高层次的封装，将底层硬件FPGA实现细节与上层应用层的使用脱耦，对软件开发者来说，PYNQ框架已经提供了完整的访问FPGA资源的library，让上层应用开发者通过Python编程就可以调用FPGA模块，不需要懂Verilog/VHDL硬件编程就可以享受FPGA可并行计算、接口可方便扩展和可灵活配置带来的诸多好处。

在在PYNQ框架下，ARM A9 CPU上运行的软件包括：

· 载有Jupyter Notebooks设计环境的网络服务器

· IPython内核和程序包

· Linux

· FPGA的基本硬件库和API

## PYNQ就是通过Python语言直接对FPGA进行编程吗？ <a href="#pynq-jiu-shi-tong-guo-python-yu-yan-zhi-jie-dui-fpga-jin-hang-bian-cheng-ma" id="pynq-jiu-shi-tong-guo-python-yu-yan-zhi-jie-dui-fpga-jin-hang-bian-cheng-ma"></a>

我相信这个问题应该是很多人第一次听说PYNQ框架的印象，事实上，在PYNQ框架下并不能通过Python对FPGA进行编程来取代传统的RTL编程方式。PYNQ框架是为软件开发者提供了访问FPGA资源的python接口，Python开发者可以忽略这些实现细节，通过python即可轻松访问FPGA，动态加载各种预编译好的各种FPGA应用，像调用函数一样去调用各种通过FPGA加速的应用或者访问连接到FPFA的外设。让软件工程师能轻松享受FPGA并行计算和可灵活配置的诸多好处。

## PYNQ和PYNQ-Z1是一回事吗？ <a href="#pynq-he-pynqz-2-shi-yi-hui-shi-ma" id="pynq-he-pynqz-2-shi-yi-hui-shi-ma"></a>

PYNQ是一个软件框架，而PYNQ-Z1是支持PYNQ软件框架的硬件板卡，只需要下载好已经编译好的PYNQ镜像，开机启动即可开始你的PYNQ之旅。目前其它的板卡也开始支持PYNQ框架了，比如Ultra96等。当然，用户也可以将PYNQ软件框架移植到自己的板卡上，不过对开发者会有更高的要求，需要了解更多的硬件知识。

## PYNQ-Z1是否支持传统开发方式？ <a href="#pynqz-2-shi-fou-zhi-chi-chuan-tong-kai-fa-fang-shi" id="pynqz-2-shi-fou-zhi-chi-chuan-tong-kai-fa-fang-shi"></a>

除了支持PYNQ框架，PYNQ-Z1也可以采用传统的ZYNQ开发方式，使用Vivado, SDK, SDSoC等工具进行开发。

## 要到哪里学习PYNQ知识呢？ <a href="#yao-dao-na-li-xue-xi-pynq-zhi-shi-ni" id="yao-dao-na-li-xue-xi-pynq-zhi-shi-ni"></a>

Digilent中文官方网站提供有PYNQ资源汇总贴（<http://www.digilent.com.cn/community/411.html>）

Pynq.io是PYNQ官方网站，上面有英文资源汇总。

另外也欢迎关注DIGILENT微信公众号，会不定期发布参考资料、FPGA应用案例更新。

![](/files/-M4SX3RmptyVvjjMnesR)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://digilent-china.gitbook.io/pynq-z1_tutorial/pynq-zhong-wen-zi-liao/02pynq-chang-jian-wen-ti.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
