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

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

3天内不再提示

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

XILINX开发者社区 来源:XILINX开发者社区 2025-11-18 11:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文作者:AMD 工程师 Stephen MacMahon

您将在这篇博客中了解系统设备树 (SDT) 以及如何在 AMD Vitis Unified IDE 中使用 SDT 维护来自 XSA 的硬件元数据。本文还讲述了如何对 SDT 进行操作,以便在 Vitis Unified IDE 中实现更灵活的使用场景。

什么是 XSA,它包含什么

XSA 是在 AMD Vivado 设计套件中根据 Vivado IP integrator 使用的块设计 (BD) 而生成的容器文件。

这意味着只有 BD 中包含的 IP 才会出现在 XSA 中。如果用户拥有 BD 外部的 IP,或者举例来说,如果使用 Chip2Chip 解决方案,那么在创建 XSA 时将使用主 BD。

系统设备树 (SDT)

如果用户不了解 SDT,我们可以在此快速回顾一下。SDT 是 Vitis Unified IDE 2023.2 版本中引入的一个新概念。

SDT 是使用 SDTGEN 实用工具创建的 .dts/.dtsi 文件集合,而平台组件则是使用从 Vivado 导出的 XSA 生成。

系统设备树 (SDT) 采用与 Linux 领域使用的设备树相同的概念。然而,Linux 中使用的设备树是针对特定目标处理器的,并且只包含与目标处理器的存储器映射上的 IP 对应的节点。顾名思义,系统设备树具有系统感知能力。这意味着所有 CPU 集群以及每个处理器的地址映射都包含在系统设备树中。SDT 还包含所有顶层存储器节点。虽然可以从 SDT 中提取目标处理器的设备树二进制对象 (DTB),但这并非 Vitis 中 SDT 的设计用途。在 Vitis 中,SDT 单纯用于维护硬件元数据。

如何在 Vitis 中使用 SDT?

当需要硬件元数据时,Vitis 就会使用 SDT。 其中包括创建 xparameters.h 文件、动态生成驱动程序配置文件、获取目标处理器上的驱动程序列表、生成连接器脚本以及创建 BSP。

这些流程都使用基于 Python 的 Lopper 实用工具来读取 SDT,并提取执行任务所需的特定元数据。

用户如何释放系统设备树的潜力

如上所述,Lopper 的用例之一即返回目标处理器上的驱动程序列表。这意味着如果您拥有 BD 外部的 IP,系统设备树不会自动填充该元数据。然而,您可以通过操纵 SDT 文件集来包含此元数据。

如上所述,XSA 只能识别 Vivado IP integrator 的块设计内的 IP。这意味着如果您使用诸如 AMD Versal 自适应 SoC VCK190 或 AMD Zynq UltraScale+ ZCU111 等开发板,那么板级信息(例如 PHY 或 I2C 总线上的时钟)将会丢失。

在系统设备树中,您可以通过传入 SDTGEN 提供的板级 .dtsi 文件,使 SDT 具备“板感知”能力。

在 Vitis Unified IDE 中为 SDT 添加外部 IP

在 Vitis 2024.1 中,您在创建平台组件时可以使用一个高级选项来释放 SDT 的潜力。

例如,这里有一个外部 IP (axi_gpio),通过外部 AXI 接口连接到 LPD CIPS 接口,再与处理器相连。

0358c596-c081-11f0-8c8f-92fbcf53809c.png

使用自定义 DTSI 文件把该节点追加到 amba_pl 节点上。这里创建了 axi_gpio_0 节点。

随后,把该节点添加到 CPU 地址映射中。

03bdadf8-c081-11f0-8c8f-92fbcf53809c.png

然后,将其作为用户 DTS 文件传递给 SDT。

注释:此处不需要该 Repo。对于此用例,仅需作为用户 DTS 文件传入的 DTSI 文件即可。

0424b444-c081-11f0-8c8f-92fbcf53809c.png

如果随后构建或重新生成 BSP,那么会看到在 BSP 中已添加 AXI GPIO 驱动程序。

0486c51c-c081-11f0-8c8f-92fbcf53809c.png

同样,如前所述,如果您使用 Versal VCK190 或 AMD Zynq UltraScale+ ZCU102 等开发板,只需将开发板 DTS 文件添加到 SDT 即可实现“板感知”。

注释:此处不需要该 Repo。对于此用例,仅需开发板 DTS 文件即可。

