AI如何颠覆传统芯片验证方式?

Wenjun Ni

Jun 07, 2023 / 1 min read

从2017年Google提出Transformer模型,再到去年ChatGPT的横空出世,人们对深度学习能力边界的认知一次次被打破,人工智能(AI)似乎正在加速融入我们每个人的工作和生活。人们不再问AI能做什么,而是它不能做什么。从当下热门的ChatGPT等聊天机器人到自动驾驶汽车,AI已经应用到我们日常生活的方方面面。即便是芯片设计这种过去视为可能不适用于AI的行业,现在也受益于越来越智能的AI技术。

如果AI可以在芯片开发最耗时和耗力的环节助我们一臂之力,让芯片设计更快地一次成功,那将是如何的景象?试想一下,假如我们将AI整合到芯片验证和调试阶段,尤其是在芯片只会越来越精密和复杂的当下,又会带来怎样的变化。

当然,应用AI的最终目标是找出更多错误,加速实现验证覆盖率目标。数字设计存在巨大的设计状态空间,要对所有这些空间进行人工分析,并获得足够的可行见解用以改进设计,几乎是不可能完成的任务。

但如果AI能在这方面有效发挥作用,验证开发者就可以专注于发现和修复错误。想想这对芯片设计会有多大帮助。

长达数日的回归运行会成为历史?

芯片设计的复杂性与日俱增,半导体行业正面临着一系列重大挑战。从发展埃米级设计到Multi-Die集成再到快速节点迁移,开发者从未如此迫切地希望提高开发效率,寻找创新的解决方案。然而,受限于逻辑和功能问题,大多数片上系统(SoC)都难以避免代价高昂的重新流片。正因如此,开发者需要尽可能全面地进行SoC验证。但是,由于成本和上市时间方面的压力,开发者不可能一直反复运行验证和调试循环。

芯片的RTL代码设计完成以及设计状态空间配置就绪后,便可启动验证流程。芯片验证开发者需要逐一检查这些空间,确保最终的SoC设计能够正常运行。覆盖率收敛的目的是确保整个设计能按预期的功能正常运行。

覆盖率收敛流程存在三大挑战:

  • 覆盖率规划。开发者很难确定测试平台的覆盖率定义中要写哪些内容(需要什么类型的coverage group,哪里有差距,还需要写些什么等等)。确保实现100%覆盖就表示所有的错误都已找到,这非常重要。
  • 覆盖率收敛。开发者很难确定什么测试用例对覆盖最有用。开发者可能要运行同一个测试用例1000次,才能达到50%的覆盖。随着覆盖率越来越接近100%,开发者会发现,覆盖剩下的几个百分点可能需要几周时间才能完成。直接用例是一种有效的覆盖手段,但要投入大量的人力去开发。
  • 激励开发和根本原因分析。开发者可能会遇到激励本不应该执行某个特定配置或错误的情况。或许激励的编写方式导致其根本无法达到覆盖目标。

在传统芯片验证周期中,验证开发者会设定一个目标并运行其回归环境。在此过程中,开发者会设置测试平台来生成随机激励,从而观察设计的响应情况。一个设计运行10000到15000条用例十分常见,而且验证团队往往对每条测试用例的ROI没什么概念。回归的运行可能长达数日,并占用宝贵的计算资源。

在SoC验证周期中,有两个迭代循环占用了大部分的时间,其一是在运行回归后进行故障调试与错误修复,其二是覆盖率收敛(图1)。这两项迭代工作都非常耗时,内容包括覆盖率分析、发现覆盖漏洞后作出调整,以及一次又一次的重新再来。发现故障后,验证团队需要对故障进行分析,在RTL或测试平台中进行修改,并重新运行回归,确保这些错误确实得到了修复。同样,这部分工作也需要迭代循环。

图1:典型验证周期中的迭代循环

 

此外,覆盖率收敛流程最后的收尾工作通常最为棘手。对整个流程生成大量数据进行全面的人工分析是不太可行的,因此团队一般都需要对芯片设计缺陷的根本原因有更多了解。

机器学习助力更快验证覆盖率收敛

迭代循环有一个好处是可以从中学习,因此AI,尤其是机器学习(ML),正好派上用场。如果ML引擎能够从某些模式中学习,便能够完成相应工作,比如从测试平台的一行代码中识别出可能的错误。学到相应知识后,它就能将这种洞察应用于未来的回归,从而加快覆盖收敛速度,尤其是随着系统不断得到训练,也许还能提高覆盖水平。

AI在半导体行业的应用已经取得了显著进展。新思科技屡获殊荣的DSO.ai™芯片设计AI应用最近率先实现了首个100次生产流片。DSO.ai可以自动搜索芯片设计大型解决方案空间中的优化目标,有助于提高开发效率并改善芯片的功耗、性能和面积(PPA)。

在验证方面,为了缩短调试和修复的周期,新思科技推出了采用回归调试自动化(RDA)技术的Verdi®自动调试系统等解决方案,为开发者带来AI驱动的芯片验证工具。通过这一功能,开发者可以利用预测性分析,让容易出错的人工流程实现自动化,更轻松地找到被测设计和测试平台故障的根本原因。更多助力实现调试自动化的创新方案即将推出,最终将把调试和修复循环变成一个无需人工干预的全自动化流程。

这些应用仅仅是一个开始,未来必将会有更多应用。在越来越多的EDA流程中,愈发智能的AI技术有助于开发者提高工作效率,取得更好的成效。例如,AI帮助开发者更好地了解还需要其它哪些覆盖、越来越智能的AI技术有助于最大限度地减少回归运行的时间和精力,以及AI有助于加快根本原因分析,等等。或许,原本需要长达数日的任务,在AI技术的帮助下只要几个小时便可完成,节省下来的资源就可以用来开发其它项目,或者完成更多的增值任务。

加速向市场推出适用芯片

我们的世界充斥着各种复杂问题,解决这些问题需要更加复杂的计算系统来处理。自动化和智能化可以完善开发者的工作,有助于开发者提高工作效率,让设计和验证开发者专注于打造差异化的芯片,推动这样的计算系统问世。如果AI驱动的EDA流程可以承担重复性任务,开发者就有更多精力来处理错误修复并进一步推进他们的设计。从设计空间探索到覆盖率和调试周期等,AI必将对诸多领域产生深远的影响。

Continue Reading