DFT EDT可测试设计中的测试压缩技术

测试压缩的必要性

随着电路规模的增大,测试数据量呈指数级增长。对于大型电路而言,不断膨胀的测试数据量会导致测试成本显著增加,这主要是由于测试时间延长以及测试设备存储测试数据所需的内存增加。因此,测试压缩技术对于降低测试成本至关重要,它可以通过减少扫描向量的同时尽量保持相同的测试质量来实现。


测试数据量 ≈ 所有扫描链中的扫描单元数量 × 扫描向量数量

测试时间=测试数据量➗(扫描链数量×扫描测试时钟频率)

图片

尽管自动测试向量生成(ATPG)工具以复杂算法的形式实现了软件测试压缩技术,但仅靠这些技术仍不足以实现高测试压缩。因此,我们引入了基于硬件的测试压缩技术,通过在电路中添加额外的逻辑来实现,尽管这会以增加面积为代价。

图片

图1:无测试压缩逻辑的典型扫描测试实现方案


图片

图2:有测试压缩逻辑的典型扫描测试实现方案(注:N2 < N1 且 M2 > M1)


嵌入式确定性测试EDT

随着电路尺寸的增大,测试数据量呈指数级增长。由于大型电路测试时间更长,需要更多内存来存储测试数据,因此不断膨胀的测试数据量对测试成本产生了重大负面影响。因此,测试压缩技术对于通过减少扫描模式的同时尽量保持测试质量来降低测试成本至关重要。EDT(嵌入式确定性测试)是最常用的硬件测试压缩方法之一。


Tessent TestKompress 是一种可以在RTL级别生成解压缩器和压缩器逻辑的工具。如图2所示,解压缩器驱动扫描链输入,而压缩器连接在扫描链输出端。


通常情况下,当ATPG工具生成一个模式时,它针对一组故障,因此只需要少数扫描触发器需要取特定值。对于无法提高目标故障检测的未指定扫描触发器,将使用随机值填充。因此,在传统的ATPG中,模式包含许多“x”或“不在意”的位,这增加了测试数据量,同时将这些位加载到扫描链中也增加了测试设备的时间。


然而,EDT处理ATPG模式的期望位,并确定如何通过解压缩器以EDT模式的形式加载它们。处理后,生成的压缩模式(或EDT模式)将通过解压缩器加载,ATPG模式中指定的位将加载到相应的扫描触发器中。解压缩器的一个副作用是,所有未指定的位都将加载随机数据,而这一副作用实际上正是辅助压缩的原因。因此,由于不需要存储这些未指定的位,测试数据量减少,并且由于不需要专门加载随机数据,节省了许多测试设备周期。

解压缩器Decompressor

解压缩器由一个环形生成器组成,它基本上是一个具有外部输入的环形LFSR,如图3所示。馈入环形生成器的外部输入通常被称为EDT通道。环形生成器触发器的输出将通过由异或门组成的相位移位器连接到扫描链输入。如前所述,相位移位器有助于支持比LFSR的阶数更多的扫描链。从原始ATPG测试模式创建压缩模式包括基于环形生成器多项式和相位移位器连接解决一组线性方程。环形生成器的输入由存储在ATE上的压缩模式驱动。

图片

图3 典型的解压缩器结构


我们已经讨论了环形LFSR及其优点。现在我们将讨论LFSR中外部链的优点。考虑一个具有外部输入的简单LFSR,如图4所示。

图片

图4:具有外部链的LFSR

首先运行ATPG以确定S1、S2、…、S12的值,然后解决线性方程(类似于之前讨论的如何找到LFSR种子的方法)。


在第一个链(具有触发器S1、S5和S9)中,S1、S5和S9的值将按顺序加载到链中,使得S1在第一个时钟周期首先加载到链中,然后在下一个时钟周期向右移动,同时S5将加载到链中。这个过程持续3个时钟周期,直到所有值都被加载到所需的位置。其他三个链也以类似的方式加载。


参考图4,在存在外部链的情况下:

图片

共有12个方程和10个变量(变量为LFSR种子值和外部链输入)。


假设图中没有外部链,则在没有外部链的情况下:

图片

共有12个方程和4个变量(变量为LFSR种子值)。


因此,很明显,外部链引入了更多的变量,从而提高了求解方程的概率,这意味着更好的故障覆盖率,因为我们有更高的机会求解出针对任何故障的方程组。


压缩器Compactor

基本上有两种类型的测试响应压缩器空间压缩器和时间压缩器。

空间压缩器 [减少输出引脚数量相较于输入引脚数量]。

图片

时间压缩器 [减少输出比特流的长度相较于输入比特流的长度]。

图片

EDT 使用空间压缩器,它由一组异或树组成。它允许多个扫描链同时在给定的扫描输出通道上被观察。多个扫描链通过异或操作组合成单个扫描通道,如下图所示:

图片

图5:EDT中用于测试响应压缩的典型空间压缩器


但我们可能会遇到两个问题:由于未知值传播导致的“X”污染和由于混叠概率不佳而导致的故障混叠。 


扫描单元可能会从黑盒、非扫描单元、虚假路径等捕获未知值或“X”值。假设我们有两个扫描链通过一个异或门压缩到一个扫描通道中,如下面所示。如果其中一个链中捕获了“X”,它将阻塞另一个链中的相应单元,导致可观测性丧失。

图片


当一个故障被偶数个扫描单元观察到,并且这些扫描单元恰好在不同的扫描链中被压缩到同一个输出通道的相同位置时,就会发生故障混叠。下面的例子说明了这种情况。在这种独特的情况下,无法区分正常电路和故障电路。


故障混叠并且需要掩蔽向量来检测的情况很少见。

图片


为了解决这些问题,掩码控制器作为压缩器逻辑的一部分。该掩码控制器与扫描链输出处的掩码逻辑一起,可以根据在模式末尾移入的几位(称为掩码代码)选择性地掩蔽扫描链,这些位不会进入解压缩器。

图片