欢迎光临专业集成电路测试网~~欢迎加入IC测试QQ群:111938408

专业IC测试网

测试不稳定怎么办

时间:2018-04-16 10:47来源:Jian的ATE学习手记 作者: Jian Wu 点击:
    最近遇到好几起测试不稳定的问题。有的是测试项单独测pass,整个flow跑就会不稳定。有的是调试时单步执行pass,测试项整体跑就fail。有的是手测pass,量产一跑就fail。这种不稳定的问题,往往是最令人头疼的,但其实只要仔细分析,最终还是能够找到解决方案的。

一、单个测试项不稳定
 
    归根结底,单独测pass,整个flow连着跑就不稳定,主要是由于前面的测试项的状态影响了当前测试项的状态。
    有几种可能性,有可能是电压,timing,或者芯片内部状态的变化影响了测试。嗯,这么一说,所有测试条件都包括了,说了跟没说一样。关键是,如何判断是那些测试条件导致了测试的不稳定?
    比如我们在进行FPGA的VOHL测试时,往往需要跑个pattern,设置成一种电压模式(比如SSTL),测一下VOHL。再跑个pattern,设置为另一个电压模式(比如LVDS),再测一下VOHL。这就是典型的由电压变化导致的,单个测pass,连着跑fail的情况。因为通常给FPGA设置模式时,VDDIO工作在3.3V的状态,跑完了pattern,进入了SSTL状态时,VDDIO变成了1.8V。再跑下一个pattern时,VDDIO又需要从1.8V提升至3.3V,然后测VOHL的时候,电压又要变化。所有如果在VDDIO尚未稳定时就跑pattern的话,pattern是比较容易fail的。而pattern fail了,下一个模式进不去,VOHL的测试自然也不会pass。
    解决这类问题,可以在芯片上电后、跑pattern前,加一些等待时间,通常可以解决。
    有些时候,第二个pattern pass了,但是第二组VOHL的测试始终不能pass。这种情况有可能是跑完前一个测试,部分IO的状态变化了,跟当前测试项所需要的IO状态不同了。虽然不是很了解具体是怎么影响的,但是曾经跟设计的工程师了解过,IO管脚上的电平,是有可能会影响IO电路内部寄存器的状态的。(此处如果有误,敬请不断拍砖。)所以我们可以在完成前一组测试时,可以用PPMU给所有的IO force一个0V,IRange选一个比较大的范围,给所有的IO都放一下电。虽然通过设置digital channel Pin Electronics上面的initial电平也可以给IO设置电压,但是不一定能够释放芯片IO、Load board上面的电荷(因为Vt和IO上面电压的关系是不知道的)。
    有些时候,上电后,加了很长的等待时间,pattern也还是容易fail。这种情况下,可以考虑做个shmoo,扫一下VDDC和VDDPLL的电压,看看fail是否和电压值高低有关系。
    如果出现了类似下图这种趋势的话,可以考虑是当pattern跑起来之后,瞬间消耗电流过大,导致电源电压瞬时的下降(低于VDDmin),导致的fail。当电源电压提高时,现象可缓解。

 
    这种情况,通过给电源加足够的电容(利用电容的储能原理),可以得到优化。
    但是,即使符合上述规律,也不一定是电源的问题。当at-speed的scan,在ATPG生成时,设置的constraint太严格的话,也容易出现随电源电压变化,fail增多或减少的现象。所以当我们把一切能试的都试过了以后,还是要跟design的工程师多聊聊,从设计的角度讲,测试fail都有哪些可能性。

 
    当我们扫shmoo时,出现了上面这张图。那么基本上可以确定,测试的不稳定跟电源电压的状态没什么关系了。基本上应该是timing沿设置的问题。我们仍然可以做个shmoo,去扫一下不同pin的上升沿和下降沿的位置,以找到一个稳定的区间。
    一般对于I2C,JTAG,SPI这种低速接口,沿的位置并不是非常关键。扫描时可以考虑扫一下system clock一类的时钟信号的上升下降沿等。
    还有一种可以尝试的方法,让DUT在两个测试项之间power down。下电、断电再上电。芯片在重新上电后,内部的一些状态恢复到默认状态,可以避免前一个测试项改动的寄存器,影响下一个测试。
 
