中文 英语

绿色设计验证

为什么设计芯片能源利用率低,以及它如何影响开发成本和上市时间。

受欢迎程度

芯片设计进行优化,降低成本,更好的性能,或者更低。同样不能说验证,今天的努力很少用于降低执行成本,运行时,或电力消耗。诚然,单位成本,另一个是开发成本,但这个行业可以做更使开发更环保吗?

需要好几天的时间才能够回归套件的运行,和回归测试是一个连续的活动。每次改变设计,所有以前开发的测试运行。每次发现一个错误,一个新的测试用例开发目标问题。对于一些设计,这些测试套件持续增长多年来,可能几十年和少,如果有的话,优化完成。

最大的问题是所有这些测试是否有用。其中一些可以删除而不用担心错误逃脱?如果是这样,多少时间、成本和精力得救呢?芯片行业专注于更高效的芯片,它也开始估量自己的流程的效率。

在最近的设计自动化会议上,有两个面板验证。一个名为“设计验证工程师2.0——新一代或一个白日梦,”和其他“处理SoC验证:改变范式的验证方法。”表面上看起来好像他们有不同的焦点,但两人都观察验证可能会改变未来——特别是如何摆脱无用的测试用例,花费时间,金钱,和权力无休止地重新运行。甚至在一个面板,这是名为绿色DV,表明有一个压缩运行回归道德的责任。

“我们似乎从来没有任何验证测试长椅退休,“观察Balachandran Rajendran,首席技术官EDA /半和非结构化数据在戴尔EMC解决方案。“一旦那里,总是在那里。我做了一些数学。假设有人有一个测试用例,运行一个小时。作为回归套件的一部分,如果这是在AWS上运行365天每天,这相当于约70000美元。工程师需要变得更聪明的选择测试用例和测试向量”。

这不仅仅是一个经济方程。数据中心正在针对浪费的行为,在某些情况下,他们是有限的,在任何特定时间的电力,因为它不可用,因为有一个环境影响从创造能量。但在芯片设计的情况下,有很多领域提高效率在验证方面。

“没有人想要退休老测试,”尼尔说,营销主管IC验证解决方案西门子EDA。“也许你重新设计错误转义,因此测试套件就变大,越来越大,100000年,当你开始运行回归测试在一个周末,这些都是巨大的,昂贵的运行。”

提高效率的关键之一是减少这些测试所花费的时间。“如果我们能够得到我们今天,但是快一百倍,你实际上可以扩展你的业务,”阿曼Joshi说,高级主管设计支持西方的数字。“也许你可以做10倍,使更大的芯片,和更快地完成任务。”

可能感兴趣的所有公司。“如果验证瞬时什么?”戴尔/ EMC Balachandran问道。“如果你的测试用例运行瞬间吗?创新会更快吗?当然可以。设计将会更快。一切将会快得多。”

但在成本和环境影响是什么?

日益增长的验证问题
验证行业多年来多次转变,并继续寻找方法来改变和提高。部署抽象,利用多个模型的计算,开发一些执行引擎,以及最近一直看着注入的方法机器学习(毫升)到流。

很多人,在行业和EDA,希望毫升可以帮助,但也有担忧。“这是不能接受的,如果你需要一个核电站的电力为六个月来训练模型,”德维恩普赖尔说,一个验证顾问。“如果你看看伯特,或者其中的一些NLP模型,这些都是对理解设计的复杂性。你不能接受再培训的成本或等待六个月你的模型”。

这个问题是加剧了芯片设计,因为数据会很快过时。每次的设计变化,验证数据的收集是不再有效。回归是否运行,设计更改造成额外的问题。但设计更改无效验证结果,它还可以使任何分析对一个特定的测试用例的有效性。

验证的另一个大问题是,没有人找到了一个明确的方式来定义完成。建立覆盖点是一个手动过程,这是一个代表实际设计空间覆盖率。是不可能认为可以覆盖整个设计空间,所以它需要专家优先报道。报道让团队知道他们取得了很大的进步,但它能成为一个有效的ML目标吗?

有一个验证应对进一步的挑战,即快速扩张的作用。今天,验证远远超出决定是否按预期设计的行为。现在地址是否执行所需的功率和性能信封内,是否继续有效运作后,电路老化,以及它是否不正确,甚至失败是否会被检测到。的例子不胜枚举。

“功能验证是非常容易的在某种意义上,“说西门子的手。“设计做它应该做的事情吗?当你开始进入一些其他领域,如功能安全,你必须问一个问题,“失败正确吗?“这是要表现它应该的方式吗?无论如果是低功率,无论是性能,无论是功能安全,每一个添加的另一个方面验证和大量的额外的工作。”

有许多方面的行业正试图解决这一问题的验证效率。这些包括选择最可能的测试来抓住一个问题,创造更好的测试用例,定义更好的关闭指标,减少错误逃脱的可能性。

并不是每一个测试,每次
一些公司一直在关注间接信息来确定问题在哪里设计更改时可能会检查。“假设鲍勃刚刚签入一个改变,”普赖尔说。“但这是希拉的领域的专业知识。鲍勃以前从未摸希拉的代码。回归爆炸了。几乎可以肯定鲍勃的错。关键是有数据来源不设计,设计是,在某种意义上,最难处理的。”

设计相关的一些正在取得进展。“我们需要更聪明学习应用到分析测试的长椅,“手说。“我们应该能够识别哪些类型的测试是最重要的,或者相关的设计已经改变了。那你不是要验证所有的每一次。你想看看不同版本之间的增量。你也可以应用到IP管理。如果你知道一个配置IP可以识别它并没有改变,你不需要做全面的测试。你还需要做测试,但这个想法是为了试图消除尽可能多的不必要的测试。”

