Verification 3.0的迁移工作正在顺利进行,Verification 2.0将迅速变为更简单的任务,用于越来越小的滞后优化设计。
从来没有如此多的变化在如此狭窄的时间范围内融合,使得新的验证方法变得至关重要。 Verification 3.0有五个基础,但并非所有这些基础都是今天完全开发了。包括在这个列表中的是验证引擎的连续统一,大规模计算时代,智能测试平台,硬件和软件的合并以及验证的角色扩展。
其中每一个都有多个方面,虽然有些主题听起来很熟悉,但每一个其实都有重大变化。

图1:验证3.0。资料来源:Vista Ventures,LLC的Jim Hogan。
验证引擎的连续性
Verification 1.0由运行在各个工作站上的仿真器控制。 Verification 2.0增加了模拟器和形式验证作为主流技术,利用大规模计算。通过对Verification 3.0的早期工作已经看到,创建混合验证平台,将最好的模拟和仿真与正式的流程加速组件结合在一起。
然而,Verification 3.0进一步发展。必须将FPGA原型验证和真正的芯片纳入验证引擎的连续性中,并且这些技术的交付方式必须改变。公司不再拥有和维护满足高峰需求所需的所有计算资源,这意味着分布式和基于云的模型将扮演越来越重要的角色。
这需要重新构建验证引擎,改变业务模型并重新考虑验证流程的各个方面。
智能测试台
测试平台经历了几次转换。对于Verification 1.0,定向测试是使用的主要方法。这在人力成本上很高,因此Verification 2.0引入了自动化,SystemVerilog和UVM推动了一种随机约束的方法,在解决写大量定向测试弊端的同时,被证明具有越来越高的计算成本,价值正在下降。
Verification 3.0的开发大约在10年前开始,Gary Smith EDA的Gary Smith称之为Intelligent Testbench。今天,我们看到了这方面的成熟工具以及即将推出的Accellera便携式激励标准(Accellera Portable Stimulus),这将使供应商之间的测试意图具有可移植性。
芯片设计领域首次见证了推动整个验证过程的真实可执行意图规范。流程的许多方面(包括调试)都将被转换。
注: 在功能性验证中,取决于模块,子系统,SoC或系统是否正在验证,使用几种不同的语言和技术来生成验证激励。在验证RTL模块和子系统时,SystemVerilog比'e'更常用,但有时也使用SystemC和VHDL。在SoC和系统级,嵌入式软件经常用于执行设计。由于不同的语言和技术被用于模块级和子系统级验证,因此会产生若干挑战。在SoC和系统级上很难利用模块级或子系统级的测试场景。此外,在SoC和系统级环境中驱动激励的嵌入式软件不像SystemVerilog等语言在模块级和子系统级环境中所做的那样(例如,约束随机生成),不支持自动激励产生。
便携式激励工作组将创建一个标准,使得能够以激励生成自动化的方式捕获验证激励,并使相同的规范能够在多种验证语言和上下文中重复使用。
硬件和软件的合并
Verification 1.0期间的一个典型设计是可能将外设或功能连接到外部处理器的模块。在Verification 2.0期间,持续集成将整个系统集成到单块硅片上,其复杂性仅受摩尔定律限制。今天,这正在放缓。结果,公司不再依靠扩展来打包更多功能。他们必须开始获得更多的创造力。
典型的芯片包含大量依赖固件来提供其功能的深度嵌入式处理器。系统集成任务将许多这些固件引擎以及通用CPU,GPU以及越来越多的FPGA资源集合到平台中,所有这些都需要能够一起工作以提供复杂的功能。 SoC验证正在从硬件转向软件驱动验证(software-driven verification),其中测试内置于处理器上运行的C代码中。
便携式刺激在这里扮演着重要的角色。这个级别的验证不仅仅是硬件执行(例如缓存一致性),还包括软件功能。
扩大验证的作用
在Verification 3.0之前,大多数团队唯一担心的就是功能。今天,这通常是验证团队任务的一部分。团队在功耗验证,性能验证以及越来越多的安全和安全要求方面担当着额外的角色。系统需求跟踪和可靠性分析是许多设计的核心任务。通过设计进行路径追踪成为核心验证的必要条件。正式的发挥作用也在扩大。另外,它是一种可以从动态执行引擎中卸载任务并修剪工具必须覆盖的状态空间的技术。设计调试和性能分析以及多运行分析正在向抽象方向发展,试图利用大数据集上的人工智能来减少所需的大量人力。该行业尚未完全解决这一问题,但其中一些基础正在落实。
没有一家公司可以解决整个Verification 3.0的挑战。传统的EDA公司可以发挥作用,特别是在仿真和FPGA原型平台等基础技术方面,这些平台需要超出创业公司的资金投入。
但初创公司拥有更多创新理念,并有能力根据市场需求和商业模式扭亏为盈。这些公司最有可能引领技术发展的方向,而Verification 3.0将会看到更多的合作。其他技术正在变得可用,例如机器学习,这些技术在调试,验证分析,错误分类和流程的许多其他方面发挥着重要作用。
行业反应
该行业的反应已经淡化。“我没有得到答案,我很失望,”Helic公司营销副总裁Magdy Abadir说。 “关于验证扩展作用的讨论如同任何验证会议的概述(扩展验证任务:功耗验证,形式验证,EM验证,安全验证,调试等),FPGA原型已经存在很久了。说在这些类型的引擎中有(而且将会有)新架构在我们使用的每个硬件或软件中都是相当期待的。“
Cadence设计系统产品管理和营销高级主管Frank Schirrmeister对此表示赞同。但他认为将这样的声明放在一起看起来很有价值。 “这里没有突破性的或新的东西,但它是一个很好的思维模型和结构。它为他提供了一个框架,让他积极参与其中的不同公司。“
Schirrmeister并未完全达成共识的一个领域是“Verification 2.0将迅速降级为越来越小的滞后优化设计的简单任务”。“如果你看看设计开始的数量,在高端开拓性设计中出现分叉现象,而且越来越多的小型设计,特别是较小的IoT类型设计,可能不会像前面所述的那样小得多。问题变成'他们需要哪些Verification 2.0或Verification 3.0技术?'“
另一个因素是传统有一个很长的尾巴。 Mentor首席科学家哈利福斯特说:“并非所有人都对便携式激励产生的结果达成一致。 “从长远来看,它提供了”什么“和”如何“之间的明确分离。什么定义了意图,以及如何通过自动化发生。一家拥有与旧IP相关的许多传统的公司将不得不慎重考虑,因为这会让他们想出一个新的解决方案来实现其工作方式。“
另一种可能性是极端的情况。 “逻辑告诉我,testbench 3.0很可能会取代和淘汰2.0,但我曾经看到许多人认为未来会被烧毁,”Olen补充道。 “我们推测,一旦SystemVerilog出来,像e这样的专有语言就会消失。但是这没有发生。我会建立一种商业模式,假设有些人不会离开受限制的随机测试。“
Hogan实际上并没有声称任何新东西,但他指出,验证工具和流程的变化速度可能会加快,许多解决这些问题的技术正在趋同。新技术将是必需的,并且正在变得可用。
Schirrmeister不买账。 “我回到了ITRS表格,从瘦弱的工程师到IP重用一直都有很多变化,因为ESL还没有准备好。变化速度一直很快,很难看出它是否比过去更快。回顾一下,过去20年我们在验证过程中所做的更改数量巨大。这不是突然发生的事情,验证必须改变。随着新要求的采用,它一直在转变。“
Hogan的观点之一是硬件和软件之间更紧密的整合。二十多年来,该行业一直致力于实现这一目标,但只取得了有限的成功。 Mentor于1996年收购了Microtec Research,认为这两家公司将靠拢。
Olen指出:“EDA尚未真正进入软件的原因有两个。 “我正在谈论软件开发和调试,而不是用软件来验证系统级硬件。我们还没有进入验证软件,其主要原因是速度。软件开发人员不会像模拟器那样运行速度慢。他们甚至不喜欢在FPGA原型上运行。他们希望全速运行硅片。另一个挑战是经济。软件领域的文化是工具应该是免费的。当我们购买软件开发工具时,我们很快就了解到它是一种完全不同的商业模式,如果您试图以995美元以上的价格销售产品,您将会面临挑战。“
但是,迁移到云可能是不可避免的。 “中小公司必须这样做,”福斯特说。 “他们必须验证所有新层次的要求才能完成工作,对他们来说,这纯粹是一种成本效益。大公司的动机是数据中心运营成本是数据中心实际资本成本的3倍。他们的动机也是成本,但出于不同的原因。我不认为它像技术挑战问题一样,更像是商业模式问题。“
Olen补充道,“验证引擎的技术挑战更少,更多是在平台的实现。当您运行回归时,您在哪里将本地和云处理分开?你如何下载调试数据?你如何转储波形?这些事情会对性能产生重大影响。因此,虽然引擎变化不大,但数据的处理和远程与本地之间的任务分离是一项挑战。你在哪里收集覆盖率?“
虽然该行业在Verification 3.0中可能看不到什么新鲜事物,但Hogan清楚地看到,现有解决方案对于行业来说并不合适,并且愿意将资金投入到相信他们有不同更好方法来解决问题的新公司。同时,现有公司也有可能已经或正在致力于解决这些尚未公布的问题。