既然PYNQ就是python + Zynq,是便于zynq的PS端的开发的,那这俩玩意到底有多大区别呢。
ZYNQ
Zynq-7000可扩展处理平台是采用赛灵思新一代FPGA(Artix-7与Kintex-7FPGA)所采用的同一28nm可编程技术的最新产品系列。可编程逻辑可由用户配置,并通过“互连”模块连接在一起,这样可以提供用户自定义的任意逻辑功能,从而扩展处理系统的性能及功能。不过,与采用嵌入式处理器的FPGA不同,Zynq-7000产品系列的处理系统不仅能在开机时启动,而且还可根据需要配置可编程逻辑。
其一般基于c/c++开发,更接近底层,由于出现较早,目前的学习资料也比较多,入The Zynq Book
到 Zynq 是由两个主要部分组成的:一个由双核 ARM CortexA9 构成的处理系统 (PS),和一个等价于一片 FPGA 的可编程逻辑 (PL)部分。它还具有集成的存储器、各种外设和高速通信接口。如此这般,PL部分和PS部分可以各司其职,完成各自擅长的任务。
PS端的处理器可以如很多通用计算机系统一样完成软件层的应用,而PL端则可以实现外设的定制(我想起来了本科的时候用FPGA模拟串口)。
二者通过AXI总线连接起来。
(AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持Outstanding传输访问和乱序访问,并更加容易进行时序收敛。AXI 是AMBA 中一个新的高性能协议。AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。)
PYNQ
PYNQ顾名思义就是Python + Zynq。
Python库和FPGA硬件库可以直接调用。
PYNQ可与Zynq、Zynq UltraScale+、Zynq RFSoC、Alveo accelerator boards和AWS-F1一起使用,创建高性能应用。
目前来讲。。。我对PYNQ的理解还就是简单的可以通过python操作的zynq平台,所以其额外的东西应该主要就是python 库
😂
PYNQ库提供了对PynqMicroBlaze子系统的支持,允许加载预编译的应用程序,以及从Jupyter创建和编译新的应用程序。
PYNQ还支持overlay的底层控制,包括内存映射IO读/写、内存分配(例如,供PL主使用)、控制和管理overlay(下载overlay,在overlay中读取IP),以及PL的底层控制(下载bitstream)。
参考资料
http://xilinx.eetrend.com/d6-xilinx/article/2018-11/13898.html
https://blog.csdn.net/qq_35999634/article/details/81672355
http://xilinx.eetrend.com/d6-xilinx/article/2018-11/13904.html
ALINX_ZYNQ开发平台基础教程V1.02
The Zynq Book
http://www.pynq.io/