18.luck新利
的意见

FPGA验证工作和采用的趋势:2018年威尔逊研究小组功能验证研究

fpga变得越来越复杂,但是验证技术跟上了吗?

受欢迎程度

作为数字革命的贡献者和先驱者,我们经常忙于创造和创新,以至于我们不得不专注于树木,而忽略了森林。但我们都知道,我们对大局、背景、历史和未来趋势了解得越多,或者对其他人如何做同样的事情了解得越多,我们就能更有效、更成功地完成我们的工作。

提供这类信息是我们每两年进行一次全球威尔逊研究集团功能验证研究的原因。它的研究结果为FPGA和ASIC社区提供了所需的知识,以便为其设计流程和业务目标做出最佳的方法和工具选择。它还告诉EDA行业如何最好地协助和维持这些需求。

虽然已经发表了多项关于IC/ASIC功能验证趋势的研究,但专门针对FPGA设计和验证趋势的调查并不存在。为了填补这一研究空白,我们从2012年开始研究FPGA市场。只有在2018年,我们才有足够的多年数据点来确定验证趋势并得出重要结论,我们在这里将其重点介绍为威尔逊研究集团2018年研究的四部分系列的一部分。

fpga的复杂性最近已经增长到与当今许多IC/ASIC设计相当的程度。在这个无偏见的调查中,我们量化了这种日益增长的复杂性在验证有效性和努力方面的影响。

在我们的第一篇文章中(参见FPGA效能趋势),我们分享了我们在FPGA验证有效性方面的发现。在本文中,我们将更深入地研究与验证工作相关的FPGA趋势。我们还将分享我们对日益增长的设计复杂性背后的因素和验证技术采用趋势的发现。在第三和第四篇文章转向ASIC市场之前,我们将以我们对FPGA市场各个方面的一些观察作为结束。

时间、精力和生产力
对于这个问题没有简单的答案,“在您的上一个项目中,在验证上花费了多少精力?”事实上,有必要查看来自多个问题的多个数据点,以真正了解在验证中花费的精力。为了尝试评估在验证中花费的工作,让我们从一个数据点开始:在验证中花费的总项目时间。

图1显示用于验证的时间占FPGA项目总时间的百分比。在这幅图中你可以看到两个极端。一般来说,在验证上花费很少时间的团队通常使用大量现有的预先验证的设计IP进行设计,这些IP被集成以创建新产品。在另一个极端,在验证上花费大量时间的项目通常有很高比例的新开发的设计IP必须进行验证。


图1所示。用于验证的FPGA项目时间的百分比

总体而言,我们发现2014年至2018年期间用于验证的FPGA项目时间的平均百分比有所增加。这是日益增长的设计和验证复杂性的一个指标。

另一个验证工作指标是工程人员总数。这也很重要,因为目前FPGA最大的挑战之一是控制成本和工程人员数量。要做到这一点,最有效的方法是确定能够提高生产率的FPGA设计和验证解决方案。因此,为了说明提高生产力的需要,我们研究了增加工程人员数量的模式。


图2所示。一个项目中FPGA工程师的平均峰值数量

图2显示一个项目中FPGA工程师的平均峰值数量。平均而言,对设计工程师的需求以约4%的复合年增长率增长(与IC/ASIC类似),而对验证工程师的需求以约10%的复合年增长率增长。但是验证工程师并不是参与验证过程的唯一项目涉众。如图所示,设计工程师在验证上也花费了大量的时间图3


图3所示。FPGA设计工程师把时间花在哪里

2018年,设计工程师平均花费56%的时间参与设计活动,44%的时间用于验证。然而,数据表明,FPGA设计工程师花在验证任务上的时间越来越少。这一趋势有两个原因。首先,许多FPGA项目在他们的团队中增加了验证工程师,这意味着设计工程师可以将大部分精力集中在设计上。其次,总体而言,更大、更复杂的fpga越来越多地采用,这增加了设计工程师的工作量。

不断增长的设计复杂性
对FPGA设计和验证复杂性产生重大影响的一个行业驱动因素是新设计需求层的出现(超出基本功能),这在几年前是不存在的。这些需求包括时钟需求、安全性需求、安全性需求以及与硬件-软件交互相关的需求。

在过去的15年里,FPGA设计的一个重大变化是向soc级设计的发展。例如,63%的FPGA设计包含一个或多个嵌入式处理器,如图所示图4.此外,36%的FPGA设计包含两个或更多的嵌入式处理器,而14%包含四个或更多的嵌入式处理器。由于设计需求的增加,soc级设计为验证过程增加了一层新的验证复杂性。例如,soc级设计通常需要验证硬件和软件交互、新的一致性架构以及复杂的片上网络互连。


图4所示。嵌入式处理器核数

图5,我们看到90%的fpga设计实现包含两个或多个异步时钟域。验证与多个异步时钟域相关的需求会增加验证工作量和复杂性。例如,在RTL模型上使用仿真无法证明一类亚稳态错误。为了模拟这些问题,需要一个具有时序的门级模型。然而,静态时钟域交叉(CDC)验证工具已经出现,可以帮助在设计流程的早期阶段直接识别RTL模型上的时钟域问题。


