芯片验证工具等待人工智能“拯救”

芯片验证工具等待人工智能“拯救”
2024年07月04日 17:54 时光倒流二十年

来源:半导体产业纵横

扩大的验证流程差距在召唤工具的改进,人工智能可能会发挥更大的作用。

验证工程师是半导体行业的无名英雄,但他们正处于崩溃的边缘,迫切需要现代化的工具和流程来应对快速增加的压力。

验证不再仅仅是确保功能在实现时得到精准呈现,单单这一点就是一项无解的任务,但验证已承担起许多新的责任。其中一些责任来自技术进步,这些进步带来了更多问题,例如热问题。汽车等新应用领域增加了对安全性和保密性的需求,并且参数问题急剧增加,远远超出了简单的功率评估。除此之外,芯片行业正在接近另一个转折点,这一转折点是由向 2.5D 和 3D 封装技术的迁移引发的。

现有的验证工具和方法是 20 年前开发的。自那时以来,工具容量和性能只得到了缓步改进,而设计规模却迅速增加。尽管便携式刺激(一种为将验证意图与执行验证的引擎分离开而创建的 Accellera 标准)提供了一些缓解,但采用速度缓慢,缺乏全面的流程。

除了技术因素导致验证过程压力增加之外,还需要考虑人为因素。团队需要用更少的时间完成更多工作,而人才短缺制约了该行业的发展。

接近极限

当今使用的工具是在区块更小、系统规模与当今区块相似的基础上开发的。验证永远不可能百分百完成,这意味着团体必须谨慎决定将精力投入到何处,以及他们愿意承担哪些风险。

Axiomise 首席执行官 Ashish Darbari 表示:“由于 AI/ML 革命为我们正在构建的设计类型增加了新的维度,设计复杂性正在以前所未有的速度增加。”“这些系统具有严格的功率、性能和面积 (PPA) 要求。采用更好的流程和高级验证方法(例如形式验证)还不够。该行业仍然严重依赖刺激的不完整动态模拟方法,这不仅允许易于捕获的错误泄漏到硅片中,而且也没有机会捕获由于单时钟或多时钟域中的深状态机并发交互而出现的复杂错误。”

更糟糕的是,IP 越来越模态化。“一个模块可能有 1,500 个规格项目,”Keysight 的业务开发、营销和技术专家 Chris Mueth 说。“它们中的很多都是相互依赖的,与操作模式紧密相关,但也有不同的电压、不同的温度等等。在 6G 模块中,你有无数的模式和频段可供传输,而且它们都是相互依赖的。从频率、带宽、数据传输速率的角度来看,它们正在达到极限。你可能认为设计已经完成,但你仍然可能错过其中一种模式。这最终可能会成为一个问题。即使在今天的数字时代,如果你没有达到性能要求,就会失败。一切都变成了性能模拟。”

有时参数故障会被忽略。“更多的故障是软故障,有时也称为参数故障,”Ansys 产品营销总监 Marc Swinnen 说道。“芯片可以工作,但它应该以 1.2 千兆赫的速度运行,但最高只能达到 1.0 千兆赫。当你观察任何大型芯片时,寄生元件的数量都会激增到数十万。”

这增加了失败的风险。“在验证 IP 时,他们会询问它将在何种环境下使用,”Synopsys 研究员 Arturo Salz 说。“他们无法验证所有可能的排列,而是会等待系统准备就绪,并将大部分验证工作推迟到系统级。这通常是一个误区,因为 IP 级错误很难在系统级找到。这是一个更大的问题。对于多芯片,你将没有这个选择,因为该芯片 IP 可能已经制造出来,你必须在开始将其集成到下一个系统之前对其进行验证和测试。”

超越极限

约束随机算法在首次推出时取得了巨大进步,但现在却举步维艰。“我经常将约束随机算法比作泳池清洁工,”Synopsys 的 Salz 说道。“你一定不想对泳池的形状进行编程,虽然它是随机的,但泳池的周长是固定的。不要爬上墙壁,这是低效的。它会穿过泳池中心的次数比穿过角落的次数多得多,但只要有足够的时间,它就能覆盖整个泳池。由此引申,我们能扫荡太平洋吗?不,它太大了。你需要选择合适的方法。在块级别,有效地部署该方法。形式化方法也是如此,它可能没有能力在系统级别进行形式化检查。”

