0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用AMD Vitis硬件在环功能运行Vitis子系统设计

XILINX开发者社区 来源:XILINX开发者社区 2026-04-02 10:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

到目前为止,本文关于 AMD VersalAIE 验证和 AMD Vitis新的验证功能的研究,所有内容都基于仿真完成。

例如我们已经研究了如何使用 MATLABPython 进行 Vitis 功能仿真,研究了如何使用 XSIM 模拟 AIE 设计。

在这个项目中,我们将研究如何使用 AMD Vitis 硬件在环(HIL)功能在实际硬件上运行 Vitis 子系统设计。

AMD Vitis 硬件在环概述

要使用 Vitis HIL 功能,首先必须将 Vitis 设计封装为 Vitis 子系统 (VSS)。在通过 Vitis 功能仿真以及 AMD Vivado 中的 XSim 仿真 确认 VSS 的功能符合预期之后,我们就可以进入硬件测试阶段。通过对硬件进行测试,可以在将该子系统集成到更大规模设计之前,验证 VSS 是否能在硬件上按预期运行。

从 VSS 开始,HIL 流程会基于 VSS 创建一个支持 HIL 的设计。设计完成后,将创建 HIL 服务器,并将其与设计一起打包到 SD 卡上。目标板卡通电并通过 SD 卡启动后,主机系统即可通过以太网与目标板卡进行交互。主机系统可以使用 Python 或 Matlab 通过以太网与设计进行通信。开发人员能够向目标板卡发送测试向量,在硬件上执行计算,并通过以太网将结果返回主机,从而够验证硬件上的行为。

目前,VCK190 评估套件支持此功能,设计可以包含 AI 引擎、HLS 或 HDL 模块或它们的任意组合,只需它们位于 Vitis 子系统内即可。

创建 VSS

在 AMD Vitis 中,通过使用 v++ 链接器将可重用的 PL 内核和/或 AI 引擎图打包成一个与平台无关的组件而创建的 VSS(Vitis 子系统)。该流程首先将 PL 内核编译成 .xo 文件(来自 HLS 或 RTL),并在需要时将 AI 引擎图构建成 libadf。

随后,这些组件在 VSS 配置文件中进行描述,该文件定义了内核实例、子系统元数据以及各组件之间的互连。

cb5e3a8a-2cf1-11f1-90a1-92fbcf53809c.png

VSIS 的生成方式是:针对特定目标器件型号,以 VSS 模式运行链接器,生成一个 .vss 归档文件。只要使用相同的器件,该文件就可以被重复使用、仿真或以层次化方式集成到更高级别的 Vitis 设计中。

例如,可以通过使用配置文件创建一个仅包含 PL 的 VSS,该文件实例化一个内核并定义子系统。然后,可以使用以下命令进行构建,这将生成一个可重用的 `my_vss.vss` 子系统,可以将其导入到另一个 Vitis 项目中。

v++ --link --mode vss --part xcvc1902-vsva2197-2MP-e-S --config vss.cfg my_kernel.xo

创建 Vitis 子系统的另一种方法是使用 Vitis Model Composer 提供的导出为 VSS(Export to VSS) 功能。

在本项目中,我们将使用 AMD 提供的 VSS,它是 Vitis HIL 演示的一部分。这些 VSS 已以压缩包形式附在项目中供使用。

准备工作

首先,我们需要确保开发机器上已安装 Vitis 2025.2。如果尚未安装,您可以从这里下载:

https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vitis.htlm

cbb63212-2cf1-11f1-90a1-92fbcf53809c.png

安装完 Vitis 之后,接下来我们需要准备 SDK 和 RootFS,我们也可以从 AMD 网站下载获取。

cc165930-2cf1-11f1-90a1-92fbcf53809c.png

下载完成后,第一步是创建 SDK。可以通过解压 Versal 通用镜像并运行脚本 sdk.sh 来完成。

cc790f3a-2cf1-11f1-90a1-92fbcf53809c.png

为了能够运行构建,我们需要设置几个变量,第一个 SDK_LOCAL 指向刚刚创建的 SDK 的目录。

ccd4abce-2cf1-11f1-90a1-92fbcf53809c.png