这是一个不平凡的事业。“最大的风险往往是在遗产的一部分,”警告迈克下巴,英特尔首席软件工程师和验证架构师。“你会发现逃脱了四代的错误使用。我们有更好的吞吐量,我们有更好的方法,我们有了更多的彻底性今天在我们的执行能力和求职,但遗留并不意味着一件事。我们真的应该整体的分析。现在有人想以不同的方式使用一个特定的功能比以前定义用例——这是一个风险。这是一个风险我们的硅因为我们还没有覆盖它。”

毫升或许可以提供一个更好的测试顺序。“我们已经表明,强化学习,你可以减少仿真周期和回归时间86%在一个特定的示例中,“Sandeep Srinivasan说VerifAI创始人兼首席执行官。“这并不总是会得到如此高的比例减少,但想想DV工程师或覆盖点编写测试。很多人可以重叠的维恩图,在一个测试给你任何有意义的信息,而五个测试给你99%的所需要的信息。从机器学习的角度来看,你可以很快认识到这一点,因为没有信息增益,当这种情况发生时,你停止计算,这意味着你减少仿真周期的数量。”

问题是,测试可能覆盖的东西并不包含在保险点。说:“这是一个多维问题的下巴。”,但如果我们可以找出如何正确,然后我们能够退休测试的机会,因为我们所看到的定量数据证明我们已经覆盖了这个特殊的案例。AI /毫升的增加我们已经做的,但是我们真的需要找出如何平衡这两个概念。我们必须继续使用我们的内部智慧,使用某种类型的静态分析,这可能是毫升或算法。使用这两种模式将有助于我们完成那幅画,弄清楚到底是什么我们需要帮助。”

一个不能替代另一个。“我们应该努力找到方法毫升可以提高我们的效率,让我们更有成效,“奥利维拉Stojanovic说,高级经理验证Vtool。“我们不应指望毫升代替我们工作,因为那样我们会很失望。我们可以用毫升来提高我们的速度,便于调试,不帮助我们调试两次同样的问题——这将足够的开始。”

更好的关闭
的一个重大问题与验证的定义报道指标。“在一天结束的时候,这一切都是有多少虫子逃入硅,“说的下巴。“我们表达意图之间的差距,以及我们如何测量和解释所有角落的情况下设计。这是错误隐藏的地方。这些错误我的客户或最终用户将会发现。”

验证是一个风险缓解活动。“最终,仅此而已,”同意。“我们试图减少这种风险。你仍然可以完全覆盖设计和测试什么这很重要。封面报道只是一样好点你插入。覆盖方法我们已经依赖于一个人把覆盖率。面临的挑战是,如果那个人一个没有什么意义,遗漏了一个关键领域,你不知道。你必须完全覆盖,但是你已经错过了一个关键的基础设施和设计。”

覆盖点并不等同于实际覆盖率。“不可接受的是说我们想出了一些覆盖指标,我们认为是正确的,”Adnan哈米德说,执行总裁兼首席技术官Breker验证。“我们必须有足够的灵活性,我们可以把详细我们认为风险在哪里,我们可能是浅的风险并不高。”

闭包是一个相对的概念。普赖尔说:“是一个不确定的问题,完成。“如果我有完美的形式验证,我仍然不知道我的说明是正确的。这个问题有一个属性是适合ML,那就是我不需要是完美的。我需要比一些版本的机会。我需要比随机针对发现重叠有趣的东西。强化学习,奖励多少测试提供了新的信息,所以有一些熵奖励你的测试。

可能会有更好的方式来定义覆盖点。“即使你没有无限的数据,我们仍然有足够的数据,“萨西Obilisetty说,集团研发主管Synopsys对此。”加上一个领域专家,可能是终端用户建立有趣的模式。我们可以构建一个基于NLP上海广电生成器或利用规范的东西。你可以做日志文件分类。你可以做一些有趣的事情。过程是很重要的。”

减少工作
提高数据使用的欲望。“我们一直在做数据收集几年来,“西部数据的Joshi说。“最初这是用于优化计算,优化许可,优化资源。现在我们做了很多研究和伙伴关系,看看我们是否可以转移到下一代,更快地找到,覆盖得更快。”

允许更大的关注。“你想做尽可能少的验证实现,你需要达成的目标,“Breker的哈米德说。“如果你能重用的工作,人们可以开始关注如何发现一个bug会咬我从现在开始的几个月当我们带出来。”

产业合作是必要的,这意味着数据的共享。“如果行业可以相互合作,这将是一个互利的事情,”乔希说。“你想建立足够的数据库不是专有,但足够的有意义的探索。有联盟共享数据覆盖,所以他们将会增加的数据量,提高模型的机会。RISC-V社区捐赠了许多设计。我们已经提交设计。这可以成为一个很好的测试用例,可以合成更像。”

它还可以结合工具。”RISC-V我们已经改善报道使用Google的数据缓存指令生成器,“VerifAI的Srinivasan说。“你可以继续运行下去,只有达到一个特定的覆盖率。它需要一些智能技术,强化学习,然后你可以找出哪些序列的优化给定输出指令才是真正重要的。在这种情况下,提高覆盖率数据缓存。这又回到了大量的数据,这是比约束随机因为你现在学习输入真正重要的特点优化一个特定的结果,而不是射击飞镖。”

结论
今天验证是非常浪费的。约束随机允许行业利用稀缺的验证工程师资源创建模型,而不是单独的测试用例,然后从这些模型自动生成测试。

但这些测试生成效率不高,因为他们发现bug的有效性是至少部分未知。新的工具正在试图理解设计空间之间的连接和测试所覆盖,这应该带来更好的效率——只要运行这些工具的成本小于改进。



留下一个回复


(注意:这个名字会显示公开)

Baidu