PYNQ框架HLS开发流程备忘

本文详细介绍了如何在PYNQ框架下使用HLS进行矩阵乘法设计,涵盖HLS综合优化、Vivado集成自定义IP及配置,并探讨了PS与PL间的AXI通讯。通过实例解析了从HLS源码到Vivado Block Design的完整流程,以及在PYNQ中调用和运行程序的方法。
摘要由CSDN通过智能技术生成

0、设计思路

本文目的是为在PYNQ调用HLS所生成的bit文件所写,旨在明晰整个流程和细节,属于个人学习笔记,将随着工作的开展而逐步更新完善,该文章可能不会对您的工作有所帮助,但也希望您能指出文中的错误,谢谢。

当前将从矩阵乘法示例,将整个流程进行细化,以供日后自己的IP使用。

以下以矩阵乘法举例,HLS源文件详见https://download.csdn.net/download/u014798590/64515794
里面包含矩阵乘法的源文件与测试文件。

本文如有不详细的地方可参考该大佬的文章https://blog.csdn.net/qq_42334072/article/details/106769534

Tips:

01、PS与PL通讯

根据《The Zynq Book》所提到,PL(可编程逻辑)与PS(处理系统)中采用AXI(Advanced eXtensible Interface)进行通讯。
有关AXI的介绍与使用,详见《The Zynq Book》中的第19章以及《UG871 HLS Tutoial》ch.4的 lab4章节

关于图片的设计思路,送进去之前由PS端的Python已经转成了rgb位图,然后调用AXI接口写进去一帧数据,进行处理后读出来,本例中,图像采用AXI_Stream实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

02、使用自己的ip思路

如下图可以看到,例程所设计的IP(image_process),具有输入输出两个接口,我们在Diagram中,将image IPaxi_dam进行连接,图像处理教程,是非常好的学习资料,在深度学习中,image IP的本质是一个卷积层,输入原始图像,获得卷积后的图像,后续将在这个例子中进行学习。
在这里插入图片描述

03、在Vivado中添加第三方板卡

访问该网站 https://github.com/Avnet/bdf;
将对应板卡的文件夹,复制到 E:\Xilinx\Vivado\2018.3\data\boards\board_files文件夹中;
需要注意的是如果板卡具有多个version,只需要拷贝一个文件夹;
在工程中切换Parts/Boards,而后搜索,选择。
在这里插入图片描述

1、HLS设计

请注意,HLS选择的芯片型号,一定要和Vivado设计中的芯片or板卡型号一致,否则在BD中 ,或无法找到你所打包的IP

概述:
编写完成的HLS文件,测试、综合完成后生成IP核。

1.1、流程备忘

1.1.5、添加头文件

在综合前,需要先进行以下流程的设置
project——》project setting——》synthesis——》Top Function
选择对应的函数
C synthesis

1.2、Pragma设计与优化

详见HLS相关学习博客,《Xilinx HLS 学习笔记3(for循环优化)》
下例为对for循环的优化,增加流水线
在对程序进行优化的过程中,可以使用Pragma代码或者HLS Directive方法进行配置
以下分开进行展示

1.2.1、Directive 方式

首先对需要展开或流水的for循环命名
在这里插入图片描述
然后可在右侧的Directive中看到其
在这里插入图片描述

右键命名,可进行insert directive设置,在弹出的对话框中,根据实际情况,选择命令
在这里插入图片描述
最后可看到相关命令出现,表明配置生效
在这里插入图片描述

1.2.2、Pragma方式

直接使用pragma HLS PIPELINE进行配置
在这里插入图片描述
最终结果
在这里插入图片描述

1.2.3、对接口配置(留坑)

同理也可使用两种方法实现一样的效果,(关于接口的作用与定义,待更新)
在这里插入图片描述
在这里插入图片描述

1.3、综合、打包IP

在这里插入图片描述
最后在该路径下找到IP文件夹(下一步中会用到)
D:\ZYNQ_PACK\Zynq7020\HLS_Project\AXI_Test1\IP_Matrix\Matrix\solution1\impl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值