中文 英语

合并验证和测试

在设备的整个生命周期中,可靠性问题正在推动这些功能发生的地点和时间发生根本性的变化。

受欢迎程度

虽然功能验证和测试的学科服务于不同的目的,但它们的历史曾经紧密交织在一起。最近的安全和安全监控需求,加上嵌入设备的功能,使它们再次紧密结合在一起,但它们能否成功合作,在两者之间都取得改进呢?实现这一目标可能很困难。

必须考虑系统生命周期中的三个阶段:

  • 功能验证,其中团队试图确定该设备可以根据规格执行;
  • 生产测试,以确保设备在现场放置时正确运行,以及
  • 系统生命周期监控在那里,设备被监控,看它是否继续按预期工作。

前两个阶段已经成为高度专业化的学科,它们之间的接触在今天是最少的。如图1所示,正在发生变化的是用于系统监视的功能。越来越多的应用程序需要持续检查系统是否正确运行,以及它们在安全性方面是否处于最新状态。这就需要在现场更新设备的能力,以及后硅时代的延续功能验证以及设备运行时的验证——包括性能和功耗。


图1:产品相之间的重叠。资料来源:半导体工程。

“许多应用,如汽车或航空电子设备,都有几十年的寿命预期,”该公司战略营销经理瑞安·拉米雷斯说西门子EDA.“在这段时间里,有很多变化,从提高功能的无线更新,到由于这段时间的环境影响而导致设备退化的可能性增加。所有这些都会改变功能,因此当这些变化发生时,我们需要继续监视其正确性。认为一个设计可以提前完全验证也是不合理的。不仅设计越来越复杂,而且安全性等新需求也不可能预先完全理解,因为您正在尝试验证未知空间。举个简单的例子,你可以验证一个设计在当时没有已知的安全威胁,但新的漏洞不断被发现,你需要一种方法来持续监控这些漏洞。”

我们是怎么走到这一步的?
专业化造成了这种分离。公司首席执行官西蒙•大卫曼表示:“我认为人们并没有真正从共性的角度来考虑这个问题治之软件.“肯定有重叠,每个人都有相同的目标,但他们已经进化出解决不同类型问题的技术。质量是关键。但每个团队对质量都有不同的要求,无论是正确的规格,还是符合规格的设计,还是符合规格的制造,还是实际设备在现场的使用寿命。随着验证的范围扩大到包括验证漏洞,人们变得越来越困惑。它实际上正在变得更加分散,因为一切都在某种程度上变得专业化。”

当涉及到时间和抽象概念时,测试和验证是不同的。“在验证过程中,你可以把所有东西都保持在一个更高的抽象级别,”特朗普的产品管理集团总监于尔根•耶格尔(Juergen Jaeger)表示节奏.“在测试中,你要处理的是物理效应,你必须深刻理解电缆的特征或点A和点b之间的轨迹。此外,在测试中,每一毫秒都很重要。就运行时间而言,测试必须非常高效,并且需要对覆盖率有很好的理解。你不想重新测试已经测试过的东西,因为这是浪费时间和金钱。经过核实,我们似乎没有这种担忧。优化测试平台或测试套件并不那么重要。有很多机会可以显著提高这一点。”

在监视领域中的某些东西时,时间仍然很重要,但是没有测试人员在场帮助您。这一切都必须在内部完成。“ASIL规范说,你需要能够很快发现是否有什么东西坏了,”验证平台副总裁科林·麦凯勒(Colin McKellar)说想象力的技术.“但由于这些芯片确实很复杂,人们很难在规定的时间内得到足够好的答案。自检需要非常快地运行,并需要确保您的逻辑在功能上是合理的,并且没有损坏或有任何瞬时错误。这也是今天由一个单独的测试团队完成的。”