图5所示。异步时钟域个数

实现安全特性的项目数量正在增加,如图6.安全特性,如安全保证硬件模块,可以安全地保存敏感数据(如加密密钥、数字权限管理密钥、密码和生物识别参考数据),增加了验证过程的需求和复杂性。


图6所示。FPGA设计项目实现安全特性

安全关键型设计还增加了导致复杂性的需求。图7显示了在多个安全关键开发过程标准或指南之一下工作的FPGA项目数量的增加。其中一些安全关键项目还需要在多种安全标准或指导方针下运行。


图7所示。FPGA设计项目致力于安全关键设计

工具、语言和方法的采用
为了解决日益增长的设计和验证复杂性,我们发现许多FPGA项目被迫使其验证过程成熟。我们发现,就验证成熟度而言,FPGA设计领域大约相当于七年前ASIC/IC设计领域的水平,而且正在迅速赶上。

图8根据研究参与者的回答,显示用于构建测试工作台的语言的采用趋势和明年的预计采用情况。FPGA项目在构建测试台时使用多种语言是很常见的。这种做法通常是由于遗留代码和购买的验证IP造成的。


图8所示。FPGA项目验证语言采用

从历史上看,VHDL是FPGA测试平台的主要语言,但它的采用率已经稳定在45%左右,我们看到SystemVerilog的采用率在增加。今天,使用VHDL创建RTL设计,使用SystemVerilog创建测试台是很常见的。2018年“其他”的增加是由于各种FPGA项目最近采用了各种脚本语言(例如Python)。最后,2016年VHDL和Verilog使用率的下降趋势可能是研究中的异常现象。更有可能的情况是,收养率只是略有下降或持平。

各种基类库和方法标准的采用趋势显示在图9所示。我们发现Accellera UVM是目前用于创建FPGA测试台的主要标准。您可能会注意到,我们没有展示开源VHDL验证方法(OSVVM)和通用VHDL验证方法(UVVM)的历史趋势,因为2018年是我们跟踪这些方法的第一年。


图9所示。FPGA项目方法论和基类库的采用

最后,各种断言语言标准的FPGA项目采用趋势显示在图10,其中SystemVerilog断言(SVA)是主要语言。与用于构建测试平台的语言类似,FPGA项目团队在VHDL中创建RTL,然后使用SVA创建断言,这是很常见的。


图10所示。FPGA项目断言语言采用

一般来说,形式化解决方案(即形式化属性检查与自动形式化应用程序相结合)是功能验证技术中增长最快的部分之一。形式属性检查(例如,模型检查)和自动形式应用程序的采用趋势显示在图11.FPGA项目中正式属性检查的采用正以21%的CAGR增长,自动正式应用程序的采用正以29%的CAGR增长。从历史上看,正式的财产检查过程需要专门的技能和专业知识。然而,最近出现的自动正式应用程序提供了不需要专门技能的解决方案。


图11所示。FPGA项目正式技术采用趋势

图12展示了2012年至2018年各种基于模拟的技术的FPGA项目采用趋势,包括代码覆盖、功能覆盖、断言和约束随机模拟。


图12所示。FPGA项目仿真技术发展趋势

随着成熟而来的是自信
研究结果表明,FPGA市场的验证过程已经成熟。这种成熟可能是由于设计的复杂性不断增加,以及通过采用提高生产力的FPGA设计和验证解决方案来控制成本和工程人员数量的相关努力。

也许今年的研究中最令人担忧的发现与具有重大错误逃逸的FPGA项目的数量有关。然而,我们确实发现了一个有趣的相关性,减少功能缺陷的改进有助于非平凡的错误逃脱和FPGA项目的功能验证过程的成熟。数据表明,在功能验证过程中更成熟的项目可能会经历更少的错误逃脱。

为了验证这一说法,我们将研究参与者分为两组:没有bug逃逸的FPGA项目和经历过bug逃逸的FPGA项目。然后,我们检查了采用各种验证技术的百分比。结果显示在图13


图13所示。FPGA仿真技术的采用vs非平凡的bug逃避

这些发现在统计上具有显著意义,因为没有漏洞逃脱的组倾向于采用更多的各种验证技术,这表明他们在验证过程中更加成熟。然而,我们无法从我们的研究中衡量一个项目在采用任何这些过程中的有效性。例如,一个经历了错误逃逸的项目可以声称他们已经采用了功能覆盖,但是由于他们缺乏经验,他们的功能覆盖模型的保真度可能很差。根据我们的研究数据,我们无法评估任何特定验证技术的成功或有效采用。

既然我们已经介绍了FPGA功能验证的趋势,我们将在未来几个月的两篇文章中转向ASIC/IC市场趋势。

等不及了吗?在按需网络研讨会中了解更多关于FPGA验证的趋势通过改进FPGA验证方法保持竞争力.我们还提供关于FPGA验证的最新挑战和解决方案的几门课程,请查看FPGA验证学院课程



留下回复


(注:此名称将公开显示)

Baidu