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

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

3天内不再提示

解锁SoC “调试”挑战,开启高效原型验证之路

思尔芯S2C 2024-10-09 08:04 次阅读

由于芯片设计复杂度的提升、集成规模的扩大,以及产品上市时间要求的缩短,使得设计验证变得更加困难。特别是在多FPGA环境中,设计调试和验证的复杂性进一步增加,传统的调试手段难以满足对高性能、高效率的需求。因此,高效的调试(Debugging)手段在原型验证中显得尤为重要。今天,我们将探讨设计调试的常见方法,涵盖从简单到复杂的多种调试。


1. 原型验证为什么重要?随着大规模集成电路设计复杂性的增加,芯片验证面临着巨大的资金和时间挑战。早期开发者只能通过模拟或流片来验证设计,耗时且成本高。原型验证通过在流片前尽可能还原芯片的实际使用场景,确保功能模块的可靠性和稳定性,同时评估性能。这不仅能缩短芯片上市时间,还可以向客户演示产品并提前预售。此外,原型验证还可以显著降低成本。在通过功能验证后,原型验证使得驱动开发能够提前展开,无需等待芯片流片(Tape Out)。当芯片回片后,应用程序可以基于原型验证时开发的驱动进行简单适配,迅速应用于SoC上,进一步缩短上市周期。


03790fb2-85d2-11ef-bb4b-92fbcf53809c.jpg

与软件仿真硬件仿真相比,原型验证的最大优势在于其高性能。当前有多种验证方法可供选择,如软件仿真、硬件仿真和原型验证。三者在芯片前端设计的功能验证阶段发挥着重要作用。相比之下,软件仿真操作简便,但速度较慢,适合小型设计和模块级验证;硬件仿真容量大,扩展性好,调试能力强,适合大型设计的模块、芯片级和系统级验证;而原型验证则运行速度快,但调试能力相对较弱。如今许多用户依赖FPGA芯片供应商提供的调试工具,但这些调试手段相对单一且有限。接下来,我们将详细介绍如何应对这些调试挑战,并介绍思尔芯在这一领域的调试方案。


在调试与观测工具方面,思尔芯的芯神瞳 Prodigy原型验证解决方案就提供了全面且灵活的调试手段,配备了实时控制软件(Player Pro-RunTime)、设计调试软件(Player Pro-DebugTime)、深度调试套件 Multi-Debug Module(MDM)、协同仿真软件ProtoBridge等完整工具链,极大提升了用户效率。这些功能的增加主要是由于思尔芯面向广泛的客户需求,而这是其他厂商可能未能提供的。

2. 设计调试有哪些手段?
在原型验证中,调试的核心任务是定位和解决设计中的故障,以确保系统功能的正确性。特别是在大规模复杂的SoC设计原型验证过程中,工程师需要确保设计中的问题是可调试的,最大程度地减少开发过程中花费在调试上的时间。通常,用户将设计下载到FPGA后,第一次运行时总会遇到各种失败情况。这些失败的原因可能是FPGA原型的网络不正确、设计本身存在问题,或是设计在编译过程中引入的错误(如由于设计分割和引脚复用引起的时序错误)。因此,开发人员需要有效的软件调试和观测工具,来确认硬件是否正常运行,所有功能模块是否按照预期工作,以快速定位和解决问题。这就需要借助外部逻辑分析仪或内嵌逻辑分析仪来探测故障的根源。
目前,常见的设计调试手段包括:基本I/O、AXI总线事务、信号级调试以及基于协议的连接等。多数用户还习惯于使用FPGA厂商提供的内嵌逻辑分析仪,进行原型验证系统上板测试阶段的调试。然而,这些工具在面对复杂的多FPGA设计,即大规模复杂设计时,可能会面临资源消耗过大以及管理难度较高的问题。
思尔芯为工程师们提供了一套全面且灵活的调试解决方案,涵盖从简单到复杂的多种调试方法,满足不同客户在原型验证中的多样化需求,确保调试过程顺利进行。

  • 基本I/O调试(Basic I/Os)


