芯片 Bring Up 正在发生变化

文摘   2024-10-31 06:01   上海  
硅片在验证和确认中的作用正在发生变化。虽然人们希望向左移动,但硅片也已成为一种有价值的验证引擎。

我们经常听到或者看到,第一块硅片从代工厂返回时,人们为芯片通电,这让人紧张不已。比如长城点亮了紫荆芯片如今,更好的验证方法、更多的仿真使用和更成熟的制造实践已经改变了团队利用第一块硅片的方式。它即将再次发生转变,而且即将出现一些有趣的可能性。
过去被认为是硅片后验证的大部分内容都经历了"向左移动"。它现在是一种硅片前功能。软件的启动通常在虚拟模型上流片或加载到仿真器或 FPGA 原型中的 RTL 之前就开始了。然而,当代芯片的状态空间如此之大,以至于不可能使用这些引擎完全验证芯片,因此仍然存在重大的验证挑战。
虽然验证检查产品是否符合规范,但确认试图定义产品是否适合用途。越来越多的设计可能正在追逐一个移动的目标,这意味着必须在产品的整个生命周期内不断评估验证。
“人们非常希望尽早采取行动,”Imagination Technologies 验证平台副总裁 Colin McKellar 说道。“他们不想拿回芯片,在实验室里花两个月时间,然后在软件上花四个月时间,直到芯片准备好,而是希望非常快速地推出产品,并尽快实现大批量生产。”
但硅片后验证和确认的时间并没有减少。“硅片后验证和确认越来越重要,”UltraSoC 营销总监 Andy Gothard 说道。“越来越多的工程周期被花在硅片后启动和系统集成上。他们正在解决一些相当微妙的问题,这些问题只会在硅片发布后才出现,例如,“为什么 CPU 没有提供预期的性能?”或者“为什么有些 DMA 传输需要太长时间?”许多这些问题直到芯片集成到最终系统中才会出现,而且越来越少,直到产品本身实际部署到现场才出现。这就是为什么底层的固件和软件更新现在已成为现实。”

连接硅片发布前和硅片发布后的验证
随着越来越多的系统级验证测试在硅片发布前运行,业界不得不开发支持这些测试开发的工具。“开发和调试测试用例可能与设计一样复杂,所以你希望提前完成它们,”Cadence 产品管理和营销高级集团总监 Frank Schirrmeister 说。“然后,当你进入硅片发布后,你真的可以说我已经验证了这些测试平台正在测试一些有效的东西。你不必调试测试平台。你可以专注于调试设计。”
知道您有一个可以在两种环境中运行的测试用例非常有意义。“客户确实有兴趣在硅片后重新运行硅片前测试,因为他们可以用来设置测试内容的设置在硅片前环境中几乎是模仿的,”Synopsys 产品营销高级总监 Johannes Stahl 说。“他们可以定义流量形状、流量格式、不同以太网通道加载流量的方式。这对于缩短硅片运行时间非常有价值,也是人们缩短硅片后验证的另一种方式。”
硅片之后的验证引擎只是另一种验证引擎。西门子旗下 Mentor 公司战略营销总监 Stephen Bailey 表示:“每次你换到不同的引擎时,都可以重新使用之前做过的测试,这样做或许是个明智的选择。你可以将它们用作冒烟测试。但这只是为了确保你已准备好继续前进,开始在新引擎上实现新目标。硅片本身也是一样,它是最后一个引擎。硅片之前会用到一组测试。你会编写诊断程序和想要使用的各种东西,然后在硅片出来之前验证所有这些。这将在仿真或原型中完成。一旦所有这些事情都检查完毕,你就会开始将尽可能多的真实世界测试数据输入其中。它可以是内部的软件方面,也可以是外部接口。这实际上取决于目标和应用市场。你会不断尝试暴露任何问题。自己发现问题总比客户发现问题要好。然后,你也许会有一个软件修复程序。”
硅片前可以进行的验证非常有限。“硅片前执行总是比真正的硅片慢几个数量级,因此你无法运行那么多周期,也无法看到在系统环境中进行验证时发生的所有真实测试用例,”Synopsys 的 Stahl 说。“你无法在硅片前消除这种风险。在硅片前,你可能会运行 10 个场景,这些场景在硅片后重新运行,并且都有效。当你扩展场景时,你可能会发现一个不起作用的场景。你必须对硅片前环境进行编程以运行该场景,这会让你有更多观察力,因为你可以完全看到硅片。因此,硅片后和硅片前调试能力之间的联系是存在的。它一直都存在。当我们拥有完全镜像的测试能力时,它会变得更加强大。”


