| ||
当我们有了大量的数据,怎样可以使其成为大数据,系统级验证该如何从大数据受益呢?
半导体设计是一个“大”和“小”的矛盾组合,大量的晶体管尺寸非常小,数据库 却非常的庞大。现在整个芯片行业都在研究机器学习,希望可以有效地管理这些数据,但到目前为止,数据集(dataset)在整个行业中还没有得到恰当的定位,大家也都不愿意去分享这些数据。
Synopsys董事长兼联合首席执行官Aart de Geus在SNUG(Synopsys Users Group)的主题演讲中表示:“我们收集数据,构建数据,在一些边缘情况上用它来学习和解释问题,但它能做的其实非常有限。未来我们将交叉地通过硬件,软件和AI /机器学习和大数据来预测事情。”
传感器产生的数据量和细分市场的数字化将在未来呈指数增长。你可以说这是很大的数据,也可以认为是很小的数据,“大”是指数据量,“小”则是在原子和分子层面上如何使用数据来设计和制造芯片。如果你改变一个参数,对模块的影响是什么? 一次又一次地进行仿真,必然会生成大量的数据,我们是否能够将其应用于机器学习,以便我们能够在更短的时间内设计芯片。
未来行业的方向在哪里以及实现这些目标需要填补哪些空白,这些都是未知数。首先,仅仅根据猜测和公司专家的指导,设计和验证流程的各个方面都会不够精确,比如覆盖率收敛和验证收敛就是如此。前沿设计的空间非常大,以至于我们并不指望可以彻底验证。因此,统计技术可能被认为是必不可少的。
便携式激励的发展可能会将覆盖率范围从非结构化数据问题转化为结构化数据问题。那么这是否意味着使用大数据技术可以解决覆盖率问题呢? 或者它只是一个与大数据集相关的任务?
什么是系统覆盖率?
该怎样定义系统覆盖率? Nvidia首席工程师Mark Glasser将其定义为“感兴趣的所有行为是否已发生”。
系统级覆盖率与模块级覆盖率不同。 Oski Technology首席执行官Vigyan Singhal表示:“系统级覆盖率全是关于用例(use case)的。在模块级层面已经进行了彻底的验证,并且子系统也是正确的了。那么组装系统时剩下的是什么? 你是否验证过所有的用例? 这包括性能,安全性和保密性。”
在定义系统时必须小心,要收集的覆盖率也是不同的,取决于你在供应链中的位置,比如与半导体公司所定义的系统相比,提供自动驾驶汽车的公司定义的系统就非常不一样。
Breker Verification Systems的首席执行官Adnan Hamid给出了一些数据,当使用基于图形的技术来考虑整个验证空间时,会很快意识到正在处理的数字有多大。一个单元的图形可以有10^30个路径,而一个系统的图形可以是10^300个路径。 那么可以进行多少次仿真? 也许10^5或10^6次。模拟会有多少次? 也许是10^8次。硅中有多少次? 也许是10^12次。所以我们有10^12个样本和一个10^300的空间。”
在模块层面,业界依赖功能覆盖来定义验证过程。这是因为受约束的随机方法学,它产生的测试用例没有任何有关这些测试将完成什么功能的知识。
便携式刺激(PS)生成的测试具有明确的覆盖范围。Axiomise公司首席执行官Ashish Darbari表示:“系统测试使用定向测试就可以很好地完成,定向测试从未使用覆盖率,从不介意功能或任何其他类型的覆盖率。
采用便携式激励策略进行系统级验证时,可能会产生比预期中更多的测试用例,需要去判断是否产生足够多的测试用例了。这就需要对系统级覆盖率进行定义。
随着系统变得越来越复杂,我们必须达到的不仅仅是功能覆盖率, 还必须考虑功耗,硬件/软件协同验证,多时钟域,性能等。系统覆盖率的定义将会改变。
继续关注功能覆盖率
是否应该继续在系统级使用功能覆盖率? 过去二十年来,一些训练有素的工程师开始使用实施覆盖率(implementation coverage)。
但并不是每个人都愿意放弃功能覆盖率。受约束的随机方法有时会产生从未预期的测试场景,并且这些场景可以通过功能覆盖率进行跟踪。
制作覆盖率模型非常简单,但制作有用的覆盖率模型非常困难。你可以利用交叉覆盖率(cross coverage)做出巨大的模型,但是基本不可能覆盖到,这就是没什么用。
因此,在考虑新的覆盖率模型时,旧的模型也被保留下来。当我们谈论PS覆盖率时,没有人会说你必须放弃功能覆盖率或代码覆盖率。也许几年后我们将有系统级覆盖率的经验,但我们今天不必放弃任何东西。
这真的是大数据吗?
如果仅仅因为一个问题很大,并且产生了大量的数据,并不意味着这就是一个大数据问题。自动驾驶汽车拥有大量的数据集,这些大量的数据集甚至可以吞噬我们为SoC所做的努力。大数据技术有两个主要用途:训练某些东西,帮助做出决定。
大数据有助于查看终端用户问题。我们有存储从仿真收集的高达TB级的数据,包括覆盖率数据。把它看作是一个巨大的数据集,找到分析的方法,并提出更有意思的方法来确认设计是否准备好了。
这是一个重要的技巧。我们希望看到应用于数据的统计分析,如聚类和曲线拟合,能够提取信息并让我们做出决定,无论你有5个数据点还是50亿个数据点,都没关系。将覆盖率视为大数据问题为这些分析开辟了新的可能性。