中文 英语
系统与设计
的意见

为设计人员提供调试解决方案,加快验证时间

复杂性的代价要求我们改变对验证的看法。

受欢迎程度

随着设计变得越来越大,功能越来越多,期望也越来越高,复杂性也在不断爆发。对于整个设计和验证团队来说,像往常一样进行业务的成本依次在时间、精力和资金方面呈指数级增长。


图1:晚于可能的时间发现问题需要更多的努力去发现和修复。(来源:威尔逊研究集团和西门子EDA, 2020年功能验证研究)

导致预算膨胀和进度延迟的一个重要但被忽视的原因是设计错误,这些错误可以在设计过程中得到纠正。这些错误不需要复杂的测试平台和深奥的验证技术知识来纠正。然而,当传递给验证和集成团队时,这些错误会使设计流程暂停,迫使验证工程师将有错误的块发送回设计工程。

解决这个问题的最好方法是从源头着手,在设计块和子块的时候。如果在设计过程中及早消除bug,调试就不那么困难了。诀窍在于,为了做到这一点,设计人员将不得不改变他们看待和对待验证和调试的方式,并且他们需要工具来帮助他们以最小的努力做到这一点。他们需要一套工具来加速他们将合理的高质量产品移交给验证团队的能力,这样验证工程师就可以提出块,集成它,并且相当有信心他们至少能够开始初始的集成工作并运行测试用例。

部落的麻烦

在最近的威尔逊研究小组功能验证研究(2020年),设计错误是asic和fpga中产生树脂的主要原因。其中许多bug都是可以通过以设计人员为中心的解决方案轻松捕获的类型。调查还显示,调试是最大的时间消耗,从逻辑上讲,调试时间是存在多少错误的函数。


图2:设计错误仍然是功能缺陷的主要原因。(来源:威尔逊研究集团和西门子EDA, 2020年功能验证研究)

设计捕获漏洞的激增只会变得越来越麻烦。这是我们所熟悉的电子设计进化的副产品:不断增加的复杂性。不只是更大、更拥挤的设计,而是更大的设计团队和设计中的更多块。随着设计和设计团队规模的扩大,设计阶段的bug从设计阶段逃逸到验证和集成阶段的雪球效应也会随之扩大。

可以说,在更简单的时代,设计团队能够吸收成本,并找到变通办法来保持验证的进展。设计师的心态是尽快完成他们的设计工作,并将其传递给验证团队。只要他们所做的任何测试都表明设计是正确的,他们就满意了。他们不关心100%的覆盖率。他们只是想确保这是正确的。然而,我们知道错过隐藏在rtl的偏远角落的那些难以发现的错误是不可避免的——即使代码符合规范。

当验证团队发现设计捕获错误时,他们必须花费周期来调试自己或将其发送给设计人员。在这两种情况下,按时录制和设计质量都是不可避免的,而且代价高昂。正如我们已经看到的,威尔逊调查显示,这些成本正在急剧增加,并对整个设计和验证过程造成拖累。

解决这个问题首先要改变设计工程师的思维和工作方式。设计师需要一些工具来在设计早期修复这些错误,因为修复这些错误更容易、更快、更便宜。在编写代码时找到bug要便宜得多。为了使该策略能够工作,这些工具必须易于设置,并且不需要验证专业知识,并且设计人员必须能够以最小的努力运行它们。

这样一个以设计为重点的解决方案解决了验证组在集成后提出子系统或设计所需的时间。你在早期所做的任何事情都会显著地加速后面发生的事情。

防患于未然

不幸的是,我们发现越来越多的bug出现在流程的后面,因为我们没有在整个行业中专门为设计阶段构建工具。我们构建了很棒的验证工具,但传统的CDC、RDC和其他功能验证工具并不是为设计人员构建的。Linting是这个规则的一个例外,但是没有人把所有这些技术放在一起。因此,有必要将所有这些技术放在一个针对设计师的公共环境和方法中。

团队不应该等待测试台。相反,他们应该从源头上停止设计错误,因为在验证之前修复错误会产生一致性、效率和可预测性。


图3:Questa设计解决方案生产的设计是正确的结构,证明设计符合设计师的意图,并在整个开发过程中保护设计。

这就是为什么西门子EDA汇集了一系列专注于设计师的技术。Questa Design Solutions是一套针对设计工程师的验证工具,使设计师能够在设计时进行验证。它提供了一个易于使用的设计驾驶舱,带有一个公共数据库,可以进行验证,并包括验证已经做出的假设的能力。这些以设计为中心的技术可以告诉设计师什么时候肯定是错误的,而不必在测试台上浪费时间。设计师现在可以确保足够好的质量进入验证,因此,反过来,验证团队可以非常快速地启动和运行。

Questa设计解决方案是一套为设计师优化的工具。它的重点是让设计师获得他们需要的数据,以确保他们的设计是好的,并且他们有一种方法可以在设计和验证之间进行转换。最终的想法是,你构建正确的设计,你确保设计是好的,然后随着设计进入开发周期,它保持工作状态。这些信息被反馈到验证中。

它可以帮助设计师找到简单的bug,这样验证工程师就不会浪费昂贵而漫长的模拟周期来寻找这些设计捕获bug。由此得出的结论是:修复最便宜的bug就是你从未遇到过的bug。如果你能在设计中发现漏洞,你就不需要在模拟中找到它们并修复它们。这不仅节省了时间和精力,还提高了设计质量。如果我们以更高的质量加速验证,验证工程师就有更多的时间进行功能和覆盖验证,因为他们不再做繁忙的工作。

这种方法将有助于向设计师灌输一种新的心态,即尽早发现漏洞。它通过为设计人员提供一组易于使用的工具来支持这一点,在一致的UI和一致的数据库中工作,并以一种方式编纂他们的假设,并将设计知识推给验证团队。这将引导验证团队使用该数据,更早地启动并运行验证,从而更加有效。

在本系列的下一篇文章中(定于11月在这个专栏中发表),我们将描述如何实现这个设计调试解决方案的必要目标。



留下回复


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

Baidu