KRS Unleashed: 4——Vitis工作区
扫描二维码
随时随地手机看文章
这个项目是KRS Unleashed系列的一部分,KRS是原始KRS的修订版。本文将介绍Vitis工作空间。
本文将介绍新开发的自动化Vitis工作区流。原始的KRS流自动将内核生成到配置在ROS 2包的CMakeLists.txt中的xclbin中,但目前未使用。虽然原始流程允许在ROS 2中直接生成内核,但在开发新内核时,该流程很难使用。由于v++的大部分输出都隐藏在CMake命令之后,开发人员几乎得不到任何反馈。此外,测试和调整配置不是微不足道的,需要在CMake中显式配置。由于直接调用了v++编译器,因此之后不存在以更图形化的方式检查结果的项目,这需要进一步的专业知识。
Vitis统一软件平台流程
开发HLS内核的常用方法是使用AMD/Xilinx提供的Vitis统一软件平台IDE。在这里,首先创建一个捕获Vivado基础平台的平台组件,包括CPU架构,系统根等等。
接下来,为每个内核创建HLS和应用程序(主机代码)组件,并配置正确的依赖项、链接器标志等。综合设计和探索权衡。
在最后一步中,将所有内核与系统组件中的平台放在一起,以生成最终的xclbin。遗憾的是,自动闪烁和调试功能不适用于Kria板,因此流需要在成功生成比特流后停止。在创建组件之后,开发人员仍然可以调整其文件和配置,或者返回到其他组件,从而允许探索系统,而不必总是从头开始重新构建所有内容。
The Vitis Flow Conceptually
新的Vitis Workspace Flow通过新的Python API以半自动化的方式实现了这个流程。一个简化的配置文件用于创建所有这些组件并对它们进行预配置。通过遵循特定的命名约定,流程不仅允许自动生成xclbin文件并在导出文件夹中检索它以供在电路板上使用,而且还允许进一步创建整个开发工作空间以改进/开发系统。
当启动一个新程序时,添加了一个干燥模式,它只配置所有组件,但不触发构建。该流程还允许重新触发各个阶段,即清理工作空间、创建带有平台组件的工作空间(ws)、添加包含应用程序代码的HLS组件、组装最终系统并导出它。该流目前不支持自动获取Vitis内部执行的更新,因此用户需要确保事先将源文件/调整后的配置复制到KRS/ Vitis文件夹中。
在新创建的exports/文件夹下是各自的文件,最后将它们复制到电路板上。
使用Vitis Flow
流是通过脚本调用的:
首先,通过采购葡萄和潜在必要的依赖关系来准备环境:
OpenCV源代码对于Vitis Vision库宿主代码是必要的——如果你不打算使用它们,你可以跳过这一部分。
确保你配置了。Yaml是正确的,并定义了预期的行为:
每个内核需要一个名称和一个顶级函数,vitis库和opencv依赖项是可选的
你可以通过一个单独的脚本检查设置是否正确:
有必要在单独的脚本中完成此操作,因为Vitis的Python API不是一个可以安装的简单模块,而是带有自己的Python解释器,因此无法轻松安装依赖项。
之后,只需通过以下方式调用脚本:
如果您看到以下输出,则说明一切都很成功,并且您应该看到一个导出文件夹,其中包含准备在电路板上进行设置的最终工件。
本文编译自hackster.io





