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

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

3天内不再提示

基于AMD Versal自适应SoC的渐进式系统仿真策略

Xilinx赛灵思官微 来源:Xilinx赛灵思官微 2026-05-28 13:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:Adam Taylor

AMD Versal 自适应 SoC 为开发者提供了一种异构计算架构,将可编程逻辑( PL )、AI 引擎以及高性能处理系统集成于单一器件之中。这些计算单元通过可编程片上网络( NoC )互联,并协同用于实现复杂、高性能的系统。

这种架构的灵活性带来了显著的性能和效率提升,但也增加了验证的复杂性。Versal 器件的设计跨越多个领域,包括 AI 引擎图、基于 HLS 或 RTL 的可编程逻辑设计,以及运行在处理系统上的软件。每个领域都使用不同的工具和抽象层,通常由不同团队开发。

验证这些组件作为一个集成系统能否正确运行,是 Versal 器件开发中最具挑战性的环节之一。系统级验证必须确保算法正确、子系统间集成无误,并且部署到硬件后行为正确。传统上,这一层级的验证依赖于硬件仿真,尽管硬件仿真很准确,但其带来了复杂性和性能限制,限制了其在设计早期阶段的实用性。

AMD Vitis 统一软件平台引入了一系列替代仿真流程,克服了这些限制。功能仿真、基于 XSIM 的子系统仿真以及硬件在环验证实现了一种渐进式的验证方法,可以更早启动、执行更快,并降低整体项目风险。这些流程相互补充,可有效应用于 Versal 自适应 SoC 系统开发。

传统基线:硬件仿真

在新系统仿真流程出现之前,Versal 器件设计的主要验证方式是在 Vitis 软件中进行硬件仿真。这一流程结合了多个独立仿真器模拟 Versal 器件的主要子系统。

在典型的硬件仿真验证中,处理系统使用 QEMU 进行仿真,可编程逻辑使用带有 HDL 测试平台的 XSIM 进行仿真,AI 引擎阵列使用基于 System-C 的 AI 引擎( AIE )仿真器进行仿真。这些仿真器协同提供全系统的功能准确性,并支持与可编程逻辑和 AI 引擎交互的软件应用的执行。

尽管这种方法能产生有效且信息丰富的结果,但它较为复杂性。每个仿真器的运行速度远低于实际硅片,而且时间分辨率通常也各不相同。因此,需要投入大量努力来配置和维护仿真器间的同步。

为了保证系统行为的正确性,QEMU、XSIM 和 AIE 仿真器之间的时钟、事件、内存事务和中断必须持续协调。这种跨仿真器同步会带来通信开销和频繁的上下文切换,进而显著降低整体仿真吞吐量。诸如调试可见性和事务级建模等额外因素则会进一步导致执行缓慢。

随着 Versal 自适应 SoC 设计复杂度的提升,流水线更深、数据通路更宽、互连更复杂,硬件仿真的局限性愈发明显。虽然硬件仿真在某些应用场景下仍然很有价值,但其并不总是适用于快速迭代或早期系统验证。

渐进式系统仿真策略

Versal 器件开发并非完全依赖硬件仿真,而是受益于渐进式系统仿真策略,在设计流程的不同阶段应用不同的验证技术。

该策略包含三种互补流程:

功能仿真聚焦高层次算法正确性

基于 XSIM 的子系统仿真可验证 AI 引擎与可编程逻辑间的集成

硬件在环验证是在软件控制下,在真实 Versal 器件上执行设计

每个流程都针对特定的验证目标,避免了在不需要时进行全硬件仿真的开销。这些共同提供了一条从算法到硬件的结构化路径。

流程 1

Versal 自适应 SoC 系统的功能仿真

功能仿真侧重于验证设计“做什么”,而非其在周期层面的行为。对于 Versal 器件而言,这通常涉及在将 AI 引擎图和 HLS 生成的内核集成到更大的系统之前对其进行验证。

Vitis 功能仿真( Vitis Functional Simulation )使开发人员能够使用 PythonMATLABC++(早期访问)对 AI 引擎和 HLS 设计进行仿真。这使得验证可以在与算法开发相同的环境中进行,从而减少了软件建模与硬件实现之间的摩擦。

由于功能仿真运行于更高的抽象层,其仿真性能远高于硬件仿真。这使得在设计流程早期处理大规模数据集、探索架构参数、评估数值性能指标变得切实可行。

为了实现软件框架与 Versal 器件设计之间的无缝交互,功能仿真采用统一数组类型,支持 AI 引擎和 HLS 内核常用的定点和浮点数据格式。这就使得数据交换无需手动转换,也不会面临精度损失。

功能仿真对于早期验证尤其有效,因为在早期验证中,快速迭代和算法洞察比周期准确性更重要。

从算法到子系统的过渡

一旦功能正确性得到验证,下一步挑战就是确保 AI 引擎设计能够与可编程逻辑和系统级基础设施正确集成。在这一阶段,仅靠功能仿真已不够,因为它无法捕捉数据流动、接口行为或子系统交互。