04eb99c4-c081-11f0-8c8f-92fbcf53809c.png

我们可以看到生成的 SDT 文件集(包括开发板文件),如下所示:

0550cf7e-c081-11f0-8c8f-92fbcf53809c.png

总结

总结而言,我们了解了 XSA 文件中包含哪些元数据,以及 Vitis Unified IDE 如何通过系统设备树提取并维护这些元数据。

我们还学习了在何处使用 Lopper 实用工具来按需提取这些元数据。最后,我们讨论了如何操纵 SDT,以解锁诸如使用外部 IP 和让 SDT 具备“板感知”能力等用例。

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

    关注

    25

    文章

    5705

    浏览量

    140394
  • 设备树
    +关注

    关注

    0

    文章

    45

    浏览量

    3595
  • Vitis
    +关注

    关注

    0

    文章

    158

    浏览量

    8424

原文标题:开发者分享|在 AMD Vitis™ Unified IDE 中释放系统设备树 (SDT) 的潜力

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用AMD Vitis Unified IDE创建HLS组件

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

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

    Vivado IP 流程(Vitis Unified),在这篇 AMD Vitis HLS 系列 3 中,我们将介绍如何使用 Unified
    的头像 发表于 07-02 10:55 1666次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Unified</b> <b class='flag-5'>IDE</b>中创建视觉库HLS组件

    何在AMD Vitis Unified 2024.2中连接到QEMU

    在本篇文章我们将学习如何在 AMD Vitis Unified 2024.2 中连接到 QEMU。 这是本系列的第 2 篇博文。要了解如何设置和使用 QEMU + 协同仿真,请参阅开发
    的头像 发表于 08-06 17:24 1990次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>AMD</b> <b class='flag-5'>Vitis</b> <b class='flag-5'>Unified</b> 2024.2中连接到QEMU

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

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

    Vitis2023.2使用之—— classic Vitis IDE

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

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

    上一章聊了一下vitis2023.2怎样使用classic Vitis IDE,这章我们来说一说基于classic Vitis IDE的工程
    发表于 03-24 17:14

    何在Vitis HLS中使用C语言代码创建AXI4-Lite接口

    在本教程中,我们将来聊一聊有关如何在 Vitis HLS 中使用 AXI4-Lite 接口创建定制 IP 的基础知识。
    的头像 发表于 09-13 10:04 7662次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Vitis</b> HLS<b class='flag-5'>中使</b>用C语言代码创建AXI4-Lite接口

    Vitis IDE入门helloworld程序

    第一个Xilinx Vitis IDE入门helloworld程序
    发表于 07-25 17:37 1880次阅读
    <b class='flag-5'>Vitis</b> <b class='flag-5'>IDE</b>入门helloworld程序

    Vitis IDE Git集成快速入门

    在本快速入门演示中,将探讨如何在 Vitis 中使用 Git 集成以及如何使用团队操作来共享 Vitis 工程。
    的头像 发表于 05-12 15:01 2204次阅读
    <b class='flag-5'>Vitis</b> <b class='flag-5'>IDE</b> Git集成快速入门

    何在Vitis HLS GUI中使用库函数?

    Vitis™ HLS 2023.1 支持新的 L1 库向导,本文将讲解如何下载 L1 库、查看所有可用功能以及如何在 Vitis HLS GUI 中使用库函数。
    的头像 发表于 08-16 10:26 2472次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Vitis</b> HLS GUI<b class='flag-5'>中使</b>用库函数?

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

    AMD Vitis Unified IDE 是用于为 AMD 自适应 SoC 和 FPGA 器件开发应用的设计环境。它集成了
    的头像 发表于 09-13 08:15 2096次阅读
    <b class='flag-5'>Vitis</b> <b class='flag-5'>Unified</b> <b class='flag-5'>IDE</b> 和通用命令行参考手册

    Vitis 统一软件平台文档

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

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

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

    AMD Vitis Unified Software Platform 2024.2发布

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

    何在应用程序调试期间分析栈和堆使用情况

    ,并在 Unified IDE 中仍可使用。本文涵盖了如何在 Vitis 中使用分析工具在应用程序调试期间对栈和堆进行监控。
    的头像 发表于 10-24 16:54 1034次阅读
    如<b class='flag-5'>何在</b>应用程序调试期间分析栈和堆使用情况