引言
大多数IC设计工程师都了解数字BIST的工作原理。它用一个LFSR(线性反馈移位寄存器)生成伪随机的位模式,并通过临时配置成串行移位寄存器的触发器,将这个位模式加到待测电路上。数字BIST亦用相同的触发器捕获响应,将移出的结果压缩成一个数字标志,再将其与一个正确的标志作逐位对比。尽管工业逻辑BIST的细节要更复杂,但基本原理仍适用于多时钟域、多周期延迟路径,以及电源轨噪声等。
“模拟”的定义
“模拟”电路对不同的人有不同的含义。一个PLL或SERDES(串行器/解串器)可以看作是数字的,模拟的,或混合信号的。对这些单元的BIST测试可以是纯数字的,因为这些功能只有数字输入和输出。例如,有些IC会用片上的频率计数器来测量PLL的输出频率,它是用一个基准频率的已知周期数,统计振荡的周期数,如果计数中的任何位不同于期望值,则测试就失败。很多用于测试IC SERDES收发器性能的方法是采用环回的伪随机数据,如检测到一个误码就认为失败。然而,测试ADC或DAC这类模拟电路时,显然要求BIST电路可以生成或捕获模拟信号,即瞬时电压总是相关的信号。传统的模拟电路(如滤波器和线性稳压器)都有模拟输入与输出,不过很多都有数字控制的信号或时钟。最纯粹的模拟电路(如RF电路)可能根本没有数字信号。
在测试时,模拟电路至少要有一个非确定性瞬态电压的信号。测试包括对信号的检查,是在两个电压之间,是数字值,还是时间阈值;还要检查信号统计值是否在极限内;或检查一个有关信号的算术运算值是否在极限之间。对所有具备任何模拟信号的电路,都应采用模拟测试原理。
纯数字电路的响应是确定性的,因此,一个可接受的输出信号只需要采样一次。不过,如果能看到数字电路信号足够多的细节,如毫伏或皮秒量级,则所有电路都是模拟的。在纳米级CMOS工艺时,这种考虑尤其不能忽视,因为对于1V电源轨以及亚纳秒级时钟周期,电源轨噪声、抖动、温度以及参量变动都有显着的影响。测试模拟电路的BIST电路容易受这些效应影响,哪怕BIST几乎是全数字的,因此,很多模拟设计者都想了解模拟BIST如何比相同芯片上的模拟电路更精确。
设计模拟BIST的挑战
设计用于模拟电路的BIST要比精确提供和捕捉模拟信号更加复杂。信号变动与需要测量的参数都要比数字BIST处理的逻辑0和逻辑1要多得多。模拟激励与响应可以从直流电压、线性斜坡以及脉冲,直到正弦波与频率调制。激励与响应可能还属于不同的域,从而使挑战更加复杂化。例如,一个DC电压输入可能产生一个频率输出。挑战中还增加了需要分析的各种参数,它们可能包括幅度、相位延迟,以及SNR(信噪比),还有DC电压、峰峰抖动,以及占空比。
测试设备一般必须比待测电路精度高一个数量级。于是,最令人生畏的模拟BIST挑战就是:如何经济地实现比待测电路更高的精度,而后者很可能已经实现了在其硅片面积与技术下的最佳精度。信号幅度的范围可能非常巨大。ADC与DAC可以处理动态范围高达224的片上模拟信号,相当于8个数量级。
数字BIST可以比作一个正在给自己的多项选择测试打分的学生。他将一个模板放在答题纸上,统计正确答案数。另一方面,模拟BIST则可以比做一个正在做作文考试的学生。这不是一个简单而客观的过程。现在,考虑到实用模拟BIST所必须应用的基础电路原理,应可以了解挑战的量级了。
基础电路原则
原则一
通过施加时序不敏感的数字测试模式、时钟以及DC电压,测试机制本身必须是可测的,而无需片外的线性AC信号或测量。ATE(自动测试设备)在离开工厂前,要做大量的校准与测试。要让BIST成为混合信号ATE的替代方案,就必须在使用前作校准与测试。采用基于扫描的测试,模拟BIST电路的纯数字部分应是可测的,包括逻辑BIST。如果数字电路包含了延迟线或延迟匹配线路,则应测试这些延迟和延迟增量。测量一个延迟的方法是:将延迟线包含或配置到一个回路振荡器中,并用片上频率计数器测量其振荡频率。
对模拟BIST中纯 模拟部分的测试则更复杂。有些研究人员建议在自己的模拟BIST中使用一个ADC或DAC,暗含着ATE可以测试它的假设;然而,混合信号ATE仍将是必要的,因此削弱了BIST的很多优势。
也许最陈旧的BIST技术就是将一个DAC输出连回到一个ADC输入,或将一个调制器输出连到一个解调器输入,以此完成整个数字测试。这种方法仿佛是用一个未经测试的电路,去测试另外的电路,对补偿失误不敏感。例如,对于ADC中补偿的相似非线性,DAC的非线性则可能过高,因为两者一起要好于任何单独一个。
原则二
模拟BIST的第二个原则是欠采样,即慢于Nyquist速率的采样,这意味着采样速率要低于最高频率的两倍——这对于较慢地分析一个信号是必需的。较慢的采样还有利于使BIST电路小于待测电路。
在有些自校准方法中,会用一个低速ADC去欠采样一只高速ADC或DAC的模拟信号。一级sigma-delta调制器是小而简单的模拟电路,如果带宽降低就可以将模拟信号转换为任意分辨率的数字码流。调制器可以采样一个1600万次/秒的信号,产生1600个1 bit的采样;调制器可以对这些采样作数字滤波,产生100万个4位分辨率采样/秒,或16000个16 位采样/秒,每种情况都将可用带宽减少至1/16。欠采样可以让一个较窄的兴趣带宽定位于原始信号频率的中心,使其转换为一个低的频率,从而更便于做分析。不过,欠采样也要付出混叠效应的代价,这是必须考虑的。
另一个采样的例子是一个PLL BIST,它使用PLL的输入基准时钟沿,去采样PLL的输出(图1a)。此时,一个基准通过一个可调延迟线,为一只锁存器提供时钟,锁存器完成采样工作。假设锁存器的输出计数1000个时钟周期,然后延迟递增。这个动作不断重复,直到锁存器获得了累加的分布函数(图1b)。PLL的输出频率可以比其基准频率高出很多倍。这种BIST不能检测到基准时钟沿之间的抖动,但另外一种采用略微偏移的采样频率的技术,可以在输出相位的所有点上作采样。
PLL BIST使用PLL的输入基准时钟沿,采样PLL的输出 (a)。一个基准通过一根可调延迟线,为一个锁存器提供时钟,锁存器完成采样工作。锁存器的输出计数1000个时钟周期,然后延迟递增。这个动作不断重复,直到锁存器获得了累积分布函数 (b)。
这两种技术表示了时间测量的一个重要原则:控制一个信号被采样的时间时,要么是一个来自可调延迟的恒定时间偏移,要么是来自一个可调振荡器的恒定频率偏移,如PLL。在实现纳米CMOS时,低抖动延迟越来越困难,但低抖动频率偏移却越来越容易实现。
原则三
模拟BIST的另一个原则通过减去系统误差来提高精度。例如,当测量电压时,必须消除任何比较器或运算放大器的偏移电压。如果这些电路有可忽略的偏移,则必须测量该偏移,以验证它确实是可忽略的;否则,就必须减去它的值。比较简单的方法是假设该偏移较大,将其减掉。当测量延迟时,必须从输出的延迟中,减去待测电路输入端的测试接入路径延迟,以确保消除了接入路径的延迟。ATE通常采用乘法和减法,做模拟自校准,但这种运算需要太多电路,对BIST并不经济。当系统误差上下起伏时,可能会出现低频效应,如由于电力线噪声而使偏移以50 Hz或60 Hz变化。
通过增加采样来计算均值,可以提高精度。一个信号或测量电路中的随机噪声限制了对任何信号特性测量的可重复性。当在一次测量中包含了更多的采样时,就改善了测量的变动与可重复性。模拟测量电路实现均化的方法一般是用低通滤波,或用一个电容做电荷积分。
可以在模拟BIST的数字电路中使用全加法器,但很多情况下,用二进制计数器可以更高效地实现均化。用简单的均化或减法都无法抑制掉非随机的噪声,例如来自邻近同步逻辑或60 Hz电力线的干扰。不过,可以通过与干扰的同步采样,或对干扰频率作整数周期的积分,从而降低其影响。
为获得成本效益,BIST电路必须有高于待测电路的成品率。对于数字BIST的情况,这种要求只是意味着其面积必须小于待测电路面积。然而对于模拟BIST,这一原则还意味着BIST必须在不影响成品率情况下,实现所需要的线性度、噪声以及带宽。在一项研究中,一个测试芯片上只有70%的小型模拟BIST电路可以实现所需要的测量精度。该BIST的成品率对SoC(系统单芯片)的影响等同于电路占整个SoC的30%情况。
使BIST的成品率高于待测模拟电路的最佳方式是尽可能减少BIST中的模拟电路数量,即使其数字化。通过在多个功能之间共享一个BIST电路,可以减少与BIST电路有关的面积。数字BIST可以很容易实现这一任务,但模拟BIST则相反,因为需要测试的功能之间存在差异性。这就是MadBIST建立的原因,这种方法由MF Ton er和Gordon W Roberts共同开发。采用MadBIST时,一只DSP首先测试一只ADC然后才是DAC。MadBIST、ADC和DAC,然后再测试其它模拟电路。
采用共享分析块有一个问题,即将感兴趣的模拟信号传送给分析块。完成这个工作一般采用模拟总线,但它们会带来负载、噪声和非线性,并且会减小带宽。一种替代方法是在本地将信号转换为某种数字表述,然后采用一个数字总线。
模拟BIST必须能够采用基于规范的结构化测试。换句话说,所做激励与响应分析的结果,必须能与模拟电路的功能规范作校对,但它们也必须面向制造缺陷,帮助做诊断,并尽可能减少测试时间。面向缺陷的测试有助于完成这个任务,但一般不会尝试使用仿功能测试。飞利浦(现在的恩智浦公司)在1995年首先在基于规范的传统模拟测试与面向缺陷的测试之间做了一个公开的行业对比。结论是:当设计规范有更大的裕度,并且过程得到良好的控制时,面向缺陷的测试能对相近的缺陷覆盖实现更快的测试。另一方面,基于规范的测试对保持测试覆盖和成品率都是必要的。
数字BIST天然地就采用一种仿功能的激励,因为几乎任何1和0的模式都能表示功能模式下的输入信号,包括伪随机数据。而为模拟电路提供一种仿功能激励则可能复杂得多。伪随机噪声是一个诱人的模拟激励,它能处理很多潜在的缺陷,并且易于生成。一只电阻和一只电容就可以对数字BIST中的LFSR输出做滤波,产生一个模拟波形。乘法器和加法器可以将待测模拟电路的响应与其伪随机输入做交叉关联。
另外一种更容易实现的方案是,将电路输出端连接到输入端,必要时增加增益或反相,从而将电路重新配置为一个振荡器,并测量其振荡频率。这种技术具有面积效率。不幸的是,这两种方案都被证明难以使用,因为测量对于噪声和非线性都太不敏感,而诊断也不实用。
ATE广泛采用一种线性斜坡与单音正弦波作为测试激励,从而有效地测试ADC和DAC的线性度,并作诊断辅助。在片上产生一个纯斜坡或正弦波的最强大方式是在一个循环移位寄存器中存储一个周期性的sigma-delta码流,不过这种方案可能需要数千个逻辑门,外加模拟滤波。所幸的是,一个激励块可能就足以应付一片SoC中的所有模拟功能,并且可以有效地将串行数字码流送给芯片的各个区域。
激励生成的最简单而有用的信号是一个数字方波,可以用它去测量一个步长,或一个脉冲响应。令人惊讶的是,对于一个用于生成波形的采样比较器来说,精确DC电压是一种困难的激励或基准,除非求助于需要更多自测的模拟技术。对一个占空比可编程的数字波形做低通滤波,可以产生一个基本上是DC的波形,其平均电压取决于占空比,并且在高开关频率时,平均电压还取决于数字信号上升和下降时间的不匹配度。
降低开关频率,就降低了DC电压对这种不匹配的敏感度,但增加了DC电压的峰峰变动。在模拟功能中(如稳压器),增加有源低通滤波就可以减少这种噪声。但采用这种方案的模拟BIST必须对滤波做测试。更适合于BIST的是在“高速模拟电路测试与验证研讨会”上刚刚演示的一种技术。
原则四
模拟BIST的最后原则是,必须通过与上下测试极限值的比较,将其结果输出为一个数字测量值以及合格/不合格的比特。如果要将一个模拟的电压结果送至片外做特性描述,它就可能遭到损坏,并且可能需要混合信号ATE。一个未在片上与极限值比较过的数字结果可能需要用ATE去捕捉和分析数字字,而不是单个比特,这就不能使用最常见的测试模式语言WGL(波形生成语言)和STIL(标准测试界面语言),以及很多低成本的测试仪。单有合格/不合格的结果将无法确定参数特性,也缺乏测量的可重复性,而这是设定测试极限的一个基本步骤。
了解了这些基础原则,就明白,实用PLL BIST既没有采用模拟电路,也没有使用延迟线,因此它对噪声的敏感度弱于待测PLL。例如,PLL必须每纳秒生成一个低抖动边沿,并尽量减小抖动的累积。但是,PLL BIST可以用一个预测试的低抖动时钟对边沿作欠采样,时钟通过几个数字反相器传送,这些反相器有快速的转换性能,尽量减少附加的抖动。
如果没有预测试的时钟,则PLL可以对相同芯片上工作在一个略为异步频率的其它PLL边沿作采样。获得的抖动测量结果是两个抖动水平之和;随机抖动不可能相互抵消。在一个直方图中增加很多这类采样,可以降低寄生噪声的影响,并且以与任何干扰相同速率采样,可以进一步降低这种影响。
模拟BIST的需求
过去15年来,很少有什么人提出的模拟BIST技术包含了上述所有原则。但所有这些原则都是BIST实用性与性价比的关键。开发一种实用的模拟BIST已被证明有太高的挑战性,但工程师们无疑将开发出一些包含这 些原则的技术,因为对它们的需求在不断增加。
SoC中正在加入更多的系统模拟功能,有更多的管脚数和门数,所有这些都推升了测试时间与测试成本。增加嵌入闪存会大大增加测试时间(远不止一分钟),从而绝对需要多址的测试,这种要求又推动了对低管脚接入以及更多模拟测试资源的需求。
阻止采纳模拟BIS或任何其它新的模拟测试技术的最大障碍是,缺乏被行业接受的模拟故障模型。所幸的是,在2009年国际测试会议上一个小组讨论结果是,一些讨论成员表达了对开发一种IEEE赞助的标准化模拟故障模型的兴趣。小组成员还同意,在行业可以采用任*技术以前,更多的DFT(可测试设计)自动化是必要的,这种情形已出现在IC的数字部分。只有当IC设计者采纳了系统化的通用技术,可以测试一片IC上的多个功能时,EDA公司才会开发自动化方案。