第二个 SYSROOT_VERSAL 指向内核镜像的位置,RootFS 也是作为通用镜像下载的一部分提供的。

cd2b5fa0-2cf1-11f1-90a1-92fbcf53809c.png

现在我们准备创建目标 VSS 的 SD 卡镜像。为此,我们将以通道化器示例为例。

创建 HIL 服务器 SD 卡镜像

这将是一个命令行构建过程,因此我们首先需要从上面使用的终端启动 Vitis 2025.2 环境。

cd821660-2cf1-11f1-90a1-92fbcf53809c.png

完成后,我们将运行该命令。

cddbd74a-2cf1-11f1-90a1-92fbcf53809c.png

ce3413ec-2cf1-11f1-90a1-92fbcf53809c.png

启动构建流程:

ce8b1aa2-2cf1-11f1-90a1-92fbcf53809c.png

构建过程启动后,你会看到创建了一个名为 HIL_DUT 的文件夹,它是构建的工作目录。

ceee8cd6-2cf1-11f1-90a1-92fbcf53809c.png

不久之后,构建过程即可完成。

cf47f6fe-2cf1-11f1-90a1-92fbcf53809c.png

在构建的工作目录下,您可以看到输出的 SD 卡信息和 SD 卡镜像。

cfa2068a-2cf1-11f1-90a1-92fbcf53809c.png

SD 卡镜像和主机应用程序代码引用的 hil_interface_spec.json 文件通过唯一的哈希码关联,从而确保使用正确的文件对,防止与之前的版本混淆。

SD 卡的内容:

cffa7856-2cf1-11f1-90a1-92fbcf53809c.png

下一步是将此内容复制到 SD 卡中,将其插入 VK190 并启动开发板。

硬件在环 (HIL)

使用 HIL,第一步是将 SD 卡插入 VCK190 并启动开发板。

d051d2c2-2cf1-11f1-90a1-92fbcf53809c.png

通过串口,使用用户名 petalinux 登录到 VCK190 上运行的嵌入式Linux

d0ae043e-2cf1-11f1-90a1-92fbcf53809c.png

如果开发板已连接到网络,则 DHCP 服务器应已为其分配 IP 地址,因此可以跳过此步骤。

但如果开发板的以太网线连接到 PC,则需要执行一些步骤才能使开发板可访问网络。

d1104504-2cf1-11f1-90a1-92fbcf53809c.png

d165e4dc-2cf1-11f1-90a1-92fbcf53809c.png

在信道化器示例中,Python 文件夹下有两个 Python 文件。打开 Hosts 文件并编辑 VCK190 的 IP 地址。

d1c05f3e-2cf1-11f1-90a1-92fbcf53809c.png

在 VCK190 上,运行以下命令:

d232eea0-2cf1-11f1-90a1-92fbcf53809c.png

d289e886-2cf1-11f1-90a1-92fbcf53809c.png

要启动服务器,请运行以下命令:

d2e2ad72-2cf1-11f1-90a1-92fbcf53809c.png

d33d699c-2cf1-11f1-90a1-92fbcf53809c.png

这将启动硬件在环服务器,等待客户端连接到主机。

在主机上运行 hil_host.py 文件,这将启动 HIL 示例。您将看到 HIL 按预期处理数据。

d395bffc-2cf1-11f1-90a1-92fbcf53809c.png

在 VCK190 目标上,您将看到客户端连接,并且应用程序开始在客户端的控制下运行。

d4152cd8-2cf1-11f1-90a1-92fbcf53809c.png

脚本详解

本应用使用了两个脚本,让我们来分析它们的关键要素。 wb_src 文件提供了激励引擎,真正实现了硬件在环 (HIL) 设置。该模块生成一个可重复且完全可控的宽带复杂波形,其外观和行为都与真实信号环境非常相似。它允许启用或禁用多达 16 个独立的子通道,选择性地应用升余弦脉冲整形的 QAM 调制,甚至可以注入恒定(类似直流)通道以进行快速的基本功能检查。对于 HIL 至关重要的是,FIR 滤波器的状态在调用之间得以保留,因此信号在各个处理模块之间保持连续——这与硬件在实际数据流系统中看到的情况完全一致。

d4820a56-2cf1-11f1-90a1-92fbcf53809c.png

