中文 英语

断言的新用途

支持者指出了在系统可靠性、人工智能和数据分析方面的应用。

受欢迎程度

多年来,断言一直是正式核查的主要内容。现在,人们正在对它们进行检查,看看它们还有什么其他用途,而且清单还在增加。

传统上,设计和验证工程师使用断言以特定的方式。首先,有用于正式验证的断言,设计人员使用这些断言来显示何时出现了错误。这些断言有助于确定问题发生的位置。它们有时也用于功能验证,但这可能很复杂,很难调试。

的项目经理/业务开发经理Olivera Stojanovic说:“大多数了解断言的设计人员都会在代码中包含断言Vtool.“但即使工程师广泛使用断言,如果一段时间不使用,他们也会忘记如何使用断言。您需要注意时间,并且编写复杂的断言非常困难。这需要知识和时间。”

断言格局也在发生变化。“如果我们回到大约5年前,工程师们使用的是有一些关键逻辑部分的断言的正式验证,”at的研发、正式验证集团总监Pratik Mahajan说Synopsys对此.“有一部分代码是控制逻辑,还有仲裁、死锁、行锁或其他发生的事情。那么,也许出现了“后硅错误”。因此,正式的验证工程师将被召来寻找漏洞,并努力确保设计的特定部分没有漏洞。”

从那时起,工程团队开始在正式验证中使用断言来完成设计的正式签名。

Mahajan说:“我们一直在使用模拟或仿真来尝试说一个块或设计是完全验证的。”“现在有一些工具提供了完整的方法和基础设施来评估断言集是否足够和完整,以及工具是否没有对部分代码进行功能验证。这是一个很大的转变。”

Shaun Giebel,公司产品管理总监OneSpin解决方案表示同意。“‘应用’趋势仍然是正式采用的关键特征。正式的超级专家很少。大多数设计师想要自动化、高投资回报率和快速增长。当今正式验证解决方案及其客户支持的关键区别之一是快速交付高质量自定义解决方案的技术和组织灵活性。无论是增加现有应用程序的容量,如连接检查或使用自定义指令验证RISC-V核心,拥有预先打包的高度自动化解决方案是大多数公司想要的。”

对于验证处理器的公司来说,断言是一个关键的考虑因素。

“断言是我们验证环境的重要组成部分,例如,用于检查对共享资源的访问,如寄存器或检测解码器中的未知指令等,”Zdenek Prikryl说Codasip.此外,我们使用断言来检查总线协议。除了在我们的工具中自动生成断言之外,我们还为用户添加了在其HDL描述中添加自己断言的功能。”

Codasip用高级语言描述处理器,之后生成指令集模拟器(ISS),以及RTL、测试台和UVM环境。验证RTL与ISS黄金参考相匹配是至关重要的。

尽管断言是所有验证中的重要元素,但它们最好由设计人员编写,最好由验证工程师使用。

“这一直是一个挑战,因为断言会询问你是否看到了你预期的东西,还是你没有预料到的东西,”该公司设计验证技术(DVT)部门的营销总监Neil Hand说Mentor是西门子旗下的企业.“这是一个较低的水平。它本身并不是一种验证活动,而是一种设计意图的陈述活动。”

探索新领域
断言也日趋成熟,并且越来越多的人认识到断言可以用于新的目的。

汉德说:“这是我们如何使用数据的问题。“事实上,这并不是断言所独有的。这也是一个适用于验证的概念。你能开始更深入地应用分析吗?既然有了额外级别的数据,你能开始更深入地应用机器学习吗?”

本例中的数据不一定是故障数据。它是一种活动度量,可以用来指导设计和验证过程。“在设计和验证管理领域,我们希望指导人们在哪里花费精力。断言非常好,因为它们确定了感兴趣的设计领域。在传统的验证中,他们会在出现问题时增加收益,或者在进行覆盖时增加收益,但他们也会告诉你什么时候发生了令人感兴趣的事情,所以你可以开始观察并说,‘从大局来看,如果这是有趣的,我该如何在我的验证方法中使用它?我可以在数据分析中使用它吗?”

今天,这种类型的学习被用于数据分析,以确定何时查看设计的特定区域。活动越多,或者异常活动越多,出错的可能性就越大。然后,这些数据可以用来创建算法,用于预测随着时间的推移出现的故障,并最终用于通过将信号重新路由到芯片或系统的其他部分来纠正错误。

汉德说:“我们可以看到一种趋势,我们将触发一个警报,这可能会失败。”断言也是如此。这不是我们正在做的事情的改变。而是我们如何利用这些数据。

OneSpin提供了一个应用程序,允许对验证进度和覆盖率进行精确测量。特别是,它有助于确定是否使用了足够多的断言,以及它们是否是正确的断言。OneSpin的Giebel指出:“通过将模拟结果和正式结果结合到一个视图中,还有助于确定断言质量是否符合要求,以清楚地了解验证覆盖范围和进展,从而知道何时何地进行调整。”

断言的新用途
一个新兴的研究领域研究了如何让断言变得不那么确定性,这将使它们在人工智能和机器学习应用中更有用,也有助于为目前基本上不透明的系统提供一些可见性。

