rockeric.com
Jim Hogan,Vista Ventures和LLC的执行合伙人jimHogan也是EDA领域资深的投资者,最近一直在关注一些验证初创公司,包括云技术公司-Metrics以及便携式激励(portable stimulus)的先驱Breker Verification systems。他还将OneSpin Solutions的形式验证加入到了他的长期关注的列表中。这些公司都是Hogan称之为验证3.0(verification3.0)计划的一部分。
迁移到验证3.0正在逐步进行,验证2.0很快就只会被用来验证一些规模小,复杂度低的设计。
集成电路在短短几年里发生了巨大的变化,使得我们不得不去寻求一些新的验证方法。验证3.0主要由五个重要的方面来构成,这里面很多的技术都是逐步积累起来的。五个重要的方面主要有,验证引擎的连续体(continumof verification engine),大容量的计算能力(theera of large-scale computing),智能验证平台(theintelligent testbench),软硬件的结合(themerging of hardware and software),以及验证职责的扩展(the expanding role ofverification)。
每个方面都包含着很多内容,虽然有些听起来很熟悉,但是基本上每个方面都重大革新。
图1 验证3.0
验证引擎的连续体(Continuum of verification engines)
运行在独立计算工作站上的仿真器(simulator)代表着验证1.0(Verification1.0)时代。验证2.0(Verification2.0)增加了模拟(Emulation)验证以及形式验证(FormalVerification)作为主流的验证技术并充分利用了集群式的仿真服务器。初期的验证3.0(Verification3.0)工作已经创建了混合验证平台,该平台融合了仿真与模拟验证技术,还把用于加速形式验证的组件也集成到了验证流程中。
但是,如果验证3.0想要进一步发展,必须还要将FPGA原型验证以及实际的硅后验证融合到统一的验证引擎连续体中。当然这些验证技术的交付方式也会发生相应的改变。芯片公司也不再需要去购买和维护高性能的计算资源,分布式计算和基于云的验证模型将发挥越来越重要的作用。
以上这些目标的实现需要我们重新构建引擎架构,改变我们的业务模型并重新思考验证流程的各个方面。
智能验证平台(The intelligent testbench)
验证平台经历过了好几代的更迭。对于验证1.0,定向测试是主要的验证手段,缺点是耗费了大量的人力成本。因此验证2.0引入了自动化,SystemVerilog和UVM的普及和应用推动了受控的随机验证方法的大规模应用,同时也将验证2.0推向了高潮。但是随着计算成本的不断攀升,这种方法的价值也被证明越来越受到局限。
大约在10年前(大约2008年),GarySmith EDA公司提出了智能验证平台(IntelligentTestbench)同时也开始了验证3.0的开发。如今,该领域已经出现了一些成熟的验证工具,并且Accellera的便携式激励(Portable Stimulus Standard)的标准也即将发布。供应商们已经有可能实现测试内容的可移植性了。
这将是第一次,芯片设计领域将看见,有效的设计意图(trueexecutable intent specification)将驱动整个验证流程。验证流程中的很多方面包括调试(debug)过程都将发生重大改变。
硬件和软件的协同(Mergingof hardware and software)
在验证1.0中,典型设计是一个功能块,比如一个连接到处理器外部的一个外设。验证2.0时代的持续性集成将一个完整的系统集成到了单个硅片上,系统的复杂性仅仅只受摩尔定律的约束。现在这种集成度正在逐渐放缓。芯片公司不再单纯地依赖集成来扩展系统的功能而是需要变得更具有创意。
典型的SoC芯片包含大量的深度嵌入的处理器核,只有编写相应的固件代码才能来实现其功能。系统集成的主要任务就是将这些嵌入式核与通用CPU,GPU以及越来越多的FPGA资源集成到平台中去。所有的这些都需要软硬件协同设计来实现复杂的功能。SoC验证正在从硬件驱动的验证转向软件驱动的验证,很多测试用例都是运行在处理器上的C代码。
便携式激励有望在这里发挥重要的作用。系统级别的验证不仅涉及硬件功能的验证(例如,高速缓存的一致性),还涉及软件的功能。
验证职责的扩展(Expanding role of verification)
一直到验证3.0,大多数团队关注的重点仍然是功能的正确性。这也是如今验证团队负责的任务中最简单的一部分。除了功能验证,验证人员在功耗验证,性能验证以及越来越多的安全性的要求方面也承担着很多责任。追踪系统需求以及进行可靠性分析已经是很多硬件的核心验证任务。追踪设计的变化也成为了验证任务中很重要的一点。形式验证扮演的角色也在不断扩大。形式验证有望可以分担一部分动态验证的任务,其也在往尽量缩小工具需要覆盖的状态空间的方向发展。使用并行运算(multi-runanalysis)的设计调试分析正在逐步地被抽象化,技术人员试图利用人工智能来分析这种大数据以此来减少所需的人力资源。业界对于这种应用方案还没有一个完整的框架,但是一些基础工作正在逐步进行。
没有一家公司能过独立应对整个验证3.0的挑战。传统EDA公司在模拟验证和FPGA原型验证的平台设计中可以发挥很大的作用,因为这些技术发展所需要的资本投入会远远超出初创公司所能承受的范围。
但是初创公司拥有更多的创新理念,也能够根据市场需求以及新的商业模式做出一些解决方案。这些初创公司最有可能成为引领技术发展方向的领头羊,在验证3.0时代,这些公司之间的合作将会更加紧密。一些其他的例如机器学习等新兴技术也有可能被应用进来,这些技术在调试,验证分析,错误分类,以及流程设计等其他方面也将发生重要作用。
行业的反应
验证行业的反应一直很平静。
Helic企业营销副总裁MagdyAbadir说,关于验证职责的扩展的讨论,比如功耗验证,形式验证,模拟验证,安全验证,FPGA原型验证以及调试分析等等都只停留在概述的层面,很长时间以来他都没有找到任何有价值的答案,因此非常失望。他非常期望这些验证引擎会有一些新的架构。
Cadence Design Systems产品管理和营销高级组主管Frank Schirrmeister对此表示赞同。但是他更看重如何将这些验证引擎联合在一起。虽然没有新的架构,但是设计出一个思维模型或者架构来将这些验证方法融合在一起将会是一个很有趣的事情。这也为他提供了一个目标,他要将他所参与的不同公司聚集在一起共同解决不同验证引擎的连续性问题。
有一点Schirrmeister并不完全同意的是“验证2.0的应用场景将会越来越少,基本上只会被用来验证一些小规模复杂不高的设计”。从芯片设计的数量来看,会发现有一个显著的设计趋势的分叉。整个芯片市场上出现了越来越多的小规模设计,尤其是较小的物联网芯片,但这可不是一个小数目。那么问题来了,这些小规模的芯片适合用哪种验证技术呢?验证2.0还是验证3.0?
Mentor产品营销组经理MarkOlen指出,,实际上,验证2.0很可能在一段时间内仍是最便宜的解决方案。SystemVerilog约束求解器已经被商用了,它们基本上是免费被使用的,因为其已经被嵌入到了仿真器中。但是想要免费使用便携式激励可能还需要等上几年。
Mentor的首席科学家HarryFoster说,不是每个人都看好便携式激励的,传统的验证方法影响深远所以在革新验证方法这一过程中会有很大的包袱。从长远来看,便携式激励明确了验证的“什么(what)”和“如何(how)”这两个方面。“什么”定义了验证意图,“如何”可以通过自动化来实现。拥有大量老旧IP的公司不得不仔细考虑,因为这将花费他们很多资源来提出一个新的解决方案来使IP能够兼容新的验证环境。
另外一种可能性就是大规模的移植。Olen补充说,逻辑告诉我们,验证平台3.0很有可能取代和淘汰2.0,但是从过去的经验来看,人们经常打破自己对未来的假设。我们之前还认为一旦SystemVerilog出现,e语言等专有语言就会消失,但现在来看,这并没有发生。我们仍然会假设有些人不会放弃受约束的随机测试,并基于这一点来建立我们的商业模式。
虽然Hogan表明还没有任何新的技术出现,但是他也确实指出验证工具和验证流程的更新速度正在加快。许多技术的发展都在朝着一致连续的方向发展。新的验证技术将不断推动新的验证方法学的出现。
Chirrmeister并不认同这个,从ITRS(International Technology Roadmap for Semiconductors)表中可以看到,虽然ESL(Electronic System Level Design)还没有成熟,但是从完全定制化的设计发展到IP可重用化的设计这一过程中也发生了很多变化。芯片开发变化的速度一直很快,所以很难确定现在的变化速度是否会更快。回顾过去,在过去20年中验证领域发生了巨大的变化。验证领域的变化并不是突然发生的,而是随着新的需求的不断提出,验证不得不始终处于不断变化之中。
Hogan提出的观点中还有一部分是软硬件之间更紧密的协同。二十多年来,业界一直在努力实现这一目标,但是收效甚微。Mentor甚至在1996年收购了MicrotecResearch来试图去推动软硬件的紧密集成。
Olen指出,有几个原因导致EDA还没有真正转向软件的验证,他说的软件是指软件的开发和调试而不是单纯地使用软件去验证系统级的硬件。之所以还无法验证软件设计,主要的原因还是速度。软件开发人员不会基于像模拟器这种低速的硬件上来开发软件的,他们甚至连FPGA原型也不喜欢,他们希望能够在硅片上全速运行他们的软件。另一个原因就是经济学。软件开发的文化就是开发工具应该是免费的,但是一旦我们需要去购买软件开发工具时,我们很快就会发现这是引入一种完全不同的商业模式,我们如果考虑软件开发工具的成本,而尝试以超过995美元这样高昂的价格来销售产品,会发现非常困难。
与此同时,EDA与云的融合也有过几次尝试,Abadir说,我们的日常生活中很多时候都在使用云计算。但是在EDA以及验证领域中,由于对一些知识产权的考虑,这种云融合的趋势正在放缓。并且目前还没有可以解决这个问题的方案。
但是迁移到云上似乎是一个必然的趋势。Foster说,中小型的公司不得不这样做,他们必须要通过所有新的验证要求才能交付芯片。对这些公司来说,在云上可以节约大量的成本。对于那些大公司来说,驱动他们迁移到云上的动力主要是数据中心的运营成本几乎是数据中心固定资产的3倍多。虽然出于不同的原因,但是节约成本是驱动这些大中小型公司迁移到云上的主要因素。所以这并不是商业模式的问题而更像是一个技术挑战。
Olen补充说,相比于验证引擎,挑战更多的来自验证平台上。当我们在运行回归测试的时候,如何拆分本地和云上的处理任务?如何下载调试数据?如何存储波形?所有这些问题几乎都会对运算性能产生重大影响。所以,验证引擎的变化不会太大,困难的是如何处理数据以及分离云上与本地的处理任务。还有一点值得考虑的就是,在哪里收集覆盖率呢?在云上,还是在本地。
在验证3.0中,业界目前还没有出现很多新的技术和方案,但是Hogan坚定地认为现有的解决方案并不能很好地解决验证面临的问题。他愿意将资金投入给新兴的创业公司,相信这些初创公司会提出不同的更好的方法来解决目前遇到的问题。与此同时,也可能成熟的公司已经正在研究或者早已提出了自己的解决方案只不过还尚未公开罢了。
半导体工程网站的读者们有时也会在评论中表示他们的担忧,担心成熟的EDA公司会倾向于维护他们已经成熟的东西而不是投资新的技术。从目前来看,现有的EDA公司不太可能停滞不前,但是结果如何只能等待时间来证明。
往期精彩:
实锤!30W+!2018芯片校招薪资比肩互联网!
IC高级工程会议——DVCon中国2019欢迎您的论文投稿!
理解UVM-1.2到IEEE1800.2标准的变化,掌握这3点就够了
Verification和Validation傻傻分不清楚?面经重点!
没想到,双十一只花10块钱,我竟然爱上了加班…
人工智能和机器学习让验证更快更智能
原文来自Semiengineering “Get Ready For Verification 3.0”