处理错误
有些错误会设法逃脱。SmartDV 北美应用工程总监 Bipul Talukdar 表示:“一旦发现功能性错误,就必须在 RTL 仿真环境中重现相同的行为,以便正确探索、调试和解决错误。对于此仿真,在验证过程中应用了仿真和形式验证工具。需要采用标准化的面向应用的硅后验证方法才能成功。”
重现错误可能具有挑战性。“这其中有运气的成分,因为您必须希望能够以与硅片中的位完全相同的组合来操纵事物,这并不总是那么容易,”Imagination 的 McKellar 表示。“随着复杂性的增加,这变得越来越困难。如果您无法以易于调试的方式重现硅片问题,那么很快就会变得非常痛苦。我们可以进行扫描转储,然后将其读回模拟器,然后推动事物并希望我们能够使用扫描输出进行捕获,以获得最后已知良好状态的起点。但这可能非常具有挑战性且耗时。”
一些公司在实验室电路板上解决了这个问题。Mentor 的 Bailey 说:“模拟器有一个名为确定性 ICE 的应用程序。即使你正在接收 ICE 输入,它也可以捕获该输入并在虚拟使用模式下重放它。这使你能够在那里进行调试。在这里,你采用相同的概念,但从实际的硅片开始。现在你想返回并在原型或仿真中重放它,这样我可以更轻松地进行调试。实验室电路板可以提供嗅探器,可以捕获进入芯片的内容。我可以看到许多人会使用外部嗅探器记录系统,因为传入的数据量很大 - 因此芯片没有足够的内存来捕获所有数据。在芯片内,可能会有仪器来帮助记录芯片内部发生的特定序列。它处于这种模式,然后发生了这种情况,然后发生了这种情况。这对于重现错误可能很重要。”
一些 IP 提供商嵌入了帮助分析问题的功能。“硬件和软件问题的硅片调试时间可能非常长,因此重点是提高 SoC 的可见性, MachineWare 发言人表示。“通过使用专用电路,可以将问题隔离到选定的 IP,并可以更好地分析覆盖范围。嵌入式逻辑分析仪电路可以在芯片上连接到 IP 信号或接口,通过分析序列、选择性跟踪 IP 信号来提供内部可见性,从而减少调试时间并改善覆盖率分析。”
人们关注的内容已从简单的可见性转变为了解系统级正在发生的事情。“启动、硅片后调试、客户工程和现场性能优化都需要工程人员的才能,他们对芯片、周围系统及其上运行的软件有着深入的了解,”UltraSoC 的 Gothard 说。“硬件监视器必须完全非侵入式,因为你正在观察现实世界的行为。它们必须非常智能,这样工程师才能专注于特定的行为,并大幅减少需要解析和吸收的数据量。自动化工具可以发现超出人类能力的模式和异常。”
“这不是是否要添加的问题,而是必需品,”Stahl 说。“虽然成本不高,但如果没有它,当硅片无法正常工作时,你几乎没有机会找出可能出现的问题。”
有时,错误不起作用。“一家数据中心公司告诉我们,他们插入芯片的功能只增加了几个百分点的开销,”Cadence 的 Schirrmeister 说。“如果他们发现意外的性能下降,他们可以将其切换到调试模式,并找出并隔离问题——通常是在硬件/软件接口。他们愿意承受一些影响,以便能够保留调试逻辑,这样他们就可以查看实际硅片中的性能问题。”

桥接产品
监控现有产品可用于帮助定义下一代产品。“有如此多的处理器和如此多的东西需要优化,因此硅片后分析和监控的重要性正在增加,”Stahl 说。“在硅片后阶段,您可以做更多的事情并收集更多数据。这可能会让您获得更多可用于下一代架构的信息。”
可以使用多代产品方法。“流片不是由芯片是否完美或是否通过验证决定的,”Schirrmeister 说。“它是由满足‘这个航天飞机’或‘这个最后期限’的需要驱动的。‘我现在需要一些东西,我必须有足够的信心,我已经验证了足够多的东西,才能得到合理的东西。’对于下一代,您可以使用从以前的芯片和虚拟平台创建的跟踪来定义环境特征。您确实需要跨多代芯片进行规划,尤其是对于较大的公司而言。这是验证和性能优化的概念。这些是现代设计中很难发现的问题。”

结论
虽然部分硅片后验证任务已被推至硅片前阶段,但芯片的复杂性也使得硅片后验证和确认比以往任何时候都更加重要。芯片内事件的复杂交互意味着产品必须针对部署期间看到的流量模式和场景进行调整,并且需要捕获和分析这些信息。
便携式刺激等新验证技术使弥合两个阶段之间的差距变得更加容易,现在可以在硅片前开发和调试测试台,并可以创建大量场景,然后在硅片后执行。这种通用环境使将问题带回模拟/仿真世界变得更加容易。

软硬件协同设计 HW-SW Co-Design
欢迎后台留言,AI 客服全天在线。脱离物理硬件,开发测试和调试软件。基于虚拟原型的软硬件协同设计,提前一年实现产品上市创收,降低一半开发时间。
 最新文章