这一转变标志着子系统级仿真变得至关重要。

流程 2

基于 XSIM 的子系统仿真

基于 XSIM 的仿真使 Vitis 子系统可以直接在 AMD Vivado 设计套件环境中进行仿真。在此流程中,在 Vitis 中定义的设计(包含 AI 引擎、HLS 和 PL 内核)被打包为一个 Vitis 子系统,并导入到 Vivado 设计套件项目中,与周围的可编程逻辑进行集成。

Vitis 子系统利用 AI 引擎测试平台进行测试,取代了处理系统。在此情况下,测试平台应采用 System Verilog 编写,从而无需再使用 QEMU。与硬件仿真相比,这能显著降低仿真开销。该方法让可编程逻辑设计师不仅能验证 AI 引擎功能,还能检查数据传输、接口正确性、与自定义 RTL 模型的集成行为,同时保持对 RTL 和 AI 引擎活动的可见性。

由于该流程避免了完整的处理器仿真及相关开销,因此其执行速度远超硬件仿真,同时仍能提供有意义的系统上下文信息。它是功能仿真与硬件执行之间的重要中间步骤。至关重要的是,基于 XSIM 的验证是周期准确的( AI 引擎仿真为周期近似),这使得开发人员可以验证性能和接口,还可以验证吞吐量和时延。

借助 Vitis 工具实现分析和可见性

在基于 XSIM 的仿真过程中,可以利用 Vitis Analyzer 对 AI 引擎的执行情况进行分析。这样能够深入了解图结构、tile 利用率和执行行为,进而补充 Vivado 工具所提供的 RTL 级可见性。

通过将 XSIM 中观察到的子系统行为与 AI 引擎执行数据进行关联,开发人员可以在进行硬件实现前发现性能瓶颈和集成问题。

在此阶段,团队可以确信算法是正确的,并且 AI 引擎与可编程逻辑子系统能够按预期协同工作。

流程 3

硬件在环验证

硬件在环验证是渐进式仿真策略的最后阶段。在此流程中,设计部署到真实 Versal 器件上,但仍由基于主机的软件环境控制。

借助 Vitis 硬件在环功能,Vitis 子系统与运行在目标 Versal 器件上的轻量级服务器集成在一起。主机系统通过以太网与该服务器通信,发送测试向量并接收结果进行分析。来自主机的数据可通过 MATLAB 或 Python 传递,两种语言均为算法开发的常用编程语言。

与硬件仿真不同,计算在真实硅片上完成。这便消除了跨仿真器同步的需求,并允许精准测量性能、时序和数值行为。同时,该流程的软件驱动特性保证了可重复性和可观测性。

硬件在环测试使开发人员能够在将设计集成到完整系统前验证子系统的行为和性能,从而在开发的关键阶段降低风险。

通过渐进式验证降低风险

通过围绕功能仿真、基于 XSIM 的子系统仿真和硬件在环执行构建验证流程,Versal 器件开发人员可以在不需要硬件仿真时,避免硬件仿真带来的成本和复杂性。

每个阶段都针对特定的风险类别,并逐步增强验证信心。功能仿真可以验证算法,子系统仿真可以验证集成,硬件在环可以验证实际执行情况。

这种方法能够实现更快迭代、更早洞察、更可预测的系统级结果。

总结

随着 Versal 自适应 SoC 设计复杂性的不断提升,验证策略必须超越单纯依赖硬件仿真。尽管硬件仿真仍然具有价值,但其复杂性和性能限制使其不尽然适合早期和迭代验证。

Vitis 统一软件平台提供了一套互补的仿真与验证流程,解决了这些挑战。功能仿真、基于 XSIM 的子系统仿真以及硬件在环验证,共同构成了一种适用于 Versal 设计的可扩展且高效的系统级验证策略。

通过逐步应用这些流程,您可降低风险、提升信心,并加快从算法开发到硬件部署的进程。

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

    关注

    25

    文章

    5725

    浏览量

    140659
  • soc
    soc
    +关注

    关注

    40

    文章

    4661

    浏览量

    230638
  • 仿真器
    +关注

    关注

    14

    文章

    1054

    浏览量

    88280
  • Versal
    +关注

    关注

    1

    文章

    179

    浏览量

    8564

原文标题:AMD Versal 自适应 SoC 设计的系统级验证加速渐进式方案