“人工智能和机器学习的设计是不确定的。你可以给他们同样的输入,他们会给出不同的答案。答案仍然是正确的,但这是一个学习算法,有统计数据,有可能答案会不一样,”汉德说。“假设断言是确定性的,我们能让它们适应AI和ML这个新领域吗?到目前为止,在设计方面,我们一直在讨论如何使用AI和ML中的断言数据进行验证。设计本身仍然是确定性的,但是你如何开始在一个没有正确答案的非确定性设计中使用它呢?下一步是什么?这不是一个“是”或“不是”。”It’s a kind of like a ‘maybe.’ For the next generation of designs, there’s more and more of these non-deterministic designs at a low level. At a MAC level, at an interconnect level, at a functional level, they are deterministic. But once you go to an application level they’re non deterministic.”

这也开始在不同学科之间架起桥梁。汉德说:“我们或许可以从模拟世界中学到一些东西。“在模拟世界中,他们看的是眼睛图。它在眼图中吗?如果是在外面,那就不好了。如果它在里面,就没事。我们能找到相似之处吗?决定论与非决定论的概念对于数字来说是新的。这在模拟领域并不新鲜。”

它开始挑战人们长期以来对数据的一些基本看法,包括数据如何组织、存储、需要保存哪些数据、基本的读写功能,以及需要什么样的分析,at的公司副总裁兼系统与验证组总经理保罗·坎宁安(Paul Cunningham)说节奏.“整个世界都在努力应对数据爆炸,但我们真的不需要重新发明轮子。信息流,从终端应用到云,都是在同一个裸露的金属上,我们将购买相同类型的光盘或固态第二存储器。在这个堆栈的某个时刻,你真的需要横向分享见解。”

另一个需要考虑的问题是数据是持久的还是瞬态的。坎宁安说:“我们在EDA中经常使用‘流媒体’这个短语。“有时你会有大量的数据流出,你想立即处理它,产生某种元数据或某种分析,但原始流不是持久的。这与我们为什么要将人工智能置于边缘有相似之处,因为他们会说,‘看,如果你把所有数据都流到云端,那就太多了。因此,我们需要在边缘进行一定量的处理,然后将元数据发送到云端。在不同的模拟器中有相似之处,例如,你可以取原始波形流。您可能已经在运行中对其进行了一些分析,然后存储了一些元信息。在其中的某个地方,我们可能最终会自己完成整个堆栈。特别是如果你看波形存储,组织数据结构并获得那种读、写和流的最有效的方法是在相当低的级别。但现在还没有定论。即使是最专业的用例,也有相当大的机会通过标准的大数据堆栈。”

未来
这只是部分原因。数据还可以用于确定断言覆盖率。

Vtool的Stojanovic说:“你可能能够证明,断言覆盖率只检查特定情况两次,而不是你期望的一千次。”“如果没有触发它,可能您错过了一些将触发此断言的测试。这类信息可能对你有帮助。此外,一些工程团队正在添加诸如财产保险之类的内容。这并不像您根据事务开发的功能覆盖,而是您不仅可以用于检查,而且还可以用于覆盖。”

马哈詹认为,这个概念分为两部分。“第一部分是我们的工具和人们正在使用断言。这是一个非常迭代的本质。你写一个设计,你写一个约束,你写断言,你运行这个工具,然后你发现你错过了一个约束或者有一个错误。基于ml的回归模式加速器(RMA)可以在这里提供帮助。在第一次运行中,RMA将学习经验,并在系统中创建一个数据库。当他们下次运行时,该工具能够看到可以重复使用的经验教训,以加快结果的质量,以及周转时间。”

这些数据越来越有价值。马哈詹说:“基于我们从断言中所做的所有这些学习,关于设计的性质,肯定有可用的信息。”“到今天为止,我们还没有曝光它,但如果有客户回来找我们,我们肯定会这么做。形式上的代码变得非常重要。我有一个断言,当我看它的时候,它一直延伸到主输入。但正式引擎很可能只使用设计的一小部分进行验证。有更多的信息可以转回给用户,以理解发生了什么,以及断言如何与设计交互。”

虽然这些新方法可能需要一段时间才能获得关注,但现在可以做很多事情来充分利用这些断言。首先,设计人员和验证架构师需要坐在一起讨论在整个项目中应用断言。

他说:“甚至在他们开始创建或编写RTL本身之前,在计划层面上,它就已经非常清楚地可用了。”“我的逻辑中控制的部分是什么?这里的数据路径是什么?什么是安全区域?所有这些信息在设计架构师计划时都是可用的。在开始RTL之前完成它,然后您甚至可以识别和调试关键部件。这些是接口的组成部分。这是我将从别人那里获得的IP,所以我不担心验证的部分。我只关心界面。这是用户可以识别的方面。 Designers and a lot of companies are doing it with designers themselves writing block assertions. Those are the most effective, and they are the best for the formal tool, because from a designer’s perspective, they’ve written the assertion in the scope of the module or the block but the scope is very limited there. Formal verification can churn them out very fast there. Once the segregation is very clear that everyone knows, this is the part for which the designers are going to write all the white block assertions.”

把芯片架构师、设计人员、验证架构师、安全架构师和功能安全架构师放在同一个房间里进行预先规划,随着芯片和系统变得越来越复杂,这并不牵强。所有东西都向左移动到相同的起点,从那里所有的碎片更整齐地组合在一起。



留下回复


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

Baidu