二、量产不稳定
 
    根据我个人的经验,量产不稳定主要发生在paramatric test的时候。比如DC的电压、电流值,或者ADC/DAC的SNR, INL, DNL,或者PLL的frequency等等。
    当Hander或者Prober跑起来的时候,每次socket或者probe needle与DUT接触的状况不一样,导致paramatric测试fail。当清洗socket或者按时清针不能解决问题的时候,我们需要把程序的margin调得更大一些。
    通常CP测试比FT更容易出现parameter test的不稳定。因为CP测试整个docking的结构比FT测试更加复杂。从tester到DUT上的信号经过Tester->PIB->Pogo Tower->Probe Card->Probe Needle->Die Pad,信号通路更长,阻抗变化点更多。且probe needle和pad的contact resistance受针况影响很大。
    相比之下,FT时从tester到DUT的信号经过Tester->DIB->Socket->DUT Pin则简单许多。且bonding的稳定度要比needle扎在pad上的稳定度高多了。所以从结构上讲FT更适合做功能和参数测试。
    但有些时候在CP上测一些参数也是没办法的事。如果是接触性的问题,通常我会对相关的电流、电压参数做一些shmoo扫描。多测几颗芯片,找到margin最大的那个点。
    因为不同的产品,不同的测试项,测试方法、测试条件,以及spec卡的严格程度都不同。所以Paramatric测试找margin的方法也不能一概而论。只能抛砖引玉,举个例子稍做参考。
    J750HD上做CP,用frequency counter测试PLL输出的方波的频率。扎住一颗die测试是稳定的。但是一旦跑起来,就会开始fail。首先想到的是如果trigger frequency counter的电平(J750HD是VOH)恰好处于振铃区域的话,测出来的频率肯定会不稳定。

    结果实际plot出来发现pll的输出好得很,根本就没有振铃。

 
    这样的现象更说明是接触状态导致的pin上的level发生了微小的变化,导致每颗die的trigger点的判断不一致。又因为这一款产品的特殊性,VOH的值不能随意更改。于是考虑是否可以通过改变电流的大小使每次touch down的差异减小?就对Ioh和Iol进行了shmoo。结果发现测试还是fail得没什么规律。
 

 
    后来考虑,是否跟电流方向有关?于是开始调整Vt。把Vt做了一遍shmoo之后,找到了一个margin比较大的点。之后换了几颗die之后,测试稳定。所以基本上,扫描任何能想到的相关的电压、电流参数可以作为分析定位问题的一种手段。
 
 
    其实关于这个case,我有点怀疑是否电流的方向对测试结果能造成这么明显的影响。另一个可能性就是真正的trigger点还是由Vt控制的,这样上面这张图会更有说服力。然而help里面说是用VOH来trigger的。到此为止我就不明真相了,希望有经验的各位能在留言里不吝分享。
    如果是AD DA的测试不稳定,可以重点看一下THD的测试结果。是否谐波较多?如果谐波较多,通常说明整个信号路径上阻抗变化的地方太多了。可以试试instrument不同的端接模式,50Ohm或者High impedance。或者在测试要求允许的情况下,可以适当降低测试频率,再选一个合适的频带范围。
   
    好了。上面说的都是接触电阻导致的测试不稳定。还有一种,是由于不恰当的test flow导致的问题。
    因为ATE测试和EVB上的测试其实是不同的。EVB上面的测试是功能测试,整颗芯片需要boot起来,所有的模块都会工作起来,而且所有的电源基本同时处于Vmax, Vmin或者Vtyp的状态。
    而ATE测试,基本是模块化的,比如在测试ADC的时候,OTP部分的电源可以不上电,测试数字部分的scan时,ADC部分可以不上电等等。即使所有的电源都上电了,但是也可以某些模块的电源处于Vmax,某些处于Vtyp。所以当我们review整个test flow,并观察所有的电源pin的上电情况时,很有可能是每个测试项都不同的。
    而这些上下电的过程,会影响load board上面电容的充放电状态。导致前一颗芯片的测完了,load board上面电容的状态变化,下一颗再测试的时候,电源的稳定度发生了轻微的变化,从而导致marginal fail。
    这种情况,在单颗芯片整个flow loop时也能观察到。有些时候我们习惯loop20,30就认为测试稳定了。但有些时候,需要loop50次甚至上百次。因为某些钽电容的性能,会受到信号频率的影响。在loop次数较少时,钽电容的参数变化还不太明显。loop次数多起来的时候,钽电容的参数变化才会体现出来。
   
    解决这类问题,有几种方案可以考虑。第一,优化整个flow的电源变化顺序,尽量让电源稳定一些。第二,在关键测试的前后增加下电的步骤,不是仅仅断开DPS那么简单,而是用DPS force 0V,选择合适电流range,让电源上的电容充分放电。第三,可以在硬件设计时给电容增加放电通路。
 
 
    在想要给电容放电的时候,把relay切到电阻那一端,即可给电容放电。
    最后的最后,实在没办法了,就拿ATE上测完了的芯片到DVT上再测一遍。做个correlation。看看是不是能稍微把limit调宽一些吧。但是,赌上测试工程师的尊严,尽量不要采用这个下下策吧。
    测试不稳定这种事,真的是很难一言以蔽之。只能具体问题具体分析。在此只是给大家提供了一些思路。有很多我没接触过的情况,没想到的问题,希望大家不吝赐教。
顶一下
(73)
96.1%
踩一下
(3)
3.9%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片