目前,生成式人工智能浪潮正席卷全球各行各业,重新定义全球的工作方式。通过利用 AI 自动化处理重复性工作流程,企业得以将工作重点放在创新而非迭代上。
验证领域也不例外 —— Cadence 利用生成式人工智能开发了一系列 AI 工具,助力验证工程师缩短繁琐的调试周期,从而将工作重心放在创新上。
传统上,验证工程师需要首先设计芯片和测试平台,并使用 Xcelium 进行仿真,确保功能和代码覆盖率满足要求,或在未满足时进行调试跟踪。然后,在调试完成后更新设计和测试平台,最后再重复上述流程。这一过程既耗时又繁琐,占据了整体开发时间的相当大一部分。
是否存在更好的方式呢?
Cadence 提供了几款用于调试和分析的 AI 验证工具:Verisium WaveMiner、AutoTriage、CodeMiner 和 PinDown。这些工具可在分析和调试流程的各个阶段协助工程师,将调试总时间缩短达 10 倍。
在回归测试完成后,首先使用 Verisium AutoTriage 进行故障分类。手动分析故障成本高昂且效率低下,其中的一大原因是不同的故障容易被归类至类似的组别中。例如,内存访问冲突问题就可能导致多个不同的测试失败。而 AutoTriage 可以通过分析由共有问题导致的失败测试来创建故障集群列表——这些共有问题可能是基于发送错误消息、测试名称以及发生故障的运行时间等多种因素。然后识别这些故障间的共同线索,从而助力工程师快速找到故障的根本原因。
图1:Verisium AutoTriage 故障整理
和所有的 AI 工具一样,AutoTriage 接受的回归测试训练次数越多,其准确性和有效性就越高。在工程师审查 AutoTriage 的初步输出、验证聚类结果并进行调整后,AutoTriage 会根据这些修改进行自我学习,从而在后续运行中提供更好、更精准的分类结果。
然而,仅仅了解导致测试失败的问题类型是远远不够的。此时,Verisium PinDown 可助力工程师确定哪些代码提交导致测试失败。
图2:Verisium PinDown 风险预测
PinDown 可以利用机器学习来确定导致测试用例失败的原因,而且甚至能通过重新运行选定测试来自动验证该原因。PinDown 可与 Git、Perforce 和 Subversion 等多种版本控制系统兼容,并利用这些系统中的数据来识别可能影响代码完整性的共有外部因素,如提交错误代码的时间、有提交错误代码历史的用户,以及在同一区域内提交代码的不同用户的数量等。
完成这一步后,您还可以使用其他工具来查找故障的根本原因。例如,您可以用 Verisium WaveMiner 来分析一个或多个通过或失败的波形,并对波形中的异常行为进行隔离。可通过对仿真时间进行排序和缩减信号列表来标注这些异常行为,从而为工程师快速缩小问题范围。
图3:Verisium WaveMiner 流程
WaveMiner 可以直接启动 Verisium Debug 平台,方便工程师采取相应措施。WaveMiner 不是一个波形比较工具,而是可用于深入分析可能引发异常行为的行为和信号。该流程的自动化大幅缩短了调试周期,已有用户见证调试周期(TAT)从数天缩减至数小时。
同样,您可以使用 Verisium CodeMiner 对代码上下文进行类似的验证。CodeMiner 可识别不同 Xcelium Snapshot 版本间的语义变化、对其进行排序,并智能忽视那些无关紧要的变化,同时对代码中的重要逻辑变更进行复杂度排序,从而使工程师了解代码中发生的重大变更位置。
图4:Verisium CodeMiner 流程
借助这些 AI 工具,工程师可以在大大减少测试次数、大幅提高测试效率的同时达成覆盖率目标。当然,这还只是个开始。目前,Cadence 正在研发一系列全新的 AI 工具,以进一步实现验证流程各部分的自动化,从而将工程师从各种繁琐测试和调试工作中解放出来。
© 2024 Cadence Design Systems, Inc. 版权所有。在全球范围保留所有权利。Cadence、Cadence 徽标和 www.cadence.com/go/trademarks 中列出的其他 Cadence 标志均为 Cadence Design Systems, Inc. 的商标或注册商标。所有其他标识均为其各自所有者的资产。