Overlay也可称为硬件库,是ZYNQ的FPGA设计,可将用户应用程序从ZYNQ的处理系统PS扩展到可编程逻辑 PL。Overlay可用于加速软件应用程序,也可为特定应用程序定制硬件平台。 例如,图像处理是FPGA可以提供加速的典型应用。软件程序员可以以类似于软件库的方式使overlay,以在FPGA 架构上运行某些图像处理功能(例如,边缘检测,阈值处理等)。Overlay可以根据需要动态加 载到FPGA,就像软件库一样。对于图像处理而言,可以在不同的overlay中实现单独的图像处理功能,并 按需从Python中加载。PYNQ提供了一个Python界面,允许通过PS中运行的Python控制PL中的overlay。由于FPGA设计是一项专门的任务,需要硬件工程知识和专业知识,所以PYNQ overlay由硬件设计人员创建,并使用PYNQ Python API包装。然后,软件开发人员可以使用Python接口来编程和控制overlay,而无需自己设计overlay。
在启动时将称为base的overlay(bitstream)下载到PL中。可以将base overlay视为开发 板的参考设计。新的overlay可以上传或复制到开发板上,并且可以在系统运行时加载到PL中。
Overlay 通常包括以下三个部分:
➢ 用于配置 FPGA 架构的 bitstream 文件
➢ 确定 Vivado 设计可用 IP 的 hwh 文件(早期使用 Tcl 文件)
➢ 将 IP 公开为属性的 Python API(归属于 PYNQ 库)
PYNQ Overlay类可用于加载overlay。通过指定bitstream文件的名称来实例化overlay。实例化 overlay会默认下载bitstream文件(此处以 base