分享

[ATE知识] DFT PLL向量,ATE怎么用?

 新用户62592529 2023-10-19 发布于四川

Art life


01



自动测试设备 (ATE)对PLL(锁相环)进行测试时,我们首先要明白PLL在系统级芯片(SoC)中的重要性。它是SoC中关键的时钟或信号同步部件,其性能直接影响到芯片逻辑的正确运行。在测试PLL IP时,通常会有多个测试项目,如频率测试、相位噪声、锁定时间、稳定性、误差和漂移等。但在SoC的ATE测试中,CP阶段通常只进行PLL频率和锁定测试。

    那么DFT如何产生PLL 测试pattern,以及ATE如何根据这些pattern进行PLL测试?

PART
01 : DFT 产生 PLL 向量
图片

   DFTer 每条PLL向量配置要求:(参考下图)

    a) JTAG配置多个PLL为对应的待测频点.

    b) 配置Div系数为最大,尽可能降低输出时钟的频率

    c) LOCK信号在TDO串行移出观测或者复用到IO上。

    d) 切换IO复用后,PLL div 信号将会输出到对应GPIO上。

 图片

    PLL输出频率的要求:10M~50M之间。 WHY?
        1. 上限受限于GPIO,在高于50M时,GPIO的输出特性随频率升高而减弱,最好低于50M。(机台PS1600最高1.6G采样频率,不需要考虑奈奎斯特频率的限制。)
    2. 下限需要考虑到不同测试方法的测试时间的影响,比如给一个32K的钟,机台需要构造更长的采样向量。
图片
PART
02 : ATE如何测试PLL
图片

  两种方法: 时域和频域测试,如下:

    方法1. ATE time measurement unit ( TMU)测试。(时域,需要额外的TMU license,因此常不采用。)

图片

   实施步骤:ATE 构造TMU TASK。TMU可以非常高精度地根据task设置trigger到上升沿的时刻,因此可以通过两个上升沿的差值计算出频率,支持多次采样,如下图所示:

图片

    方法2. 构造采样向量,离散傅里叶公式计算频谱,频谱的最大和第2大频率转换即为待测信号频率。(频域)

        a). 预先构造一条全L的向量,假设叫做PLL_sample.

        b). 运行DFT PLL向量的测试项.运行后, 不复位的情况下DUT此时稳定输出时钟信号。

       c).  运行预先构造好的向量PLL_sample,收集fail cycle,也就是ATE的error map。获得一串0/1组成的一维序列,如下图(点击可放大):

图片

d). 对获得一维序列进行汉明窗口卷积后,使用快速离散傅立叶变换获得频谱。通过频谱可以相当高精度的获得输出的频率,通过spec进行分bin。

如果想了解详情,可以参考论文,这里不再赘述:

A Method of High Precision Frequency Detection with FFT, IEIEC Transaction A Vol. J70-A No.5 pp.798-805, May 1987

实际步骤:首先应用DSP_FFT与汉明窗口。然后搜索频谱第一大主频kmax 和第二大频,(kmax-1 或者 kmax+1)。如图所示,第1大和第2大频率成为关键参数。

核心为两个公式:


图片, 图片

图片

1:    int        i,kmax,Ndgt,Nsp;2: double dR,dX,dY,dMax,dFresln,dFx,dFdgt;3: double dFrequency,dAmplitude,dPhase;4: COMPLEX CX,CY,CZ;5: ARRAY_D dVdgt,dSp,dTemp;6: ARRAY_COMPLEX CSp;7:8: dVdgt=DGT('Aout').getWaveform();9: Fdgt=1.0/DGT('Aout').getConvClock();10: Ndgt=dVdgt.size();11: dFresln=dFdgt/Ndgt; // Frequency resolution(bin space)12:13: DSP_FFT(dVdgt,CSp,HANNING); // Apply HANNING window14: Nsp=CSp.size();15: DSP_RECT_POL(CSp,dSp,dTemp); // Spectrum length16:17: dMax=0.0; kmax=0;18: for (i=1;i<Nsp;i++) { // Search the maximum length19: if (dSp[i]>dMax) { dMax=dSp[i]; kmax=i; }20: }21:22: if (dSp[kmax-1]>dSp[kmax+1]) {23: dR=dSp[kmax-1]/dSp[kmax]; // Equation(12)24: dFx=kmax+(1.0-2.0*dR)/(1.0+dR); // Equation(16)25: } else {26: dR=dSp[kmax+1]/dSp[kmax]; // Equation(17)27: dFx=kmax-(1.0-2.0*dR)/(1.0+dR); // Equation(18)28: }29: dFrequency=dFx*dFresln; // Estimated Frequency30: // dFx: Estimated Bin Location31: dX=dFx-kmax;32: dY=M_PI*dX;33: dAmplitude=-dSp[kmax]*(dY/sin(dY))*(dX-1.0)*(dX+1.0);34: // Equation(21)35: CX=CSp[kmax];36: CY.real()=cos(dY);37: CY.imag()=-sin(dY);38: CZ=CX*CY;39: dPhase=atan2(CZ.imag(),CZ.real()); // Equ.(22)[rad]
图片








































































































































'Quality is never an accident; it is always the result of intelligent effort.' - John Ruskin

Ryan

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多