| ||
rockeric.com
第二部分:FPGA验证有效性趋势
非平凡的Bug逃逸
IC/ASIC项目经常使用“生产前所需流片次数”作为基准来评估项目的验证有效性。从历史上看,大约30%的集成电路/ASIC项目能够实现第一次硅片验证成功,而大多数成功的设计都是在第二次流片实现产品化的。但是FPGA项目没有等效的度量标准,作为替代,我们的研究统计FPGA参与者“有多少非平凡的bug逃到了生产中?”图2-1所示的结果令人不安。在2018年,只有16%的FPGA项目能够实现无漏洞的生产,这比IC/ASIC在首次硅片级成功的调查结果更糟糕。对于一些细分市场,现场修复的成本可能是巨大的。例如,在mil-aero市场中,如果为了升级FPGA移除系统上的一个盖子,整个系统就需要重新验证。
图2-1 非平凡的FPGA bug会逃逸到生产环境中
导致非平凡的错误逃逸的缺陷类型
图2-2显示了导致FPGA非平凡bug逃逸的各种设计缺陷。虽然数据显示“逻辑或功能缺陷”的百分比有所减少,但它仍然是bug的主要原因。这种“逻辑和功能缺陷”的减少可能是由于FPGA市场的验证过程趋于成熟。我们将在以后的博客中对其进行量化,并增加采用成熟的设计IP进行集成。
图2 – 2 导致FPGA错误逃逸的缺陷类型
与原计划相比的设计完成度
除了我们用来确定FPGA项目有效性的bug逃逸指标外,我们跟踪的另一个指标是项目完成度,如图2.3所示。在这里,我们发现64%的FPGA项目落后于计划。从2014年到2018年,越来越多的FPGA项目没有按期完成,这反映出设计和验证的复杂性日益增加。
图2–3 与原计划相比实际FPGA项目完成情况
第三部分:FPGA验证工作趋势
直接询问研究参与者在验证上花了多少精力是行不通的。原因是很多关于验证的论文或者文章都以这样一句话开头:“一个项目的70%的努力都花在了验证上……”然而,实际上没有可靠的参考文献来量化这个值。
我不相信“你在上一个项目中花费了多少精力进行验证?”这个问题能有一个简单的答案。事实上,我认为有必要从多个问题中得出多个数据点,才能真正体会到验证过程中所付出的努力。这就是我们在功能验证研究中所做的。
用于验证的项目时间百分比
为了评估在验证中所花费的努力,我们从一个数据点开始——在验证中所花费的项目总时间,如图3-1所示。在这个图中你可以看到两个极端。通常,花费很少时间进行验证的项目通常使用大量现有的预验证设计IP进行设计,这些IP集成在一起可以创建一个新产品。另一个极端是,花费大量时间进行验证的项目,通常有很高比例的必须经过验证的新开发设计IP。
图3–1 FPGA项目用于验证的时间百分比
总体而言,2014年至2018年期间,我们发现FPGA项目用于验证的平均时间百分比有所增加。同样,这表明设计和验证的复杂性在不断增加。
设计和验证工程师人数峰值
也许当今最大的挑战之一是控制成本和工程人员数量,这意味着要明确FPGA设计和验证解决方案,以提高生产率。为了说明提高生产力的必要性,我们讨论了工程人员的增加趋势。图3-2显示了在一个项目中工作的FPGA工程师平均峰值数量。
图3–2 在一个项目中工作的FPGA工程师的平均峰值数量
对设计工程师的需求平均以4%的CAGR(与IC/ASIC类似)增长,但对验证工程师的需求却以10%的CAGR增长。值得注意的是,在2007年至2014年期间,IC/ASIC市场经历了与验证工程师相关的类似增长需求,以应对日益增长的验证复杂性。
第四部分:FPGA验证工作的趋势(续)
FPGA设计工程师的时间花在哪里
验证工程师并不是参与验证过程的唯一相关者。设计工程师也花费大量的时间进行验证,如图4-1所示。2018年,设计工程师平均56%的时间用于设计活动,44%的时间用于验证。然而,数据表明FPGA设计工程师在验证任务上花费的时间越来越少。这种趋势有两个原因。首先,许多FPGA项目将验证工程师添加到他们的团队中,这意味着设计工程师可以将大部分精力集中在设计上。其次,总的来说,更大、更复杂的FPGA增加了设计工程师的设计工作量。
图4–1 FPGA设计工程师在哪里工作
FPGA验证工程师的时间花在哪里
图4-2显示了验证工程师(平均)的工作时间。由于FPGA的结果在2014年至2018年期间没有发生显著变化,所以我们没有在这里显示趋势。
图4 – 2 FPGA验证工程师在哪里工作
我们的研究发现FPGA验证工程师花在调试上的时间比花在其他任何活动上的时间都要多。从管理的角度来看,在根据以前的项目数据规划未来项目的工作和进度时,这可能是一个重大的挑战,因为调试是不可预测的,并且在不同的项目之间有很大的差异。
关键的是,在验证过程中考虑如何组合设计和验证工程时间时,也花费了大量工程时间。
往期精彩:
理解UVM-1.2到IEEE1800.2的变化,掌握这3点就够了
Verification和Validation傻傻分不清楚?面经重点!