【本文系转载】本文首发于微信公众号: CECA系统结构组。如需了解更多内容,请关注原公众号。相关公众号推荐:PYNQ开源社区。
之前的文章中介绍了使用HLS进行基于FPGA的深度学习加速器设计的诸多方法和代码实例,很多读者都跃跃欲试。根据之前的文章,读者在设计好自己的加速IP后只能通过HLS工具的综合报告来估计和分析优化的效果。为了方便大家快速上手FPGA加速器上板实现并在FPGA上测试自己的IP的性能,我们推荐读者们使用Xilinx开发设计的PYNQ框架,并在本文中以PYNQ-Z2的开发流程为例介绍PYNQ框架的简单上手方案和注意事项。
PYNQ-Z2开发板包含Xilinx Zynq 7020芯片和许多外围接口。在Zynq 7020芯片中,硬件资源被划分为了PS (Processing System)和PL (Programming Logic)两部分。在PYNQ框架中,开发者可以通过PS中运行的Python来控制和调用硬件的Overlay来在FPGA端运行各种加速IP。Overlay可以根据需要动态地加载到FPGA上,达到定制硬件平台并加速软件应用程序的效果。一般来说,PYNQ中的Overlay由硬件设计人员进行创建和包装后,可以通过类似软件库的方式方便地调用和控制。总体而言,使用HLS开发PYNQ Overlay的流程总共分三步:
•Step1:使用HLS设计、验证、综合、导出定制化IP;
•Step2:使用Vivado在Block Diagram中添加IP,配置完成完整系统的搭建、综合、布线,生成可烧录文件;
•Step3:编写Python脚本调用Overlay,进行测试。
下面我们将详细说明每一步的操作:
Step1<