如何在Unified IDE中创建视觉库HLS组件

描述

 

本文作者: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 环境变量中: 

Unified

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

Unified

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

Unified

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

Unified

第二步:从视觉库创建 HLS 组件 

1. 单击左侧边栏上的“Examples”选项卡:

Unified

如果您无法展开“Vitis Libraries”选项,则可能需要下载此仓库 - 请参阅“Vitis_Libraries”右侧向下箭头下的内容。

还可以通过选择仓库右侧的铅笔图标来编辑仓库。

确保分支设置为“main”或“2024.2”,以匹配您当前使用的 Vitis 版本。 

Unified

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(用于内核流程)。

Unified

如果您还未习惯使用配置文件的 GUI 视图,请滚动浏览整个视图。

编辑器视图(选择下面用红色圈出的代码符号)

Unified

请注意编辑器视图中生成的路径 - 这些路径基于 Vitis_Library 仓库路径的位置生成。

要了解当前正在应用哪些功能(例如 csim.clean),查看编辑器视图是个好办法。

注释:并非所有默认设置都会在编辑器视图中列出。csim.clean 一开始并没有列出,但因为我们通过选中该框对其进行了编辑,所以从此刻起,它将出现在编辑器视图中

第四步:运行 C 语言仿真、C 语言综合与协同仿真

如果一切都设置正确,您应该能够成功运行完成 C 语言仿真、C 语言综合、协同仿真、实现和封装。如果遇到任何问题,请参阅下面的“故障排除”部分。

注释:代码分析器不适用于此示例,它会导致错误。

C 语言仿真: 

Unified

C 语言综合与综合报告:

Unified

注释:在 2024.2 中,代码分析器不适用于此示例。目前正在修复此问题。 

协调仿真、实现和封装已完成: 

Unified

接下来做什么?

掌握如何在 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

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分