文章出处:【微信号:赛灵思,微信公众号:Xilinx赛灵思官微】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    第二代AMD VERSAL AI EDGE系列全面赋能汽车ADAS系统

    选择 AMD 自适应 SoC 和 FPGA 第二代 AMD Versal AI Edge 系列自适应
    的头像 发表于 03-27 16:30 1081次阅读
    第二代<b class='flag-5'>AMD</b> <b class='flag-5'>VERSAL</b> AI EDGE系列全面赋能汽车ADAS<b class='flag-5'>系统</b>

    AMD Versal CPM5 QDMA Gen4x8 ST Only Performance Design CED示例

    的驱动程序来运行性能测试的步骤。这是 AMD Versal 自适应 SoC CPM QDMA 端点 (EP) 设计中可用的预设之一。
    的头像 发表于 03-23 09:12 1970次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b> CPM5 QDMA Gen4x8 ST Only Performance Design CED示例

    AMD Versal自适应SoC中eMMC烧录/启动调试检查表(上)

    本篇博文提供了有关 AMD Versal 自适应 SoC 中 eMMC 烧录和启动设置的技巧和指南。它还可用于调试 eMMC 烧录/启动失败。提交服务申请个案前,应先复查以下检查表。
    的头像 发表于 03-09 10:24 2121次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b><b class='flag-5'>自适应</b><b class='flag-5'>SoC</b>中eMMC烧录/启动调试检查表(上)

    使用Aurora 6466b协议实现AMD UltraScale+ FPGA与AMD Versal自适应SoC的对接

    在本博客中,我们将介绍使用 Aurora 6466b 协议实现 AMD UltraScale+ FPGA 与 AMD Versal 自适应 SoC
    的头像 发表于 01-13 14:04 4043次阅读
    使用Aurora 6466b协议实现<b class='flag-5'>AMD</b> UltraScale+ FPGA与<b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b><b class='flag-5'>自适应</b><b class='flag-5'>SoC</b>的对接

    AMD Vivado Design Suite 2025.2版本现已发布

    AMD Vivado Design Suite 2025.2 版本现已发布,新增对 AMD Versal 自适应 SoC 的设计支持,包含新
    的头像 发表于 12-09 15:11 1527次阅读

    AMD Versal自适应SoC内置自校准的工作原理

    本文提供有关 AMD Versal 自适应 SoC 内置自校准 (BISC) 工作方式的详细信息。此外还详述了 Versal 的异步模式及其
    的头像 发表于 10-21 08:18 4527次阅读

    AMD Vivado IP integrator的基本功能特性

    我们还将带您了解在 AMD Zynq UltraScale+ MPSoC 开发板与 AMD Versal 自适应 SoC 开发板上使用 IP
    的头像 发表于 10-07 13:02 2432次阅读
    <b class='flag-5'>AMD</b> Vivado IP integrator的基本功能特性

    MicroBlaze V处理器嵌入设计用户指南

    AMD 自适应计算文档按一组标准设计进程进行组织,以便帮助您查找当前开发任务相关的内容。您可以在设计中心页面上访问 AMD Versal 自适应
    的头像 发表于 09-25 16:56 1274次阅读
    MicroBlaze V处理器嵌入<b class='flag-5'>式</b>设计用户指南

    新一代嵌入开发平台 AMD嵌入软件和工具2025.1版现已推出

    )文档和板级支持包( BSP ) 适用于裸机环境的 AI 引擎计算图 API(用于进行 PS 控制),现可在采用 AI 引擎和 AI Engine-ML 架构的 AMD Versal 自适应
    的头像 发表于 08-20 09:15 4361次阅读

    如何在AMD Vitis Unified 2024.2中连接到QEMU

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

    AMD Versal自适应SoC上使用QEMU+协同仿真示例

    在任意设计流程中,仿真都是不可或缺的关键组成部分。它允许用户在无任何物理硬件的情况下对硬件系统进行确认。这篇简短的博客将介绍如何使用 QEMU + 协同仿真来对 AMD
    的头像 发表于 08-06 17:21 2289次阅读
    在<b class='flag-5'>AMD</b> <b class='flag-5'>Versal</b><b class='flag-5'>自适应</b><b class='flag-5'>SoC</b>上使用QEMU+协同<b class='flag-5'>仿真</b>示例

    无刷直流电机模糊自适应PID的研究及仿真

    了理想的相电流、反电动势以及扭矩的波形图。仿真结果表明相对于常规PI控制,采用模糊自适应PI控制器实现负载变化情况下转速的快速跟踪控制,提高了系统的抗干扰能力,提高了系统的响应速度。
    发表于 07-07 18:26

    AMD第二代Versal AI Edge和Versal Prime系列加速量产 为嵌入系统实现单芯片智能

    我们推出了 AMD 第二代 Versal AI Edge 系列和第二代 Versal Prime 系列,这两款产品是对 Versal 产品组合的扩展,可为嵌入
    的头像 发表于 06-11 09:59 2191次阅读

    利用AMD VERSAL自适应SoC的设计基线策略

    您是否准备将设计迁移到 AMD Versal 自适应 SoC?设计基线是一种行之有效的时序收敛方法,可在深入研究复杂的布局布线策略之前,帮您
    的头像 发表于 06-04 11:40 1008次阅读

    Versal 600G DCMAC Subsystem LogiCORE IP产品指南

    AMD 自适应计算文档按一组标准设计进程进行组织,以便帮助您查找当前开发任务相关的内容。您可以在设计中心页面上访问 AMD Versal 自适应
    的头像 发表于 06-03 14:25 1045次阅读
    <b class='flag-5'>Versal</b> 600G DCMAC Subsystem LogiCORE IP产品指南