故障模拟重生

一次不可或缺的工具是不同的应用程序卷土重来,但问题仍有待解决。

受欢迎程度

故障模拟,最古老的EDA行业工具箱中的工具之一,是收到严重的整容后它从存在几乎消失了。

在早期,故障模拟被用来年级制造业的质量测试向量。这个任务几乎完全取代了扫描测试和自动测试模式生成(生成)。今天,功能安全是导致行业灰尘蜘蛛网和添加一些新的技巧故障仿真工具箱。但是没有工作一切都顺利。

故障模拟是目前用于三个独立的应用程序。它继续被用于制造一些测试应用程序。现在被用来测量功能的质量testbench,这样可以提高产品质量。第三个应用程序和一个驾驶故障模拟的复苏,是需要了解正在运行的设计是否可以检测并从失败中恢复,从而确保手术的安全。

在研究应用领域之前,一个简短的回顾与断层相关的主要技术模拟可能是有用的。有两个主要部分:故障模型和仿真技术。

每一个故障模拟器的核心是能够把故障免费设计和比较它设计的一个故障注入。如果设计产生相同的结果,故障检测不到,但如果他们产生不同的结果,断层的向量是能够检测。故障产生未知的行为,或导致X值被认为是潜在的检测。

故障模型
故障模型描述的故障注入到设计。这不是一样的缺点,可能身体存在于一个设计。断层模型被认为是好的如果有好的相关性高故障覆盖率和低缺陷逃。最早的故障模型是“在”的模式,在每个节点在一个门电路级设计可以有两个缺点:stuck-at-1 stuck-at-0。结果表明,如果所有的停留在错误被检测到,然后将善于使用的向量集所有的芯片制造缺陷。

时代已经变了。停留在模型不再是足够的,即使对生产测试。时间错误,暂时的错误和其他故障模型已成为必要。此外,各种市场正在寻找更高层次的故障模型,可以应用在寄存器传输级(RTL)或更高的抽象层次。

设计是在较小的几何图形制作,缺点不太可能发生在过去更成为可能,如缓慢的设备,需要检测速度测试。

此外,功能安全也在考虑操作设计。“如果设计启动并运行,我们需要考虑时态错误,”亚当·谢尔说,验证产品管理总监节奏。“时态错误可以发生在任何时间和可能是一个软错误,如有点翻转α粒子衰变,还有永久性故障,可能是一个晶体管,分解并创建一个停留在故障时设备操作。”

那么瞬态故障的故障模型看起来像什么?“更高的管理人员ISO 26262标准建议需要支持瞬态故障,“产品营销主管David Hsu说仿真产品Synopsys对此。“这些都是单一事件不适或单一事件类型的故障切换。这些不相关的制造方面,可能最大的一类故障安全功能和安全。”

停留在错误的数量与盖茨的数量,但对瞬态故障有任意数量。“你可以选择一些缺点每个时钟周期的设计,“许补充道。“我们听见客户说一个保守的数字相关的瞬态故障可以进入几千万或者上亿。”

代表一个问题,没有人能找到一个足够小断层模型封装,显示了良好的相关性与故障检测领域。

故障仿真算法
故障模拟是资源密集型。至少,你需要模拟一个好机器,一个机器故障。“我们已经超过可用的运行时逻辑模拟器,”徐说。”然后你添加停留在断层模型之上,这可能是2.5倍数量的盖茨故障列表的大小。如果你有一个million-gate块,然后你有250万的缺点。”

有三个主要的仿真机制:并发、并行和分布式。很多人混淆术语并行和分布式,但是他们有非常不同的意义在应用到故障模拟。

并发故障仿真算法,在1970年代早期开发,模拟了无故障的电路和故障时故障电路的任何部分创建不同的信号状态相比无故障电路。它的优点是高效的,但是需要大量内存的缺点如果故障电路活动并不re-converge无故障的设计,或如果错没有检测到大量的时钟周期。

“并发算法却基本没有发生改变,”谢尔说。“发生了什么变化,该算法已在编译后的代码模拟引擎。适合停留在故障,但不适合时态错误,主要是因为内存增长太快。对于时态的错误,您可能需要运行成千上万或数以百万计的时钟周期,这意味着有更多的数据被保存。因此并发引擎每运行趋势包含一个错误只是因为内存需求。”

从过去的另一个技术是并行故障仿真。逻辑可以被表达在一个单一的,逻辑0和1,故障电路的部分,可以装进一个整数。所以在64位机器上,64故障电路可以同时评估通过整数运算。

“模拟生成模式、并行故障模拟是一个很好的技术,”徐说。“这意味着你能做这些相对较好包含向量和并行。然而,对于更一般的类故障模拟,我们发现它没有规模。你需要超越64错误的并行算法并行在单个过程。”

因为这些限制,这一趋势今天是单独运行的缺点。“这开始让分布式故障模拟看起来更有吸引力,因为故障可以分布在大量机器,”许补充道。“这也让过程更适合硬件加速”。

早在1980年代,Zycad生产专用的硬件故障模拟,但这家公司时,有时故障模拟进入衰退。没有人还没有看到当今的经济机会。

生产测试
制造测试故障仿真的初始原因的存在,在1980年代早期,它是测试公司开创的被称为电子设计自动化。“1998年前后,因此容易被进入测试行业,”谢尔说。“它能够达到测试覆盖率关闭速度远远超过传统的故障仿真。当你关闭率达到98%在200000门设计,故障未被发现的数量并不大,是你可以得到豁免,或手动测试。”