FPGA厂商在其软件生态系统中也提供了多种信号级探测工具,常见的解决方案包括VIO IP核、信号源和探针编辑器,这些工具通常通过JTAG进行监控和驱动网络。而思尔芯的I/O调试功能更加丰富,不仅在原型验证系统上集成了多个基本的I/O接口,如按键、DIP开关、GPIO和UART等,使设计中的交互操作更加直观便捷。此外,思尔芯的Player Pro软件通过虚拟接口增强了远程诊断能力,使调试过程更加高效便捷。

  • 总线事务调试(Bus Transaction Debugging)


在复杂SoC设计中,AXI总线事务调试是一种非常有效的手段,特别是在AXI已成为主流协议的设计中。思尔芯的ProtoBridge解决方案通过PCIe提供约4GB/s的高带宽,实现AXI事务的高性能桥接。该解决方案包括一个AXI桥接的RTL接口,便于与测试设计连接,同时还提供PCIe设备驱动程序和API,支持开发基于软件的激励,很适合软硬件协同开发。此外,思尔芯的原型验证已内建大约10Mbps的以太网调试,支持设计中存储器映射AXI从设备的快速读写访问,可以满足低带宽的AXI调试需求。

  • 信号级调试(Signal Level Debugging)


信号级调试是原型验证中最基础且常用的调试方法,主要通过探测设计中的内部信号来诊断问题。思尔芯的Player Pro软件在此领域表现尤为出色,能够帮助设计人员轻松将内部信号引出并分配给I/O,从而更有效地进行调试。思尔芯还提供了多种扩展卡,方便用户进行针脚连接、3.3V电压转换,此外还增加了额外的按钮和开关接口以及外部逻辑分析仪的连接接口,进一步提高了调试的灵活性和效率。

  • 基于协议的调试(In-System Protocol Debugging)


当FPGA原型与真实世界的数据进行交互时,基于协议的调试尤为重要。思尔芯提供了超过90种现成的扩展卡和参考设计,帮助用户实现多种协议的系统内测试。如果用户有更为特殊的需求,思尔芯还可以提供定制化的解决方案,以优化系统级的测试和调试,确保用户的原型验证过程顺利完成。
强大的调试工具包括逻辑分析仪、协议分析仪和实时监控工具等。这些工具必须能够与原型验证平台无缝集成,提供实时的调试信息和可视化的数据分析功能。此外,还需要支持远程调试,以便在不同地理位置的团队之间进行协作。主要挑战在于如何在不影响系统性能的情况下,提供详尽的调试信息,以及设计直观高效的调试界面。确保这些工具能够快速、准确地反馈系统状态和数据,以便开发人员及时发现和解决潜在问题。通过这些多样化的调试方法,思尔芯不仅帮助用户在原型验证中快速定位问题,还极大地提升了调试效率和系统稳定性,确保设计能够顺利进入下一个开发阶段。

  • 深度逻辑分析调试方案


FPGA厂商的嵌入式逻辑分析仪(如SignalTap和ChipScope)通常用于在FPGA的片上RAM块中采样和存储信号,随后通过JTAG读取这些信号。目前,大多数用户已经习惯使用FPGA厂商提供的嵌入式逻辑分析仪(ILA)来进行单颗FPGA的原型验证系统调试。
然而,对于需要进行深度调试或多FPGA级联的用户来说,常遇到的问题是需要更多内存来存储信号,以及跨FPGA的调试需求。由于FPGA内部资源有限,且多FPGA级联的原型验证系统规模庞大,多个模块通常分散在不同的FPGA中。此时就需要具备cross-trigger功能,即当某颗FPGA中的调试模块触发时,能够同时抓取多颗FPGA中的调试模块的trace数据。一些FPGA厂商提供的ILA可以实现同一颗FPGA内不同的时钟域以及不同FPGA之间的ILA内核的交叉触发。
为了更好地支持多FPGA的信号级探测,思尔芯提供了多 FPGA 并发深度调试方案。最新MDM Pro支持同时对多达8个FPGA进行并发探测,并具备多FPGA触发功能。MDM Pro配备了64GB的内置DDR4内存,能够实现深度信号跟踪。它可以捕获多达16K条信号,分为8组,每组包含2K个探针,而无需重新编译FPGA。这一解决方案通过将MDM Pro预构建到我们的Quad 10M和Quad 19P逻辑系统中,提升了生产力。MDM Pro的触发设置设计直观,且与FPGA厂商工具中的触发设置非常相似,确保了工程师在使用时能够顺畅过渡。
MDM Pro具备灵活性,能够适应不同的设计流程偏好,支持IP模式和编译模式两种流程。在IP模式下,设计人员可以直接在RTL中实例化MDM客户端,以连接他们希望捕获的信号。或者,设计人员也可以通过编译模式,使用Player Pro指定需要捕获的信号,从而提供了一种高效且多样化的调试方式

