本文作者:AMD 工程师 Rachel Gaines
最近我们分享了开发者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 传统 IDE)和开发者分享|AMD Vitis HLS 系列 2:AMD Vivado IP 流程(Vitis Unified),在这篇 AMD Vitis HLS 系列 3 中,我们将介绍如何使用 Unified IDE 创建 HLS 组件。这里采用“自下而上”的流程,从 HLS 组件开始,该组件可以导出为 XO 文件用于 Vitis 系统工程;这与“自上而下的流程”相反,后者从 Vitis 工程开始,然后将 HLS 组件导入该工程。我们将创建视觉库示例“remap”,并在 Unified IDE 中执行每一步,而不是运行 Makefile 脚本。
这篇博客的测试环境如下:
操作系统:Linux (Ubuntu 22.04.1)
版本:2024.2
器件:xcvc1902-vsva2197-2MP-e-S
注释 1:确保使用的操作系统与运行的版本兼容 - 受支持的操作系统:
https://docs.amd.com/access/sources/dita/topic?Doc_Version=2024.2%20%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87&url=ug973-vivado-release-notes-install-license&resourceid=ypb1549384088486.html
注释 2:如果在 Windows 上遵循本教程进行操作,请切换到 Linux,或者请参阅此篇博客作为参考:
开发者分享|在 Windows 10 上创建并运行 AMD Vitis 视觉库示例
注释 3: 所需安装:OpenCV 4.4.0(请参阅这些指示信息以安装 OpenCV 并设置环境变量):
https://adaptivesupport.amd.com/s/article/Vitis-Libraries-Compiling-and-Installing-OpenCV?language=zh_CN
第一步:设置 OpenCV 环境变量
1. 打开 Linux 终端。
2. 将 OpenCV 添加到 LD_LIBRARY_PATH 环境变量中:

3. 检查是否已设置环境变量。

4. 创建一个文件夹,用作您的工作空间。

5. 在 Unified IDE 中启动工作空间:

第二步:从视觉库创建 HLS 组件
1. 单击左侧边栏上的“Examples”选项卡:

如果您无法展开“Vitis Libraries”选项,则可能需要下载此仓库 - 请参阅“Vitis_Libraries”右侧向下箭头下的内容。
还可以通过选择仓库右侧的铅笔图标来编辑仓库。
确保分支设置为“main”或“2024.2”,以匹配您当前使用的 Vitis 版本。

2. 选择“Vitis Vision Library > vision > L1 > examples > remap”,然后选择示例右侧的加号 (+),将 HLS 组件添加到您的工作空间中。
保留默认名称“remap”,位置路径应与您的工作空间匹配。单击“Next”。
复查汇总信息,然后单击“Finish”。
第三步:组件配置
选择“Settings > hls_config.cfg”以打开配置文件,查看 HLS 示例的设置。有两种方法可用于查看配置文件:
GUI(默认方法)
让我们做一些调整,以熟悉 GUI 视图:
选择“General”,将 part 设为 xcvc1902-vsva2197-2MP-e-S。
选择“General”,将 Flow_target 设为 Vitis(如果要导出此设计以供后续在 Vitis 工程中使用,则需要执行此操作)。
选择“C simulation”,勾选 csim.clean 框(保证后续流程顺利进行)。
注释:请勿选择“Code Analyzer”,因为它在这个示例中不起作用,而且会导致 C 语言仿真出错 。
“IP/XO Packaging > Output > output.format” - 设为 xo(用于内核流程)。

如果您还未习惯使用配置文件的 GUI 视图,请滚动浏览整个视图。
编辑器视图(选择下面用红色圈出的代码符号)

请注意编辑器视图中生成的路径 - 这些路径基于 Vitis_Library 仓库路径的位置生成。
要了解当前正在应用哪些功能(例如 csim.clean),查看编辑器视图是个好办法。
注释:并非所有默认设置都会在编辑器视图中列出。csim.clean 一开始并没有列出,但因为我们通过选中该框对其进行了编辑,所以从此刻起,它将出现在编辑器视图中
第四步:运行 C 语言仿真、C 语言综合与协同仿真
如果一切都设置正确,您应该能够成功运行完成 C 语言仿真、C 语言综合、协同仿真、实现和封装。如果遇到任何问题,请参阅下面的“故障排除”部分。
注释:代码分析器不适用于此示例,它会导致错误。
C 语言仿真:

C 语言综合与综合报告:

注释:在 2024.2 中,代码分析器不适用于此示例。目前正在修复此问题。
协调仿真、实现和封装已完成:

接下来做什么?
掌握如何在 Unified IDE 中创建和测试 HLS 内核 (XO) 后,即可在 Vitis 工程中使用该内核。以下是一些参考资料:
Vitis HLS 分析和优化 - 提供有关使用 HLS 工具进行优化的更多信息:
https://github.com/Xilinx/Vitis-Tutorials/tree/2024.1/Hardware_Acceleration/Feature_Tutorials/03-dataflow_debug_and_optimization
在 Vitis IDE 工程中使用 RTL 内核 - 这是传统 IDE 中的 RTL 内核,但提供了将 XO 内核添加到 Vitis 工程的过程方面的相关思路:
https://github.com/Xilinx/Vitis-Tutorials/blob/2024.1/Hardware_Acceleration/Feature_Tutorials/01-rtl_kernel_workflow/using_the_rtl_kernel.md
入门 - 从总体上介绍了使用 Vitis 的不同流程,以及每个部分如何组合在一起(主机代码、内核代码、平台、应用等)
https://github.com/Xilinx/Vitis-Tutorials/tree/2024.1/Getting_Started/Vitis
Unified IDE 流程文档:
https://docs.amd.com/access/sources/dita/topic?Doc_Version=2024.1%20%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87&url=ug1393-vitis-application-acceleration&resourceid=svk1630656618393.html
故障排除
hls_config.cfg 文件中的 OpenCV 路径:
确保 OpenCV 安装成功完成,未出现任何错误消息。
如果遇到路径错误,请确保设置了 LD_LIBRARY_PATH、OPENCV_LIB 和 OPENCV_INCLUDE 环境变量。
清理工作空间 - 右键单击并选择“HLS Component > Clean Workspace”。然后再次尝试运行该组件。
如果编辑了库仓库,请检查库仓库路径 - 确保“Edit”框中的库仓库路径与配置文件中用于引用这些文件的路径匹配。
如果您编辑了“Library”框,请确保刷新仓库,以使更改生效。
在新工作空间中启动新工程。
作为参考,配置文件应如下所示:
part=xcvc1902-vsva2197-2MP-e-S[hls]clock=3.3flow_target=vitissyn.file=/Vitis_Libraries/vision/L1/examples/remap/xf_remap_accel.cppsyn.file_cflags=/Vitis_Libraries/vision/L1/examples/remap/xf_remap_accel.cpp, -I /Vitis_Libraries/vision/L1/examples/remap/config -I/Vitis_Libraries/vision/L1/include -I ./syn.file_csimflags=/Vitis_Libraries/vision/L1/examples/remap/xf_remap_accel.cpp, -I /Vitis_Libraries/vision/L1/examples/remap/config -I/Vitis_Libraries/vision/L1/include -I ./syn.top=remap_acceltb.file=/Vitis_Libraries/vision/L1/examples/remap/xf_remap_tb.cpptb.file_cflags=/Vitis_Libraries/vision/L1/examples/remap/xf_remap_tb.cpp, -I /Vitis_Libraries/vision/L1/examples/remap/config -I/${OPENCV_INCLUDE} -I/Vitis_Libraries/vision/L1/include -I ./tb.file_csimflags=/Vitis_Libraries/vision/L1/examples/remap/xf_remap_tb.cpp, -I /Vitis_Libraries/vision/L1/examples/remap/config -I/Vitis_Libraries/vision/L1/include -I ./ csim.argv=/Vitis_Libraries/vision/data/128x128.png csim.ldflags=-L ${OPENCV_LIB} -lopencv_imgcodecs -lopencv_imgproc -lopencv_calib3d -lopencv_core -lopencv_highgui -lopencv_flann -lopencv_features2dcosim.argv=/Vitis_Libraries/vision/data/128x128.png cosim.ldflags=-L ${OPENCV_LIB} -lopencv_imgcodecs -lopencv_imgproc -lopencv_calib3d -lopencv_core -lopencv_highgui -lopencv_flann -lopencv_features2dvivado.rtl=verilogcsim.clean=1package.output.format=xo
全部0条评论
快来发表一下你的评论吧 !