这不仅是方法的规模不对,还占用了大量最宝贵的人力资源。“仿真测试平台漏掉了这么多错误,这并不奇怪,”Axiomise 的 Darbari 说。“与正式的测试环境相比,即使对于中等复杂的设计,UVM 测试平台也需要更多的时间来启动。UVM 依赖大量的人力,因为 UVM 的基础需要大量的人力投入来编写序列,而这些序列最终不会对 DUT 进行严格的测试。这使负担转移到功能覆盖上,以查看差距在哪里。在许多情况下,仿真工程师根本没有时间去了解设计规范。验证工程师没有接受过 RTL 设计方面的教育,期望他们了解微架构和架构的细节要求太高了。”

简而言之,问题已经超出了工具的能力范围。“我不认为 UVM 已经失去动力,”Fraunhofer IIS 自适应系统工程部门虚拟系统开发小组的 Gabriel Pachiana 说道。“对于其预期用途而言,它仍然是一款出色的工具。我们需要的是充分利用它,在其基础上构建更多验证软件,例如,解决硬件-软件验证的复杂性。”

Shift left

Shift left这个术语在业界被广泛使用,但验证迫切需要Shift left。这意味着要尽早在高性能的设计抽象层面进行验证。现有的模拟器或仿真器不具备必要的性能,等到 RTL 阶段就太晚了。Breker 首席执行官Dave Kelf 表示:“在这个过程中,Shift left意味着将验证应用于 SystemC 算法模型或虚拟平台。这极大地简化了从规范到设计验证的过程。因此,在虚拟平台上制定系统验证计划,然后在仿真器或原型上进行系统验证时重新应用,可能会提供足够的方法精简,使有效的系统验证成为现实。”

然而,整个过程尚未完全开发。“如果虚拟原型是黄金模型,你如何将它一路延伸到芯片并知道芯片仍然是正确的?” Siemens EDA 战略验证架构师 Tom Fitzpatrick 问道。“物理原型、FPGA 原型或仿真等东西,无论底层引擎如何,都具有相同的系统视图,这一点非常重要。验证工程师将不得不开始以这种方式看待基础设施。他们需要让团队中的每个人都看不到底层环境,这就是便携式刺激的作用所在。由于它的抽象性,你可以从算法的角度来考虑测试,考虑你想要发生什么,以及数据的去向,而不必担心底层实现。”

它必须从虚拟原型开始。“我们需要尽早进行更好的架构探索,”Salz 说。“我们需要通过阶乘排列来考虑功率、吞吐量和延迟。是将缓存与 CPU 一起保留,还是将其移出到单独的芯片并增大?这些都是棘手的问题。过去,每家公司都有一个人,架构师,可以在餐巾纸上完成这项工作。但这已经是人类的极限。一切都将被投入到虚拟原型中。你将投入虚拟模型、仿真、模拟,甚至可能是已经构建好的chiplets,你可以连接后硅片。虚拟原型会以 3 到 4 千兆赫的频率运行,模拟器无法接近这个速度。你可以获得更高的吞吐量,但代价是失去一些时间准确性。”

一些引擎已经绑定在一起。Cadence 产品管理组总监 Matt Graham 表示:“进行混合建模的能力正在不断增强。我们引入 C 模型和快速模型并将该平台连接到模拟或仿真的能力正在不断提高。更上一层楼的是数字孪生概念。模拟不会拥有 100 倍的容量,也不会变得快 100 倍,我们必须对此保持理智,必须找到创新有趣的抽象方法。虚拟平台就是其中之一。我们需要通过将原型设计和仿真移到流程的早期来接受数字孪生概念,并找到提供抽象的不同方法。”

流程内的重复使用很重要。“另一个有希望的方向是将设计和验证工作提前到开发流程的左侧,即在开发初期就识别错误,”Fraunhofer 的 Pachiana 说。“SystemC和UVM-SystemC在这方面很有用。虽然这又增加了一层开发工作,耗费了项目时间,但关键是要重用早期的工作成果,并展示其好处。”