d4de528e-2cf1-11f1-90a1-92fbcf53809c.png

d53c0e56-2cf1-11f1-90a1-92fbcf53809c.png

d593f012-2cf1-11f1-90a1-92fbcf53809c.png

d5eed112-2cf1-11f1-90a1-92fbcf53809c.png

d64b857e-2cf1-11f1-90a1-92fbcf53809c.png

HIL_HOST.py 控制着硬件测试,它将设计作为可调用的硬件加速器部署在网络上。在 Python 主机上,我们使用接口规范 JSON 实例化 HIL 客户端,并将其指向开发板的 IP 地址和端口

在主处理循环中,HIL 流程与流式系统非常相似,使用 wb_src 生成复数样本,并将其量化为定点 varray,然后通过 hil_chnlzr.run() 将其传递给 FPGA

一个重要的实际问题是,硬件返回的数据量并非总是均匀分布在所有输出或不同调用之间。为了解决这个问题,我们在主机上显式地将每个输出流缓冲到 FIFO 中,并且仅在所有通道都有数据可用时才释放帧。

d6a4488a-2cf1-11f1-90a1-92fbcf53809c.png

d70399a2-2cf1-11f1-90a1-92fbcf53809c.png

d7607f1e-2cf1-11f1-90a1-92fbcf53809c.png

d7bdd344-2cf1-11f1-90a1-92fbcf53809c.png

d8191a56-2cf1-11f1-90a1-92fbcf53809c.png

d873dffe-2cf1-11f1-90a1-92fbcf53809c.png

d8cd63da-2cf1-11f1-90a1-92fbcf53809c.png

d92dad80-2cf1-11f1-90a1-92fbcf53809c.png

d98c90d4-2cf1-11f1-90a1-92fbcf53809c.png

d9e83cf4-2cf1-11f1-90a1-92fbcf53809c.png

da3fca5a-2cf1-11f1-90a1-92fbcf53809c.png

da97d524-2cf1-11f1-90a1-92fbcf53809c.png

总结

本项目完成了三部曲的演示,展示了如何使用硬件在环验证通用的 AIE、HLS 和 RTL 内核子系统。这是验证的最后一个环节,验证过程从功能仿真开始,逐步过渡到在 Vivado 中进行 RTL 仿真(使用更广泛的设计),最终完成硬件在环验证。

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

    关注

    25

    文章

    5703

    浏览量

    140386
  • matlab
    +关注

    关注

    189

    文章

    3028

    浏览量

    239167
  • 仿真
    +关注

    关注

    55

    文章

    4532

    浏览量

    138647
  • Vitis
    +关注

    关注

    0

    文章

    158

    浏览量

    8424

