Test pattern generation (TPG) 是为给定故障模型生成test pattern的过程。如果我们通过详尽的测试,在最坏的情况下,我们可能需要 2n 个(其中 n 代表input的数量)分配来找到single stuck-at fault的test vector。我们不可能手动使用穷举测试或路径敏化的方法来为由数百万个晶体管组成的芯片生成test pattern。因此,我们需要一个自动化过程,即Automatic Test Pattern Generation (ATPG)。 Automatic Test Pattern Generation (ATPG) 是一种用于半导体电子设备测试的过程,其中检查设备故障所需的test pattern由程序自动生成。 ATPG Software ATPG 是一个决策问题。考虑一个具有四个主要输入(a、b、c、d)的组合电路。可以在在下面找到一个由显示所有可能输入向量的真值表形成的二元决策树。在二元决策树中,在每一层,我们都有两个决策(分配逻辑 0 或逻辑 1)。这棵树由 16 个不同的可能向量组成。解决方案可以在树的底部找到。也可能有不止一个或没有解决方案。为了搜索给定故障所需的测试向量,可以用 C++ 或 Python 等高级语言编写等效算法。 添加另一个input e 将使树的大小加倍。决策树的大小与input的数量成指数关系。因此,我们需要将branch pruning等智能启发式嵌入算法中以加快处理速度。上图中的红叉是修剪后的结果,因为在此分支下没有可用的解决方案。 用于复杂 ATPG 应用程序的软件非常昂贵,但生成测试的过程只需要在设计过程结束时完成一次。 基于算法的atpg分类 有两种类型的ATPG算法。
因此,两种算法之间的测试模式生成时间和故障覆盖率之间存在权衡。 基于应用的atpg 正如我们在本 DFT 课程中经常注意到的那样,与组合电路相比,时序电路的 DFT 技术和测试生成变得非常棘手。这是由于内部触发器和锁存器的可控性和可观察性问题。因此,ATPG 算法分别应用于组合电路和时序电路。根据应用,ATPG算法大致分为两类:组合逻辑 ATPG、时序逻辑 ATPG。 这些方法仅适用于single stuck-at faults。通过这些算法方法中的任何一种生成的pattern都需要所谓的路径敏感方法。大多数算法生成方法也引用符号 D 和 D'。这些符号是由 D algorithm引入的,并从那时起被其他算法采用。 D algorithm由 Roth 在 IBM 于 1966 年开发,是第一个设计为可在计算机上编程的完整测试模式算法。D 算法是一种用于组合电路的确定性 ATPG 方法,如果存在用于检测故障的测试向量,则保证找到测试向量。它使用三次代数自动生成测试。 两种ATPG ATPG算法分为两种。 Random Test Pattern Generation:在这种方法中,我们随机生成test patterns并选择那些检测未检测到的故障的pattern。没有目标故障。由于测试模式是通过试错法生成的,因此这是一个非常快速且成本低廉的过程。这就像投掷飞镖被蒙住眼睛,周围有很多目标。随机 TPG 也称为概率 ATPG。 Deterministic Test Pattern Generation: 在这种方法中,我们选择一个特定的目标故障并应用各种算法,如 D algorithm、PODEM algorithm或 FAN algorithm。这是一种耗时的算法方法,并且比 Random TPG 相对昂贵。 PODEM(面向路径的决策)是一种自动测试模式生成 (ATPG) 算法,旨在克服 D 算法 (D-ALG) 无法为涉及纠错和转换的电路生成测试向量。 Random TPG 的想法是有许多易于检测的故障。因此,我们首先运行随机 TPG,与耗时的Deterministic TPG 相比,这是一个快速的过程。Random TPG 的问题在于,在检测到简单故障后,故障覆盖率会饱和。确定性 TPG 仅用于那些在 Random TPG 中未检测到的故障。这些故障也称为抗随机模式故障。 ATPG 的有效性主要通过实现的故障覆盖率和执行测试的成本(算法复杂性和测试长度)来衡量。 ATPG 的好处 以下是 ATPG 在 EDA 行业中流行的好处:生成高覆盖率测试模式,降低测试时间和成本,减少人力,确保轻松、无风险地部署到设计和测试流程中。 总结 我们讨论并介绍了 ATPG,它消除了我们在大型电路中生成test pattern的痛苦。然而,对于计算机来说,ATPG 仍然是一个缓慢而昂贵的过程。因此,在耗时的 ATPG 算法之前执行随机TPG,这对减少测试时间非常有利。 在特殊情况下,如果可能有足够的故障覆盖率,我们可能需要合并一个不完整的 ATPG 算法。分支修剪之类的启发式方法在test pattern生成中也被证明是非常有效的。 |