vitis HLS学习笔记(一)·学习资料和软件使用

前言

近期到公司学习了三周vitis HLS的使用,几乎从零基础开始学习了软件使用和用C++编写HLS的方法。在过程中遇到不少问题,尤其是vitis HLS在国内似乎没有很多人使用,在百度上几乎找不到有关经验,因此开始对自己学习的过程做个记录,方便以后回忆使用方法。——2022年3月5日

学习资料

官方文档

xlinx提供的文档资料,是学习中最有用的参考资料了,在xlinx官网就可以获取,下面我列举一些我最常用的资料,并提供网盘链接。
ug871-vivado-high-level-synthesis-tutorial
vivado hls的tutorial(vivado hls是vitis hls的前称,大部分功能都一致),我认为初学最好的学习资料,有完整的软件使用方法和很多例程,操作讲解得非常细致,在一个个lab的操作中理解软件的使用和基本概念。——但是我因为上班时间不长并没有慢慢看完,后面有空要再看看。 要注意其中一些lab的cmd指令要进行小修改,比如vivado hls一般都要改成vitis hls。

ug902-vivado-high-level-synthesis
完整地讲解vitis hls的各种概念和特性,比起tutorial会比较枯燥,没有实验只有理论,但是要理解Hls的特性这是必须阅读的——同样我之前并没有完整阅读,以查阅的方式阅读了很多内容并做了零散笔记。在之后的csdn文章中我会边阅读边整理871 902 1399 1233的一些笔记。

ug1399-vitis-hls
1399是针对vitis hls编写的文档,相比于902,内容更丰富更完整,更适合vitis hls(我使用的是vitis 2020.1),在官网的技术支持文档中可以直接找到它并且有很好的链接和搜索功能。

ug1233-xilinx-opencv-user-guide
xilinx在vitis HLS 2020.1中还有提供他们的xfopencv库,可以用于电路综合(opencv本身的库有一些函数并不支持电路综合,所以虽然安装了opencv,但我们只在仿真时有使用opencv提供的库)。文档中提供了opencv库对各种应用的支持,我目前只查阅了HLS有关的一部分内容,能大概了解可用的opencv函数和结构体,如果有问题可以在安装的库中直接查阅有关代码。

ug1037-vivado-axi-reference-guide
axi接口的参考文档,在1399和902中对axi接口已经有很多叙述,如果有不清楚的还可以查阅这里。

链接:https://pan.baidu.com/s/1C-PBxNVtzmt3f2DmCP7LqQ
提取码:1024
–来自百度网盘超级会员V3的分享

ALINX开发板资料

在安装软件时我主要参照的是芯驿公司AXU7EV开发板用户手册,因为在文件中的readme中他们提供了店铺信息,我不确定教程内容是否能传播,因此不分享文档。下面提供他们的联系方式。

		芯驿电子科技(上海)有限公司
		公司网站:http://www.alinx.com/
		联系电话:021-67676997
		淘宝店铺:https://oshcn.taobao.com/
		天猫店铺:https://alinx.tmall.com/
		京东店铺:https://alinx.jd.com/

它们的手册中包括整个xlinx全家桶的使用教程,但内容和步骤非常简单,只适合按部就班跟着操作,我觉得不能学到什么。。。尤其是配置环境时因为文档内容安排得不合理给我造成了不少麻烦。。。

软件安装

xilinx全家桶下载安装

我根据开发板的使用教程建议,下载的是vitis HLS 2020.1.
vitisHLS安装
在这里插入图片描述
xilinx安装软件需要先注册账号,用学校邮箱或公司邮箱注册,可以直接获取lisence。
然后根据安装向导提示安装软件即可,在勾选安装组件时可以根据使用的开发板勾选

Vitis HLS OpenCV库编译

vitis HLS opencv库编译参考文章

软件下载地址
opencv-3.4.11:https://opencv.org/releases/
opencv_contrib-3.4.11:https://github.com/opencv/opencv_contrib/tree/3.4.11
MinGW:MinGW-w64 - for 32 and 64 bit Windows
CMake:https://cmake.org/download/

