说起debug(调试),这可能是令所有开发者抓狂且绕不开的永恒话题,相信每个验证开发者都有很多debug经历可以吐槽,因为这确实是一个似乎看不到尽头的艰难挑战。
调试的过程极为复杂且结果不可预测:首先通过对RTL或者门级模型输入激励来验证模型是否按预期运行。如果未按预期运行,则该事件将被标记为错误。如果错误发生在验证平台,很有可能需要重写代码或重新运行,如果错误发生在设计中,对于比较浅显的错误还好说,运行几个仿真周期就可以找到,但若错误非常极端且隐蔽,则可能要运行数百万个仿真周期。由于bug所在位置和涉及的代码行数的不同,找出bug的时间自然也会大不相同。
因此,扩大调试的覆盖范围、提高调试过程的速度和准确性,是最需要解决的验证挑战之一。我们将在下文中分享如何利用调试工具,以及先进的调试技术帮助开发者简化整个调试过程。
是什么导致了芯片调试的复杂性?
在人工智能(AI)、机器学习(ML)和高性能计算(HPC)等新兴应用的推动下,芯片变得越来越大且越来越复杂,调试难度也急剧增加。
芯片由数百个IP模块和子系统组成(包括复杂的协议和内存),部分由内部开发,部分通过现货购买
不同模块和电源域之间,硬件和嵌入式软件之间实现更复杂的交互
各种新的、特定领域的架构
芯片尺寸是影响调试复杂性的因素之一,但对调试过程影响更大的是芯片功能。比如,在小规模设计中可能需要数千个并行发生的不同事件来对特定条件进行仿真,要隔离漏洞就需要检查这些并行事件以确定问题到底出在哪里。芯片的终端应用也会影响调试过程。例如,用于手机的低功耗芯片的设计与嵌入式处理器的设计就大不相同。对于嵌入式处理器设计,开发者可能会希望借助RTL来调试C语言/汇编代码,而在低功耗设计中,当设计的一部分电路掉电后,便可插入处理器设计中未使用的隔离单元或其他功耗保持技术。
因此智能的调试工具是必须的,尤其对于汽车等对功能安全合规性要求极高的应用来说,精细的调试更加重要。
AI加速锁定
让芯片设计失败的罪魁祸首
要找到芯片设计中的bug并非易事,原因之一是需要分析和理解的信号太多了。如果没有好用的功能调试工具就有可能需要进行成千上万次的仿真和测试来验证设计,而且每一次测试都会产生大量数据,必须要进一步分析才能从中找出漏洞,这就是为什么说开发者一般会进入一个没完没了的调试周期,调试效率比较低。
而事实证明,在效率方面,AI和ML一直具备显著优势,它们能够快速地从大量数据中发现问题核心,AI增强的调试器可以根据它们的特征对错误进行分段,并生成一个更易于管理的数字来预估根本原因。
现在,通过使用基于ML的Verdi®回归调试自动化技术,这些畅想将得以实现。
Verdi®让芯片调试更加省时省力
新思科技通过Verdi自动化调试系统(Verdi SoC调试平台的核心)为所有设计和验证流程提供全面调试。该系统具有20亿门级的设计容量,并定期更新,增加新功能。Verdi自动化调试系统通常可以减少50%以上的调试时间,开发者因此可以将更多精力集中在其他更重要的任务中。此外,Verdi系统的高效率还可以支持开发者跨域、跨抽象级别进行查找及修复bug。
Verdi自动调试系统是新思科技 Verification Continuum®的一部分。新思科技Verification Continuum®是一系列解决方案的组合,旨在帮助开发者在早期快速发现设计缺陷,更早开始对系统进行验证。
结 语
开发者通常面临着复杂调试和上市时间等多重压力,我们完全可以将劳动密集型任务自动化,通过先进的调试技术——Verdi自动调试系统来实现全面覆盖高效调试以及简便应用等调试需求,彻底破解难题,加速芯片上市。