3. 写在最后
在芯片设计过程中,原型验证在性能上显著优于软件仿真和硬件仿真,尽管在可视性方面稍显不足。这促使了商用原型验证解决方案对高效调试手段的深度需求与重要性,以最大化原型验证的优势。作为国内最早推出原型验证工具的EDA供应商,思尔芯一直以来通过其全面且灵活的调试手段提升原型验证的生产力和效率。由于在大规模复杂 SoC 设计原型验证过程中,可用的可视性往往局限于单个FPGA,这使得跨多个FPGA映射的设计使调试可见性变得更加困难。思尔芯高效且多样化的调试方式,适用于从简单到复杂的多种应用场景,尤其应对多FPGA环境中的复杂挑战,并在工程师加速设计验证和缩短上市时间方面发挥了关键作用。

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

    关注

    452

    文章

    50056

    浏览量

    419963
  • 集成电路
    +关注

    关注

    5372

    文章

    11261

    浏览量

    359921
  • soc
    soc
    +关注

    关注

    38

    文章

    4072

    浏览量

    217614
  • 验证
    +关注

    关注

    0

    文章

    58

    浏览量

    15148
收藏 人收藏

    评论

    相关推荐

    数字芯片设计验证经验分享文章 实际案例说明用基于FPGA的原型来测试、验证和确认IP——如何做到鱼与熊掌兼

    本系列文章从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA上使用硅知识产权(IP)内核来开发ASIC原型项目时,必须认真考虑的一些问题。
    的头像 发表于 10-28 14:53 85次阅读
    数字芯片设计<b class='flag-5'>验证</b>经验分享文章 实际案例说明用基于FPGA的<b class='flag-5'>原型</b>来测试、<b class='flag-5'>验证</b>和确认IP——如何做到鱼与熊掌兼

    解决验证“最后一公里”的挑战:芯神觉Claryti如何助力提升调试效率

    过程中必不可少的一环,它帮助工程师找到问题的根源并进行优化。随着设计复杂性的提升,调试作为验证的“最后一公里”正面临越来越多的挑战。如何有效提升调试效率,已成为行
    的头像 发表于 10-26 08:03 75次阅读
    解决<b class='flag-5'>验证</b>“最后一公里”的<b class='flag-5'>挑战</b>:芯神觉Claryti如何助力提升<b class='flag-5'>调试</b>效率

    快速部署原型验证:从子卡到调试的全方位优化

    够顺利移植到最终芯片上,并完成"bring-up"(即系统启动并正常运行),成为了开发团队面临的一个重要挑战。为了实现这一目标,虽然原型验证具备高性能,能够快速模拟真
    的头像 发表于 09-30 08:04 448次阅读
    快速部署<b class='flag-5'>原型</b><b class='flag-5'>验证</b>:从子卡到<b class='flag-5'>调试</b>的全方位优化

    FPGA算法工程师、逻辑工程师、原型验证工程师有什么区别?

    逻辑工程师和 FPGA 原型验证工程师在工作重点和职责上存在一定的区别: FPGA 算法工程师: 主要关注算法的设计和优化,以在 FPGA 平台上实现高效的计算和处理。他们需要深入理解特定领域的算法
    发表于 09-23 18:26

    康谋分享 | 在基于场景的AD/ADAS验证过程中,识别挑战性场景!

    基于场景的验证是AD/ADAS系统开发过程中的重要步骤,然而面对海量驾驶记录数据时,如何实现自动且高效地识别、分类和提取驾驶记录中的挑战性场景?本文康谋为您介绍IVEX软件识别挑战性场
    的头像 发表于 08-28 10:16 964次阅读
    康谋分享 | 在基于场景的AD/ADAS<b class='flag-5'>验证</b>过程中,识别<b class='flag-5'>挑战</b>性场景!

    生物识别验证在哪里开启

    生物识别验证是一种利用生物特征进行身份验证的技术,包括指纹、面部、虹膜、声音等。随着科技的发展,生物识别验证已经被广泛应用于各个领域,如手机解锁、银行交易、门禁系统等。 一、生物识别
    的头像 发表于 07-08 10:26 636次阅读

    深度学习的模型优化与调试方法

    深度学习模型在训练过程中,往往会遇到各种问题和挑战,如过拟合、欠拟合、梯度消失或爆炸等。因此,对深度学习模型进行优化与调试是确保其性能优越的关键步骤。本文将从数据预处理、模型设计、超参数调整、正则化、模型集成以及调试
    的头像 发表于 07-01 11:41 590次阅读

    光伏行业的精益转型之路

    伏企业纷纷开启精益转型之路,寻求更高效、更可持续的发展模式。 一、光伏行业精益转型的背景 近年来,光伏技术不断进步,成本逐年降低,使得光伏发电逐渐成为具有竞争力的能源形式。然而,随着市场规模的扩大和竞争的加
    的头像 发表于 07-01 11:21 267次阅读

    大规模 SoC 原型验证面临哪些技术挑战

    方法被称为原型验证原型验证在EDA流程中起到了至关重要的作用。一方面,它可以对芯片进行功能验证,确保设计的基本功能符合预期。在基本功能
    的头像 发表于 06-06 08:23 1044次阅读
    大规模 <b class='flag-5'>SoC</b> <b class='flag-5'>原型</b><b class='flag-5'>验证</b>面临哪些技术<b class='flag-5'>挑战</b>?

    西门子数字化工业软件推出Veloce CS硬件辅助验证和确认系统

    创新的 Veloce CS 架构整合了硬件加速仿真、企业原型验证和软件原型验证,将验证和确认周期加快 10 倍,整体成本降低 5 倍
    的头像 发表于 05-08 14:28 616次阅读

    fpga原型验证平台与硬件仿真器的区别

    FPGA原型验证平台与硬件仿真器在芯片设计和验证过程中各自发挥着独特的作用,它们之间存在明显的区别。
    的头像 发表于 03-15 15:07 959次阅读

    fpga原型验证流程

    FPGA原型验证流程是确保FPGA(现场可编程门阵列)设计正确性和功能性的关键步骤。它涵盖了从设计实现到功能验证的整个过程,是FPGA开发流程中不可或缺的一环。
    的头像 发表于 03-15 15:05 1342次阅读

    ECC功能开启后如何验证这个功能是否正常开启呢?

    各位大佬,现在我这边一个项目,代码层面开启ECC监控和中断后,如何验证当真实应用环境下,Ram区或者Flash区某个位被打翻后,会正常触发中断,实现读和回写的功能呢?
    发表于 03-11 06:39

    原型平台是做什么的?proFPGA验证环境介绍

    proFPGA是mentor的FPGA原型验证平台,当然mentor被西门子收购之后,现在叫西门子EDA。
    的头像 发表于 01-22 09:21 1243次阅读
    <b class='flag-5'>原型</b>平台是做什么的?proFPGA<b class='flag-5'>验证</b>环境介绍

    什么是FPGA原型验证?FPGA原型设计的好处是什么?

    FPGA原型设计是一种成熟的技术,用于通过将RTL移植到现场可编程门阵列(FPGA)来验证专门应用的集成电路(ASIC),专用标准产品(ASSP)和片上系统(SoC)的功能和性能。
    发表于 01-12 16:13 1052次阅读