原文标题:AMD Vitis™ 硬件在环 - 如何使用 Vitis 在硬件在环(HIL)上运行 Vitis 子系统

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用AMD Vitis Unified IDE创建HLS组件

    这篇文章开发者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 传统 IDE) 的基础上撰写,
    的头像 发表于 06-20 10:06 2519次阅读
    使用<b class='flag-5'>AMD</b> <b class='flag-5'>Vitis</b> Unified IDE创建HLS组件

    如何在AMD Vitis Unified IDE中使用系统设备树

    您将在这篇博客中了解系统设备树 (SDT) 以及如何在 AMD Vitis Unified IDE 中使用 SDT 维护来自 XSA 的硬件元数据。本文还讲述了如何对 SDT 进行操作
    的头像 发表于 11-18 11:13 3292次阅读
    如何在<b class='flag-5'>AMD</b> <b class='flag-5'>Vitis</b> Unified IDE中使用<b class='flag-5'>系统</b>设备树

    闲谈Vitis AI|DPUUltraScale平台下的软硬件流程(1)

    本篇中,我想跳过一些细枝末节, 先简单介绍 AMD Xilinx Vitis AI Zynq 这个硬件加速平台下软硬件开发的基本思路和流
    的头像 发表于 12-21 10:15 3584次阅读

    使用AMD Vitis进行嵌入式设计开发用户指南

    由于篇幅有限,本文仅选取部分内容进行分享。 Vitis 简介 AMD Vitis 工具套件包含多种设计技术,用于开发以 AMD 器件(例如,AMD
    的头像 发表于 01-08 09:33 2539次阅读
    使用<b class='flag-5'>AMD</b> <b class='flag-5'>Vitis</b>进行嵌入式设计开发用户指南

    Vitis2023.2使用之—— classic Vitis IDE

    AMD官网下载全系统安装包,或下载网页版安装包,安装好vitis全套组件。打开vivado建一个测试工程编译好后,tcl命令输入框子输入命令 vi
    发表于 03-24 16:15

    Vitis2023.2使用之—— updata to Vitis Unified IDE

    2023.2的classic Vitis IDE工程的方法是编译好vivado工程后重新导出硬件.xsa 基于导出的硬件重新生成平台工程和应用工程。 工程编译好后单击Vitis菜单下的
    发表于 03-24 17:14

    使用Vitis HLS创建属于自己的IP相关资料分享

    。HLS 采用 C 和 C++ 描述并将它们转换为自定义硬件 IP,完成后我们就可以 Vivado 项目中使用该IP。Vitis HLS创建一个新的 HLS 项目:通过从Linux 终端键入
    发表于 09-09 16:45

    AMD全新Vitis HLS资源现已推出

    AMD Vitis HLS 工具允许用户通过将 C/C++ 函数综合成 RTL,轻松创建复杂的 FPGA 算法。Vitis HLS 工具与 Vivado Design Suite(用于综合、布置和布线)及
    的头像 发表于 04-23 10:41 1919次阅读
    <b class='flag-5'>AMD</b>全新<b class='flag-5'>Vitis</b> HLS资源现已推出

    Vitis Unified IDE 和通用命令行参考手册

    功能。此统一 IDE 为端到端的应用开发提供了单一工具,无需多个设计、调试、集成和分析 工具之间反复跳转。您可利用 Vitis Unified IDE 来执行多项任务,同时其具有诸多优势。 本文
    的头像 发表于 09-13 08:15 2089次阅读
    <b class='flag-5'>Vitis</b> Unified IDE 和通用命令行参考手册

    Vitis 统一软件平台文档

    AMD Vitis 软件平台是一款开发环境,主要用于开发包括 FPGA 架构、Arm 处理器子系统和 AI 引擎在内的设计。Vitis 工具与 AM
    的头像 发表于 12-20 10:00 1678次阅读
    <b class='flag-5'>Vitis</b> 统一软件平台文档

    AMD Vitis™ Embedded嵌入式软件开发套件的功能和特性概述

    Vitis Embedded 是一款独立的嵌入式软件开发套件,主要用于为 AMD 自适应 SoC 和 FPGA 中的 AMD 嵌入式处理子系统(基于 ARM 的
    的头像 发表于 04-08 10:50 2188次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Vitis</b>™ Embedded嵌入式软件开发套件的<b class='flag-5'>功能</b>和特性概述

    Windows 10上创建并运行AMD Vitis™视觉库示例

    本篇文章将演示创建一个使用 AMD Vitis™ 视觉库的 Vitis HLS 组件的全过程。此处使用的是 Vitis Unified IDE。如果您使用的是旧版
    的头像 发表于 05-08 14:02 1969次阅读
    <b class='flag-5'>在</b>Windows 10上创建并<b class='flag-5'>运行</b><b class='flag-5'>AMD</b> <b class='flag-5'>Vitis</b>™视觉库示例

    AMD Vitis™设计工具中的Libraries新功能介绍

    AMD Vitis™ 2023.2 设计工具是 Vitis 设计工具变化较大的一个版本,设计流程和界面都发生了变化。
    的头像 发表于 05-29 09:50 1672次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Vitis</b>™设计工具中的Libraries新<b class='flag-5'>功能</b>介绍

    AMD Vitis Unified Software Platform 2024.2发布

    近日,全新 AMD Vitis Unified Software Platform 2024.2 版本推出。
    的头像 发表于 11-27 15:47 1431次阅读

    AMD Vitis AI 5.1测试版发布

    AMD Vitis AI 5.1全新发布——新增了对 AMD Versal AI Edge 系列神经网络处理单元 (NPU) 的支持。Vitis AI 包含优化的 NPU IP、模型编
    的头像 发表于 10-31 12:46 965次阅读