赞
踩
本次使用的vivado/vitis版本为2023.2,在2023版本中,vitis界面有了较大的变化。虽然该版本xilinx保留了Vitis Classic 和vitis HLS老版本界面,但会在后续版本中逐步替换。借此机会记录一下本人使用新版本的情况。本次介绍vitis hls 2023.2。
首先需要安装两种库,一种是OPENCV库,还有一种是Xilinx官方自己的Vitis Vision Library库,前者可以用来在HLS中进行仿真,无法进行综合,而后者则是可以进行综合的。现将两种库的环境都配置一下,记住版本最好一致,2023.2版本安装默认不带两种库,需要自行安装。
去Xilinx官方的github库下载,GitHub - Xilinx/Vitis_Libraries: Vitis Libraries这里把链接贴在这,或者直接百度搜索 vitis vision library github也可。目前2023.2有两个版本的库,个人建议下载2023.2 update1。windows直接点下载Source code.zip。
下载完成后解压到一个纯英文目录,记住这个目录,可以打开vision看看,里面README写了L1\L2\L3目录中的库内容,同时还介绍了推荐对应的Opencv版本
进行到这一步还不够,我们还需要对其进行配置和编译,我们需要新建一个文件夹,用于存放编译后的文件夹,假设我在上层目录新建了一个命名为build的文件夹,注意不要与上图中的build文件夹搞混。
安装过程中选择一下安装路径即可,安装完后需要配置环境变量,右击此电脑—》属性–》高级系统设置–》环境变量-》系统变量-》path,在path中添加,这个路径大家根据自己安装路径更改:
配置完后快捷键WIN+R,输入cmd,然后输入gcc -v以及g++ -v,显示如下界面,即表明配置成功:
需要注意这里cmake版本最好为3.5及以上。我这里下载的是3.5.1
下载完成后双击打开CMAKE,在 where is the source code 选择安装的 opencv 的source 文件夹路径就是该章节第一步中图中的source文件夹,在 where to build the binary 选择第一步新建的 build 文件夹路径。
点击Configure,按如下界面配置:
上图中的gcc.exe、g++.exe的路径在mingw的安装目录可以找到。
勾选 ENABLE_CXX11,勾选 WITH_OPENGL,不勾选OPENCV_ENABLE_ALLOCATOR_STATS,其余部分保持默认。
注意事项:
在列表项中找到ENABLE_CXX11这一项,对其Value值进行勾选。在最新版本情况下大概率是没有的,此时需要我们自行添加这一项,点击“Add Entry”按钮,在Name一栏中输入ENABLE_CXX11,并在Value一栏中点击勾选,后单击“OK”按钮。此时可在列表栏第一项中找到自行添加的表项。
勾选完毕后,再次单击 configure,出现 config done 之后单击 Generate,出现 generate done 之后将cmake-gui 关闭,右键开始菜单,输入 cmd,在 windows 下输入 cd + 文件夹路径,进入第一步在opencv目录新建的build 文件夹,进入之后输入 mingw32-make,开始进行编译,当编译完成之后输入mingw32-make install,之后会在build文件夹内生成一个install文件夹,如图所示:
下面再次配置环境变量,这里配置的是用户变量。install前面的路径以你自己为准,后面要对应好,不要出错:
另外如果没法编译,我上传了我编译后的结果,大家可以使用参考:
链接: https://pan.baidu.com/s/1fRoukMihHnToWqlZ6fnl_g?pwd=halo 提取码: halo 复制这段内容后打开百度网盘手机App,操作更方便哦
现在,两种库均配置完毕。下面介绍如何在HLS中调用这两种库。
新版vitis unified把vitis hls和sdk两个合并了。我们先只关注HLS。我这里建立一个test工程。
这里可以选择综合文件和testbench文件,我们暂时不选。
建立工程后界面如下,这里2023.2可能会建立一次工程后什么也没发生,这是一个bug,重新建立一次就行了。
我们这次工程的内容选取Xilinx官方的Vitis Vision Library库中的霍夫变换例子。我们选择如图config文件夹和.cpp.h文件,复制到咱们新建的test工程目录下。
在source中和testbench中添加文件。点击Settings中的hls_config.cfg
点击C Synthesis sources添加CFLAGS和CSIMFLAGS,注意在这里添加的所有路径均为/,若复制windows资源管理器导航栏需要注意更改。
我这里两个一样都是:
-I E:/program/hls/test/src/config -I D:/software/xilinx2023/Vitis_Libraries-2023.2_update1/Vitis_Libraries-2023.2_update1/vision/L1/include -I ./ -D__SDSVHLS__ -std=c++14
前面是工程目录中的config内的头文件,后面是Xilinx官方的Vitis Vision Library库的头文件。大家注意根据自己安装路径进行更改,别的不需要改动。
点击Testbench sources添加CFLAGS
我这里是
-I E:/program/hls/test/src/config -I D:/software/opencv4_4/build/install/include -I D:/software/xilinx2023/Vitis_Libraries-2023.2_update1/Vitis_Libraries-2023.2_update1/vision/L1/include -I ./ -D__SDSVHLS__ -std=c++14
前面是工程目录中的config内的头文件,中间是opencv头文件(注意是选自己编译后的路径不是默认下载的),后面是Xilinx官方的Vitis Vision Library库的头文件。
输入argv,这个是testbench主函数的输入图像,这里我复制了Xilinx官方的Vitis Vision Library库中的名为128x128.png的图像到工程目录。
输入ldflags,大家根据自己安装路径更改,再次提醒这里路径是自己创建的build文件夹内的,这里我的是:
-L D:/software/opencv4_4/build/install/x64/mingw/lib -llibopencv_imgcodecs440 -llibopencv_imgproc440 -llibopencv_calib3d440 -llibopencv_core440 -llibopencv_highgui440 -llibopencv_flann440 -llibopencv_features2d440
如果需要C/RTL 联合仿真,则选中C/RTL Cosimulation输入同样的argv和ldflags.
至此工程就配置完毕了,点左侧的C仿真和综合均通过。
为了验证结果可以把xf_houghlines_tb.cpp中的316和350行注释掉,这样会保存生成的图片。在工程目录test\test\test\hls\csim\build下可以看到生成的图片,仿真成功。
另外注意:test bunch打开会报错头文件找不到,官方说这是2023.2在windows上的bug,但这个不影响仿真运行,大家使用时无视就行。
总结:一下切换到新版本会有很多不适,再加上一些bug导致第一次使用起来非常费劲。但熟悉后发现这种vscode界面还是非常友好的,统一了嵌入式和hls开发。之后有时间我会更新2023.2新版嵌入式开发的教程,和hls使用心得,欢迎关注收藏。
另外转载记得附原文链接。
HLS_OPENCV库的安装_vitis hls opencv-CSDN博客
VScode搭建OpenCV环境(使用CMake和MinGW-w64)_opencv cmake mingw64 vscode-CSDN博客
Create and Run a Vitis Vision Library Example on Windows 10 (xilinx.com)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。