登录opencv官网:https//opencv.org/releases/ 安装opencv3.4.11
选择windows版本下载,下载完后新建一个文件夹将文件解压在里面,并在新建的文件夹内再建一个build文件夹。
opencv安装文件夹
然后根据上述的库编译参考文章去安装mingw64软件和cmake软件,并添加系统环境变量。
要注意的是,安装好cmake后进行编译生成时勾选和不勾选的内容可以参考文章的来,但是如果后续在cmd窗口显示的信息有问题,可以根据需要再选择勾选内容。
同时configure时可能需要多次configure,直到窗口内没有红色内容才能generate。
在文章内容中的这一步:
编译过程
根据文章建议是需要在连接外网条件下进行的(有些库的默认下载链接在外网),否则可能会在多处遇到失败的情况。
如果没有连接外网,也可以在报错后尝试自己找到缺少的文件放进指定位置来解决问题。

编译前可以先设定好系统环境变量,根据文章提供的变量来看需要有这些
在这里插入图片描述

项目设置 配置

在vitis HLS中如果使用了xfopencv库的有关内容,需要在项目设置->仿真设置和综合设置中添加编译参数,并且在链接库中添加参数。

仿真设置中,在测试文件的CFLAG和CSIMFLAGE中要加入

-ID:/opencv/build/install/include -ID:/Vitis_Libraries-2020.1/vision/L1/include -std=c++0x -Wno-unknown-pragmas

综合设置中,在模块文件的CFLAGS中药加入

-ID:/Vitis_Libraries-2020.1/vision/L1/include -std=c++0x -Wno-unknown-pragmas

在 Linker flags 内输入如下代码

-L D:/opencv/build/install/x64/mingw/lib
-lopencv_imgcodecs3411 
-lopencv_imgproc3411 
-lopencv_core3411
-lopencv_highgui3411 
-lopencv_flann3411 
-lopencv_features2d3411
(换至同行)

(3411 指的是opencv 版本,如果安装了其他版本需要做对应修改)

同时有个非常有趣的bug,在2022年由于系统时间变量的问题,在export RTL时一直会报错,根据百度得到的经验,只需要在导出时把windows的系统时间改回2020或2021年即可。

软件使用

关于软件界面的操作直接参照ug871即可,下面简单列举一下设计流程,对于设计流程和编码规范、特性优化的其他内容,在ug871、ug902、ug1399中都有叙述,我会根据三份ug,在另外的文章中详细记录。
页面窗口简介

工程文件结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上图有错误,对调了c仿真文件夹和联合仿真文件夹。

在综合文件目录下
在这里插入图片描述
在Impl目录下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对vitis HLS的一些理解

以我目前对vitis HLS的理解,这是一款用于快速FPGA代码设计的软件,通过把高级一些的C++/C 在一定条件下 转换成对应功能的.V代码并生成IP核,提供给vivado或vitis使用。
它的最重要优点是对C++/C的支持,但是相应的,它目前对高级语言并不能完全实现电路综合,需要满足它的可综合要求——这在一定程度上对高级语言的优势有所限制。
其次是它对电路设计者的基础知识要求不高,只要懂得C++/C,学习它的编码规范和优化规范,就可以实现比较优质的电路结构设计和复杂的连线,甚至都不用严格管理时序设计等电路设计的难题。
作为软件的初学者,并且没有接触过其他HLS设计方法,我不能判断出vitis HLS自动综合出的电路结构和用其他方法设计的电路结构相比之优劣,但是我想在不断优化软件性能的前提下,有一天,或许软件设计的电路结构能够达到甚至超越人类设计者最好的水平。
相对而言,随着软件的优化和对高级语言的越来越适应,软件对使用者的经验要求会越来越低,使用这一软件的工作者,如果不保持持续的学习和反思,被新学者所取代的可能性非常大。

  • 6
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值