安全可能是整合的驱动力。西门子的Ramirez说:“一些标准化委员会正在正式确定如何在整个供应链中共享安全数据。”“在未来,您将看到更多的标准方法来在整个供应链中共享信息,因为不同的利益相关者将需要在生命周期的不同位置进行测试的证明。部署了一些技术来实现需求和功能验证结果之间的可跟踪性。如果您有一个开放的覆盖数据库,并且可以接受任何类型的用户定义的测试数据,那么这些技术有时可以从其他测试方法中获得结果。”

正是在这里,对共性的需求开始了。Imperas的Davidmann说:“有了ASIL-D,人们就会沉迷于与光子有关的随机比特翻转的想法。“但这是关于如何追溯缺陷。”

定义行为
行为将功能验证和设备监控联系在一起。Ramirez说:“我首先看到这些结合在一起的地方是需求和测试结果的可追溯性。”“产品需求驱动测试需求,测试需求驱动测试计划。当您的产品正在测试时,结果应该被合并回测试计划中,并最终与需求联系起来,以提供端到端的可跟踪性。我们正在看到功能验证级别的自动化,我预计随着您转向其他测试技术,这种情况将继续下去。功能验证是显而易见的起点,因为回归测试生成了大量的覆盖率数据。这使得手动将验证结果与需求链接起来成为不可能。”

形式验证迫使功能验证更广泛地关注覆盖率指标。“高可靠性硬件需要功能验证技术的组合,”华为的营销主管罗布•范•布洛姆斯泰因(Rob van Blommestein)表示OneSpin解决方案.“模拟是使用最广泛的方法,但仅靠模拟无法完成工作。由于形式化具有穷尽性,因此为彻底验证增加了第二种有效方法。只有在了解覆盖漏洞在哪里之后,才能进行详尽的核查。”

我们必须记住,目标是不同的。“如果你在做设计验证,那么你的起点就是一份规格说明——某种说明这是它应该做的事情的文档,”Cadence的Jaeger说。“作为一名验证工程师,你的目标是确保设计本身在规范的参数范围内运行。为了测试,设置了功能。在验证阶段你必须更有创造力,因为你必须想出各种各样的场景。一旦开始测试,这项工作就已经完成了。在这一点上,你知道它应该做什么。然后你要确保它在产品的生命周期中一直这样做。”

这就导致了不同的方法。Imagination公司的麦凯勒说:“人们看待事物的方式有相似之处,比如错误报道。“但测试地区的大多数人似乎从统计分析的角度来看待它,而不是从功能的角度来看。从功能验证的角度到功能安全,再到制造故障率,都是具有挑战性的。出于这个原因,冗余起着很大的作用。”

分析通常需要注入故障,然后找出是否可以检测到这些故障。“这在测试领域和功能验证领域都有发生,”Davidmann说。“考虑创建一个合规套件的挑战RISC-V.我们基本上注入错误,比如注册固定值,运行遵从套件,并写出签名。我们基本上是在做突变测试。我们发现的是一些测试,其中输入更改不会传播到输出。突变测试着眼于测试的质量。这和那个装置没有关系。它向您展示了应该丢弃哪些功能覆盖率,因为结果从未进入签名。所以很多测试都是浪费时间。”

常见的分
故障分析创建公共点。“另一个相关领域是自动生成测试模式(ATPG),”Jaeger说。“如果你试图提出一个暴露潜在问题的测试模式,在功能测试方面,这两者是紧密联系在一起的。在我看来,插入故障可能是进展最大、标准化努力最多的领域。”

制造试验也有局限性。”测试设计(DFT),我们看到更多的功能测试被创建以达到零缺陷,因为ATPG本身是不够的,”Ramirez说。执行故障模拟是为了对这些功能测试的有效性进行分级。覆盖结果将通过ATPG和功能故障分级相结合,以提供测试有效性的单一视图。”