这个行业不喜欢革命。“没有人会彻底改变他们的做事方式,”Siemens的Fitzpatrick说。“这就是事实。这也是为什么到目前为止它依然是渐进式的,因为你能做的事情是有限的。这就是便携式刺激装置发挥作用的地方。它旨在成为进化框架中革命性的一步。能够利用现有的基础设施,并添加使用UVM无法实现的额外功能,这就是它成功的方式。”

然而,构建模型的挑战仍然存在。Cadence 的 Graham 表示:“我们在构建模型时验证模型的能力已经提高了很多。现在有更多的模型可用,当然是处理器模型、协议模型、CPU 子系统内的东西的模型,比如一致性和性能。这是下一个抽象层次,但要构建合适的数字孪生,你需要一种可靠的方法来构建模型。”

需要一些清晰的思考。“我们需要大胆地接受它——越来越多的模拟周期和盲目的功能覆盖不会发现所有的错误,”Darbari 说。“我喜欢形式化,我坚信它比任何其他验证技术都能提供最大的投资回报,因为它可以提供详尽的证据和理由,说明是什么而不是如何。然而,我也看到盲目地应用形式化会导致产量低下。考虑需求、接口规范、理解微架构与架构以及软件/固件的关系,将使每个人更容易看到大局,同时也能掌握更精细的细节,从而获得更好的验证方法。”

人工智能来救场?

人工智能已融入设计和验证的许多方面。“验证已经抓住了人工智能突破带来的兴奋,”Graham 说。“客户在问我们用人工智能做什么?我们如何利用人工智能?我们需要催化我们所有的工程师,因为我们没有足够的人手。”

有一些唾手可得的成果。Keysight 的 Mueth 说:“你没有时间在合理的时间内模拟所有你想模拟的东西。你可以求助于人工智能,在模拟数据中绘制相关性,说‘基于 a、b 和 c,不需要模拟 x、y 和 z。’这是一个典型的人工智能类型的问题,但你需要大量的数据来推动机器学习。”

有几种方法可以优化回归。“当你在设计中做出改变时,哪些测试针对该区域,”Salz 说。“你只需要运行测试的一个子集。强化学习可以修剪特定的测试。如果这与之前的测试非常相似,就不要运行它。这样你就可以最大化测试多样性。以前,你只有不同的随机种子来创造测试多样性。”

时间压力越来越大,效率问题也越来越突出。“20 年前,质量差距很大,”Graham 说。“总的来说,行业知道如何缩小质量差距。现在,差距变成了效率。这就是为什么每个人都在谈论Shift left、生产力、上市时间和扭转局面的时间。这促使人们开始寻找利用人工智能的方法。生产力的提高不会来自和 10 年、20 年前同样的东西。”

巨大的收益将来自截然不同的方法。“许多问题都是由规范中的歧义引起的,”Salz 说。“我希望我们可以使用 GenAI 大型语言模型来解析规范,并安排它坐副驾驶。然后它可以询问这是否是我们的意思。GenAI 缺少的是生成时序图或生成 UML 的能力,以便设计师或架构师了解情况。我们希望可以让工具从语言规范转变为更正式的形式规范,并实现其中一些自动化。这不能使用人工智能来编写设计,至少目前还没有。”

但人工智能可以填补模型创建方面的空白。“我看过几篇关于使用人工智能构建这些模型的论文,无论是自上而下——我阅读规范并为其生成 C 模型——还是自下而上的观察型建模技术,即观察 RTL 模型的作用,然后在更高抽象层次上统计地构建模型,”Graham 说。“我们还没有到达那一步。但我认为这是人工智能的潜在用途之一,它可能真的有助于解决非常实际的问题。”

结论

验证中的工具缺口越来越大。现有工具无法处理系统级问题,而最复杂的问题就隐藏在这里。虽然正在开发一些新语言和工具来填补这一空白,但它们的采用速度很慢。业界似乎被困在 RTL 抽象上,这导致模型执行出现瓶颈。

为了鼓励开发团队迁移到更高的抽象层次,需要新的工具以自上而下或自下而上的方式填补建模空白。虽然人工智能可能能够提供帮助,但这种能力目前还不存在。

*声明:本文系原作者创作。文章内容系其个人观点,我方转载仅为分享与讨论,不代表我方赞成或认同,如有异议,请联系后台。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部