片上系统中adc内建自测试电路及测试方法_2

文档序号:9914141阅读:来源:国知局
0057]图1是现有技术中内建自测试电路的原理框图;
[0058]图2是现有技术基于DSP的ADC BIST结构示意图;
[0059] 图3是本发明实施例片上系统中ADC内建自测试电路的一种结构示意图;
[0060] 图4是本发明实施例中CORDIC算法基本原理示意图;
[0061] 图5是本发明实施例中输入N点序列全为(1,1)时的基2-DIT-FFT运算流程图;
[0062] 图6是本发明实施例中频谱混叠效应示意图;
[0063] 图7是本发明实施例中各次谐波在0~Fs/2范围上的位置示意图;
[0064] 图8是本发明实施例片上系统中ADC内建自测试电路的一种应用示意图;
[0065] 图9是本发明片上系统中ADC测试方法的流程图。
【具体实施方式】
[0066] 为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施 方式对本发明实施例作进一步的详细说明。
[0067]如图1所示,是本发明实施例片上系统中ADC内建自测试电路的一种结构示意图。 [0068]该电路100包括:控制模块11、信号处理模块12、测试模块13。其中:
[0069] 所述控制模块11,用于在待测ADC施加激励信号后输出的响应信号达到稳定后,触 发所述信号处理模块12和所述测试模块13开始工作;
[0070] 所述信号处理模块12,用于对所述响应信号进行采样,对采样得到的采样值实序 列进行FFT变换,得到所述响应信号的频谱信号数据;
[0071] 所述测试模块13,用于根据所述响应信号的频谱信号数据计算所述响应信号的动 态参数。
[0072]上述信号处理模块12包括以下各单元:
[0073] 采样单元,用于对所述响应信号进行采样,并将采样值逆序存储到外部RAM;
[0074] 地址产生单元,用于记录所述采样值存储的读写地址;
[0075] FFT单元,用于根据所述地址产生单元记录的读写地址,从所述外部RAM中提取采 样值实序列,对所述采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据,并将 所述频谱信号数据存储到外部RAM中;
[0076] 第一控制单元,用于控制所述采样单元、地址产生单元、以及FFT单元的工作。
[0077]上述测试模块13包括以下各单元:
[0078] 频谱功率计算单元,用于从外部RAM中获取所述频谱信号数据,计算频谱功率;
[0079] 位置记录单元,用于记录所述频谱信号数据的位置信息;
[0080] 谐波搜索单元,用于根据所述频谱功率确定所述响应信号的频谱信号的基频及各 次谐波;
[0081] 动态参数计算单元,用于根据所述频谱信号的基频及各次谐波计算所述响应信号 的动态参数;
[0082] 第二控制单元,用于控制所述频谱功率计算单元、位置搜索单元、以及动态参数计 算单元的工作。
[0083]需要说明的是,上述FFT单元在将所述频谱信号数据存储到外部RAM中时,可以将 其存储到预先设定的地址,也就是说,频谱信号数据的存储地址是固定的,相应地,上述频 谱功率计算单元可以从该地址获取所述频谱信号数据。当然,在实际应用中,所述FFT单元 在存储所述频谱信号数据时,也可以采用随机地址,只需将该地址通知第一控制单元,第一 控制单元再将该地址通知控制模块11,这样,在控制模块11触发测试模块13开始工作后,将 该地址通知给测试模块13中的第二控制单元,再由第二控制单元通知给频谱功率计算单元 即可。
[0084]本发明片上系统中ADC内建自测试电路用于对片上ADC的测试,在实际应用中,片 上待测ADC需要由激励产生电路一个激励信号,比如正弦信号,本发明片上系统中ADC内建 自测试电路在待测ADC输出的响应稳定之后开始工作,对待测ADC输出的响应信号进行一系 列测试。比如,可以通过一个与上述控制模块11相连的延时模块(未图示)来触发控制模块 11开始工作。该延时模块可以由上述激励信号触发,也可以由待测ADC输出的响应信号触 发,向所述控制模块输出开始信号(Start),以使控制模块开始工作。
[0085] 所述延时模块具体可以由RC延时电路等来实现。需要说明的是,用于产生上述激 励信号的激励产生电路可以设置于片上系统中,也可以独立于片上系统之外,对此本发明 不做限定。
[0086] 下面继续结合图3对本发明片上系统中ADC内建自测试电路的工作过程进行详细 说明。
[0087]第一阶段:采样和逆序存储。
[0088]采样和逆序存储这两项工作是同时进行的,具体地,由采样单元对待测ADC输出的 响应信号进行采用,每一个点采样之后就会进行地址逆序存储,然后采下一个点进行地址 逆序储存,依次直到采样点数满足动态参数分析的要求。采样点数与ADC的输出位数η有关, 按照ΙΕΕΕ1241的ADC测试标准,采样点数应满足Sample_Number> = Ji2n,同时由于FFT的输入 点数必须是2的幂,所以最少的采样点数为4*2η。基2-时域抽取-FFT的输入并不是顺序的, 采样的数值需要变换地址高低位逆序存储。比如,存储地址的计数值从〇〇〇~111,对应于顺 序采样的8个采样值,计数值100对应的是第5个采样值,则将第5个采样值写入外部RAM时, 其地址逆序为001,即写入外部RAM中的地址为001。也就是说,计数时从左边是最高位右边 最低位,存储时的写入地址右边是最高位左边最低位,利用该操作可以实现逆序。
[0089] 第二阶段:对已经逆序存储的实序列做FFT,以下简称为RFFT。
[0090] N点RFFT是基于N/2点复数序列FFT(CFFT)算法基础上的FFT算法,与直接使用N点 CFFT算法来计算实序列相比,可以节省大约一半的存储及计算资源。FFT算法的计算需要使 用旋转因子,对应于不同的正余弦值,本发明的电路采用了 CORDIC算法实现不同的正余弦 值的计算,相比查找表方式实现旋转因子的方法,节省了存储资源。
[0091] 相应地,如图3所示,FFT单元可以包括:
[0092] 角度产生器,用于根据所述地址产生单元记录的采样值存储的读写地址产生旋转 因子角度;
[0093]正余弦值计算器,用于利用所述旋转因子角度计算旋转因子正余弦值;
[0094]蝶形运算器,用于依次提取外部RAM中存储的采样值实序列中的值,对提取的当前 值及所述旋转因子正余弦值进行蝶形运算,得到所述响应信号的频谱信号数据,并将所述 频谱信号数据存储到外部RAM中。
[0095]下面对本发明实施例中的RFFT算法做简要说明。
[0096]待测ADC输出的响应信号的采样序列是实序列x(n),根据实序列的FFT特点,可以 进一步减少硬件资源以及加快FFT的运算时间。
[0097] RFFT算法如下:
[0098] 设x(n)为N点实序列,可以将x(n)分为偶数点序列^(11)和奇数点序列χ2(η),分别 作为复数序列y(n)的实部和虚部。
[0099]
[0100]
[0101] 利用CFFT算法,对y (η)做N/2点的FFT,得到Y(k)。
[0102] 利用实序列的共辄对称性,可以由Y (k)算出X1 (η)的DFT结果X1 (k)和X2 (η)的DFT结 果X2(k):
[0103]
[0104]
[0105]
[0106] 根据时域抽取-基2-FFT算法的原理,由X1(Ic)和X2(k)进行一级蝶形运算,可以算出 X(k,):
[0107]
[0108]
[0109]
[0110]
[0111] 其中,为旋转因子。
[0112] X(N-k)实际上不需要计算,只需要分析前1~N/2点频谱就可以得到动态参数。
[0113] RFFT算法深度是N/2,相比N点CFFT,减少了 1级的蝶形运算,并且节省了约一半的 存储资源。
[0114] FFT中不同的旋转因子个数与运算的点数N有关,在现有技术中,通常采用查表法 实现不同的旋转因子,即将正余弦的值直接存储在固定的ROM中,由角度控制模块控制ROM 地址进行读取,这种方法的缺点是,存储资源消耗很大,并且运算点数N越大(不同的旋转因 子越多),存储消耗越多。
[0115] 为此,在本发明实施例中,为了弥补查表法的缺点,由角度产生器根据地址产生单 元记录的采样值存储的读写地址产生不同的角度,然后由正余弦值计算器实现正余弦的运 算,所述正余弦值计算器可以由专用CORDIC电路实现。CORDIC是一种逼近算法,需要一定的 计算迭代时间,但是可以节省比较大的硬件存储空间。由于在BIST技术中,比较敏感的是附 加的测试电路大小,因此本发明实施例选用CORDIC方法实现不同的旋转因子更有优势。 [0116] CORDIC算法的基本原理是矢量旋转以及旋转角度逼近,如图4所示:
[0117] 初始向量(Xi,yi)旋转角度Cii之后得到向量(Xi+1,yi+1),两个向量之间的坐标关系
为:
[0118]
[0119]
[0120]
[0121]
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1