但是今天,一块设计可能会遇到的数百万盖茨和2%变成了一个更大的数字。”的比例设计,适用于扫描测试不是100%,我认为对于许多应用程序实际上减少了,”徐说。“因此函数模式仍需要进行部分的设计。”

未被扫描的主要领域包括外围逻辑,高速逻辑和模拟混合信号的内容。

时间在测试人员是昂贵的。“与手动创建的测试相关的问题之一是他们可能不是最有效的,”斯蒂芬•是我说工程混合信号DFT主管导师图形。”通过测量覆盖的每个测试套件,我们可以看到这是不必要的,或评估替代更简单、更快的测试验证在生产之前。”

功能验证
尽管制造业测试过程的自动化,许多问题仍然存在的质量功能验证testbench,特别是当知识产权正在添加内容。技术质量是衡量testbench称为突变的报道。

“突变报道错误的注入到设计然后你看看验证testbench检测它,”罗杰Sabbagh解释说,应用工程副总裁Oski技术。“最报道度量是基于刺激或刺激设计的可控制性。我的刺激得到设计的特定状态,部分设计会得到锻炼?是什么一直缺乏可观察性指标。如果有一个错误在某种设计的一部分,我们会知道它并检查检测。故障模拟加上突变的报道告诉我们。“

这也延伸到形式验证。“正式的可以写一堆跳棋或断言他们都可以被证明,“Sabbagh补充道。“但你可能会错过一个断言或者他们可能不是足够好的质量赶上所有的bug。突变的报道有助于填补这些漏洞。”

安全
复苏的最大原因故障仿真已经安全。“当你执行错误在测试应用程序中,您想要注入信号的输入和确定故障可检测到输出,”谢尔说。“功能安全是指能够证明内部检测系统是否运行正常,校正系统是做他们的工作。”

这需要不断的监测设计。“你必须能够检测到一个故障发生,确定危险和采取适当的行动,”他解释说。“这意味着两个阶段的分析。第一个是传统的故障传播的检测。探测点可能是内部的芯片。然后你需要确保响应系统,无论是软件还是硬件,发现错误并产生一个适当的安全确认或信号在指定的一段时间。”

“故障模拟几乎已经成为ISO 26262标准的要求,”徐说。”它说,“我要做错sim,”但它是强烈建议,实际上非常受欢迎,方式,汽车客户要做随机缺陷验证。能够考虑这些事情建模为随机错误,然后注入那些错误的设计和模拟错失——正是这些方法变得非常受欢迎。”

今天,在大门口ISO标准要求高故障覆盖率水平。“所以如果你达到标准的信你会做在门口,“继续许。“展望未来,有优势去更高层次的抽象,尤其是对瞬态故障之类的东西。”

但是传统的故障模拟可能不是最好的答案。执行“诊断覆盖率为ISO 26262验证资格不是完整的设计、生产测试,而是在具体设计部分具体限制,”Jorg Grosse说产品经理功能安全OneSpin解决方案。“例如,CPU在SoC可能诊断报道的焦点,受到期间关闭调试逻辑操作。因为这些操作条件,很难想出一套好的测试模式,传统的故障仿真过程的不足,给用户留下许多缺点在未知的状态。”

Grosse指出,形式验证的作用。“使用正式作为一个平台,一个新的类故障分析解决方案可以快速识别故障的状态,传统的故障模拟器无法轻易处理或者刺激是不够的。这减轻工程师冗长,乏味和容易出错的手工分析阶段伴随这些故障模拟运行。”

减少故障
我们已经提到过的大小错误列表,但它是必要的运行故障模拟每一个错吗?“我们可以用正式的方法来做故障减少,”谢尔说。“但是空间还是新的和有广泛的需求来自客户基础。后我们也可以运用统计分析和运行几个缺点,推断等发表一份声明任何故障的可能性在一个区域的逻辑被传播或检测到。”

样品需要多大呢?“简单随机抽样(SRS)被用于数字电路20年前,但这种方法需要模拟一千或更多的缺点来实现一种合理的置信区间估计的报道,“是我说的。“Likelihood-weighted随机抽样(轻水反应堆)首次提出在ITC的14,它减少了故障模拟的数量约4 x实际分布的缺陷可能。”

这依赖于一个坚实的故障模型。今天,决定哪些故障注入可能基于经验。“尽可能多的,聪明的你如何确定你感兴趣的缺点,”徐说。“那么明白你应该期望的运行时。你需要一个计算策略在管理你的缺点。你需要使用所有的静态可测试性措施,确保你的错列表是修剪一样。如果你有多余的错误不需要模仿他们,因为他们不会帮助。”

结论
如果故障模拟成为一个必要的工具,以确保安全,还需要更好的工具。这个行业已经重新考虑仿真流由于性能问题和模拟已经上升到承担很大一部分的负载。故障仿真显然是一个必要性以及断层模型,可以准确地展示这个问题有多大。它还需要提供一个定性测量故障检测功能的设计。没有这些,唯一的解决方案中包含大量冗余设计。

有关的故事
是模拟的末日到了吗?(第3部分)
小组成员讨论集成、可见性和越来越多的问题,只能在系统层面解决。
反思验证汽车(第2部分)
规模经济,为什么不工作在安全至上的市场。
验证发动机断开
从一个验证引擎无缝移动到另一个是一个很好的目标,但它比看起来难。



留下一个回复


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

Baidu