功能验证也正在扩展到签名之外。Ramirez补充道:“功能测试通常是寻找性能或延迟、系统之间的集成、错误处理等。“你需要的不仅仅是通过/失败来帮助分类,所以你需要构建额外的跟踪信息来帮助理解为什么某些事情会失败,以及如何在更高保真的环境中重现它。然而,其中大部分是非标准的,因此很难重用和与其他测试结果结合。功能测试的另一个挑战是在正确的条件下获得真实的用例刺激进行测试。这也是我们为自动驾驶所看到的数字双胞胎这样的东西,可以帮助创建真实的用例场景,在制造车辆或进行道路测试之前进行功能测试。”

内置监控提供了新的机会。它允许您测量实际的系统性能或功耗,并且可以收集数据并将其传输回开发系统的公司。McKellar说:“功能验证在与软件连接方面做得并不好,但我们正在取得进展。”“硬件中的安全功能高于基本的内存错误检查和纠正,还有一些功能是软件控制和特定硬件的结合。例如,您可能有一系列的校验和来表明您是否正确。软件可以检测到这些,然后运行一个已知良好值的框架作为参考。”

新的功能验证方法是使用在嵌入式处理器上运行的生成软件来执行设计并检查结果。它们通常使用便于验证的微内核,并且通常使用真实的驱动程序或经过特别修改的测试驱动程序。

Valtrix Systems就是一个例子。公司首席执行官Shubhodeep Roy Choudhury表示:“我们有专门设计的裸机软件,可以作为IP/SoC实现的设计验证平台Valtrix系统.软件堆栈由测试生成器、检查器、设备驱动程序和轻量级内核组成,可以根据验证环境的需要将其配置为便携式程序。一致的执行环境和可靠的故障再现使得在“前硅”工具中很容易重现“后硅”故障。此外,该工具中实现的调试钩子和机制可以快速调试和解决故障。”

由内而外的测试正在成为一种广泛的实践。Jaeger说:“有时你加载一个专门的内核,它可能被用于诊断。”“我们将测试程序与仿真产品一起发布,并围绕其提供运行时环境。用户可以在任何时候在系统上运行这些测试程序。他们会告诉你这条电缆没有插好,或者那根电缆上的这条电线坏了,还有一些事情,比如是否有不良接触,或者是否有错误的电缆,当然,还有各个组件本身的缺陷。”

一些测试公司开始注意到这一点。Jaeger说:“有一些大型测试公司可以获取波形信息或功能设计信息,并将其作为开发测试程序的起点。“今天这是非常机会主义的,没有全行业的努力投入其中,但它已经有了开端——测试程序,或使用已经可用的信息开发测试,这些信息是在芯片或产品设计验证期间提供或创建的。”

在功能验证领域,已经完成了将来自完全不同的工具的覆盖率数据汇集在一起的工作。Ramirez说:“为功能覆盖率而构建的通用和开放覆盖率数据库可以用来收集任何类型的测试信息,然后用来帮助描绘测试的整体视图。”“这些信息被集成到需求管理工具中,以提供闭环可追溯性,以证明每个需求都经过了测试。这不仅对安全关键应用很重要,而且越来越多的人都在做芯片开发,因为这是一种很好的设计实践,可以帮助你更快地发现差距,并最终降低成本。”

结论
我们能否期待未来有更多的合作?Jaeger说:“测试和验证是非常不同的领域。“但每个领域都有机会从其他领域学习最佳实践。”

今天两支球队的差距很大。大卫曼说:“实际上,今天的专业化程度更高了。“这些技术和目标是否有重叠?我们的目标是质量。虽然他们可能使用许多相同的技术,但最终使用模型和工具发展的方式针对不同的目标。”

但是变化也可以是一个驱动力。拉米雷斯说:“改变将来自一些实时监控,以及它与数字双胞胎的关系。”“我认为我们将会看到动态监视器,它可以感知威胁,或者至少是某些异常情况,并将其发送回数字双胞胎,执行完整的模拟,从而预测即将发生的故障。这显然涉及基础设施的重大变化,以过滤并将重要数据从边缘设备发送回云端,数字双胞胎可以利用这些数据。对于我们的测试方式来说,这将是一场非常有趣的革命。”



留下回复


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

Baidu