---------------------------------------------------------------------------------------------------------------------------------
什么是Overlay?
PYNQ很重要的一个概念是overlay:
Overlay,又称为硬件库,是用来扩展用户应用的可编程/可配置FPGA设计.Overlay能够用来加速软件应用或者为了某一特定应用定制化硬件平台。例如图像处OV用是非常典型的经常被用FPGA技术加速处理的速度的应用。Overlay能够像载入软件库一样载入FPGA设计。
PYNQ提供Python接口允许PL端的Overlay(硬件库)被PS端的python调用。FPGA设计需要专门的硬件工程的知识。PYNQ Overlay由硬件设计人员设计,打包为PYNQ的python API。而软件设计人员只需在python 中调用这些Overlay,而不需要专门的硬件设计人员进行设计。和软件库设计类似。提高了通用性。
默认情况下,base Overlay在PYNQ启动时就已经被载入,而用户自己定制的overlay可以直接拷贝到板子的相应目录。
一个overlay 包含:
• 一个配置FPGA的.bit文件
• 一个 vivado设计的.tcl文件定义可用IP
• Python API定义IP属性
PYNQ的Overlay类可以被用来载入一个overlay.一个overlay被初始化为一个bit文件的名称。初始化overlay会默认下载bit文件并且描述Tcl文件。Base Overlay被用来控制PYNA的常用外设接口。通常包括 GPIO设备(LED,开关按钮等),视频音频或者其他定制化接口。
正因为base Overlay包含着板子的外设接口的IP,因此,它可以用来作为设计专用IP Overlay时的参考设计。
---------------------------------------------------------------------------------------------------------------------------------
overlay由两个主要部分组成; PL设计(比特流)和项目框图Tcl文件(the PL design (bitstream) and the project block diagram Tcl file.)。 overlay设计是硬件工程师的专业任务。
https://blog.csdn.net/abcdef123456gg/article/details/83869309?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-7.base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-7.base
---------------------------------------------------------------------------------------------------------------------------------
https://blog.csdn.net/CSD_N_csdn/article/details/105669069?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242
上述链接里面讲述了如何定制一个简答的PYNQ的overlay,即从设计、导出一个IP,然后到vivado软件中生成bitstreams文件以及tcl文件。
https://blog.csdn.net/CSD_N_csdn/article/details/105691939
上面这个链接是上述的简单设计的上板验证过程,可以看到,这一过程,是在jupyter上进行操作的,即编写python代码调用overlay里面设计的IP,其实也是可以通过编写C的程序来调用IP的,后面再看。
综合整理自其他博主!相应出处已留链接!留作笔记!