CN105680859B - 片上***中adc内建自测试电路及测试方法 - Google Patents
片上***中adc内建自测试电路及测试方法 Download PDFInfo
- Publication number
- CN105680859B CN105680859B CN201610065972.8A CN201610065972A CN105680859B CN 105680859 B CN105680859 B CN 105680859B CN 201610065972 A CN201610065972 A CN 201610065972A CN 105680859 B CN105680859 B CN 105680859B
- Authority
- CN
- China
- Prior art keywords
- signal
- unit
- response
- adc
- sampling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 71
- 238000010998 test method Methods 0.000 title claims abstract description 10
- 230000004044 response Effects 0.000 claims abstract description 84
- 238000001228 spectrum Methods 0.000 claims abstract description 82
- 238000005070 sampling Methods 0.000 claims abstract description 64
- 230000005284 excitation Effects 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 17
- 230000003595 spectral effect Effects 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/10—Calibration or testing
- H03M1/1071—Measuring or testing
- H03M1/1095—Measuring or testing for ac performance, i.e. dynamic testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种片上***中ADC内建自测试电路及测试方法,该电路包括:控制模块、信号处理模块、测试模块;所述控制模块,用于在待测ADC施加激励信号后输出的响应信号达到稳定后,触发所述信号处理模块和所述测试模块开始工作;所述信号处理模块,用于对所述响应信号进行采样,对采样得到的采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据;所述测试模块,用于根据所述响应信号的频谱信号数据计算所述响应信号的动态参数。本发明可以不依赖于片上DSP,实现对片上ADC的BIST。
Description
技术领域
本发明涉及模拟/混合信号集成电路测试领域,具体涉及一种片上***中ADC内建自测试电路及测试方法。
背景技术
集成电路技术已经发展到了SoC(片上***)阶段,测试是SoC的关键技术之一。SoC测试结构和测试方法成为近期可测性设计的主要研究领域。SoC中除了集成大量的数字电路IP(知识产权)核,也集成了模拟混合信号IP核。对于模拟混合电路,由于没有像数字集成电路那样被广泛接受的故障模型和成熟的可测性设计工具支持,大部分模拟混合电路的测试都是基于功能和参数的测试。研究SoC中模拟混合电路的测试结构以及自测试方法,是SoC可测性设计中急需考虑和解决的问题。
BIST(内建自测试)因为测试激励生成与响应分析都在片内完成,可以减少测试时对高性能测试设备的依赖性,最终将有效降低IP核的测试成本和上市时间。BIST电路一般包括测试生成电路(TPG)、测试响应分析电路(ORA)、比较分析电路、存储电路和测试控制电路。一般结构如图1所示。其中,测试生成电路生成测试图形施加给被测电路的输入端,被测电路输出对测试图形的响应,该响应由测试响应分析电路自动压缩成特征符号。比较分析电路分析特征符号与存储电路中存储的理想特征符号是否一致,并发出测试通过/失败信息。测试控制电路对上述几个单元进行控制。
BIST在数字集成电路中已得到广泛应用,并逐渐成熟,而在模拟混合信号集成电路中,由于测试的是连续信号,变化范围大,而且多具有非线性特征,电路是否合格的判断比数字电路复杂,因此,模拟混合信号集成电路BIST技术仍是人们研究的热点。
ADC(模数转换器)是SoC中常见的混合信号IP核,将连续的输入模拟信号转换成离散的数字量。输入模拟量可以是0到FS(满量程)之间的任意值,输出的数字量可以有很多编码形式,如二进制码、温度计码及格雷码等。ADC性能通常用两种参数来描述,即静态参数和动态参数,其中,静态参数包括:INL(积分非线性误差)、DNL(微分非线性误差)、增益误差、失调误差。动态参数包括:SNR(信噪比)、SFDR(无杂散动态范围)、THD(总谐波失真比)、SNDR(信号噪声失真比)、ENOB(有效位数)。
对于ADC IP核,如图2所示,传统的BIST方法是将模拟激励产生单元集成于芯片内,产生激励信号输入待测ADC,采样并使用DSP(数字信号处理器)分析ADC的输出信号,进而完成片内ADC的测试。这种基于DSP的BIST主要存在以下缺点:对DSP存在依赖性,即只有在片上存在DSP的条件下,才能完成性能分析。
发明内容
本发明提供一种片上***中ADC内建自测试电路及测试方法,以解决现有技术只有在片上存在DSP的条件下,才能完成性能分析的问题。
为此,本发明提供如下技术方案:
一种片上***中ADC内建自测试电路,包括:控制模块、信号处理模块、测试模块;
所述控制模块,用于在待测ADC施加激励信号后输出的响应信号达到稳定后,触发所述信号处理模块和所述测试模块开始工作;
所述信号处理模块,用于对所述响应信号进行采样,对采样得到的采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据;
所述测试模块,用于根据所述响应信号的频谱信号数据计算所述响应信号的动态参数。
优选地,所述信号处理模块包括:
采样单元,用于对所述响应信号进行采样,并将采样值逆序存储到外部RAM;
地址产生单元,用于记录所述采样值存储的读写地址;
FFT单元,用于根据所述地址产生单元记录的读写地址,从所述外部RAM中提取采样值实序列,对所述采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据,并将所述频谱信号数据存储到外部RAM中;
第一控制单元,用于控制所述采样单元、地址产生单元、以及FFT单元的工作。
优选地,所述FFT单元包括:
角度产生器,用于根据所述地址产生单元记录的采样值存储的读写地址产生旋转因子角度;
正余弦值计算器,用于利用所述旋转因子角度计算旋转因子正余弦值;
蝶形运算器,用于依次提取外部RAM中存储的采样值实序列中的值,对提取的当前值及所述旋转因子正余弦值进行蝶形运算,得到所述响应信号的频谱信号数据,并将所述频谱信号数据存储到外部RAM中。
优选地,所述蝶形运算器进行蝶形运算时,采用32位定点运算,并且动态调整定点小数位的精度。
优选地,所述测试模块包括:
频谱功率计算单元,用于从外部RAM中获取所述频谱信号数据,计算频谱功率;
位置记录单元,用于记录所述频谱信号数据的读取地址;
频率搜索单元,用于根据所述频谱功率及各频谱信号数据的读取地址,确定所述响应信号的频谱信号的基频及各次谐波频率的位置;
动态参数计算单元,用于根据所述频谱信号的基频及各次谐波计算所述响应信号的动态参数;
第二控制单元,用于控制所述频谱功率计算单元、位置记录单元、频率搜索单元、以及动态参数计算单元的工作。
优选地,所述动态参数计算单元,具体用于计算信噪比、无杂散动态范围、总谐波失真比、信号噪声失真比、有效位数。
优选地,所述电路还包括:
与所述控制模块相连的延时模块,由所述激励信号或所述待测ADC输出的响应信号触发,向所述控制模块输出开始信号。
所述控制模块在接收到所述开始信号后,触发所述信号处理模块和所述测试模块开始工作。
优选地,所述电路还包括:
激励产生电路,用于产生所述激励信号;所述激励产生电路设置在所述片上***中,或者独立于所述片上***之外。
一种片上***中ADC测试方法,包括:
在待测ADC施加激励信号后输出的响应信号达到稳定后,对所述响应信号进行采样并对采样值进行地址逆序存储;
对存储的采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据;
根据所述响应信号的频谱信号数据计算所述响应信号的动态参数。
优选地,对所述响应信号进行采样的采样点数Sample_Number>=π2n,n为待测ADC的输出位数。
优选地,所述对存储的采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据包括:
依次提取存储的采样值实序列中的值,得到当前值;
产生对应所述当前值的旋转因子角度;
利用所述旋转因子角度计算旋转因子正余弦值;
对所述当前值及其对应的旋转因子正余弦值进行蝶形运算,得到所述响应信号的频谱信号数据。
优选地,进行蝶形运算时,采用32位定点运算,并且动态调整定点小数位的精度。
优选地,所述根据所述响应信号的频谱信号数据计算所述响应信号的动态参数包括:
根据所述频谱信号数据计算频谱功率;
根据所述频谱功率确定所述响应信号的基频及各次谐波频率位置;
根据所述频谱信号的基频及各次谐波计算所述响应信号的动态参数。
优选地,所述激励信号为正弦信号。
本发明提供的片上***中ADC内建自测试电路及测试方法,可以不依赖于片上DSP,实现对片上ADC的BIST。而且,该电路还进一步具有以下优点:
(1)可以根据ADC精度的要求,动态地调整算法流程以及相应的存储即可满足要求,而不需要对电路进行修改。比如,当要测试的ADC精度是12bit时,动态采样的ADC输出为2^12*4=16384个数值,存储在2*16384位宽大小的RAM中,算法流程与需要计算的采样点个数是相关的,但算法流程可以通过电路的外部输入对内部的状态寄存器进行配置,因而内部电路不用修改。
(2)采用RFFT算法,降低了对存储资源的消耗。
(3)利用CORDIC算法生成旋转因子角度,相比查表方式,可以进一步节省存储资源。
(4)在进行蝶形运算时,采用32位定点运算,并且动态调整小数位的精度,有效地降低了运算复杂度,并在定点计算的基础上,提高了运算精度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是现有技术中内建自测试电路的原理框图;
图2是现有技术基于DSP的ADC BIST结构示意图;
图3是本发明实施例片上***中ADC内建自测试电路的一种结构示意图;
图4是本发明实施例中CORDIC算法基本原理示意图;
图5是本发明实施例中输入N点序列全为(1,1)时的基2-DIT-FFT运算流程图;
图6是本发明实施例中频谱混叠效应示意图;
图7是本发明实施例中各次谐波在0~Fs/2范围上的位置示意图;
图8是本发明实施例片上***中ADC内建自测试电路的一种应用示意图;
图9是本发明片上***中ADC测试方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
如图1所示,是本发明实施例片上***中ADC内建自测试电路的一种结构示意图。
该电路100包括:控制模块11、信号处理模块12、测试模块13。其中:
所述控制模块11,用于在待测ADC施加激励信号后输出的响应信号达到稳定后,触发所述信号处理模块12和所述测试模块13开始工作;
所述信号处理模块12,用于对所述响应信号进行采样,对采样得到的采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据;
所述测试模块13,用于根据所述响应信号的频谱信号数据计算所述响应信号的动态参数。
上述信号处理模块12包括以下各单元:
采样单元,用于对所述响应信号进行采样,并将采样值逆序存储到外部RAM;
地址产生单元,用于记录所述采样值存储的读写地址;
FFT单元,用于根据所述地址产生单元记录的读写地址,从所述外部RAM中提取采样值实序列,对所述采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据,并将所述频谱信号数据存储到外部RAM中;
第一控制单元,用于控制所述采样单元、地址产生单元、以及FFT单元的工作。
上述测试模块13包括以下各单元:
频谱功率计算单元,用于从外部RAM中获取所述频谱信号数据,计算频谱功率;
位置记录单元,用于记录所述频谱信号数据的位置信息;
谐波搜索单元,用于根据所述频谱功率确定所述响应信号的频谱信号的基频及各次谐波;
动态参数计算单元,用于根据所述频谱信号的基频及各次谐波计算所述响应信号的动态参数;
第二控制单元,用于控制所述频谱功率计算单元、位置记录单元、频率搜索单元、以及动态参数计算单元的工作。
需要说明的是,上述FFT单元在将所述频谱信号数据存储到外部RAM中时,可以将其存储到预先设定的地址,也就是说,频谱信号数据的存储地址是固定的,相应地,上述频谱功率计算单元可以从该地址获取所述频谱信号数据。当然,在实际应用中,所述FFT单元在存储所述频谱信号数据时,也可以采用随机地址,只需将该地址通知第一控制单元,第一控制单元再将该地址通知控制模块11,这样,在控制模块11触发测试模块13开始工作后,将该地址通知给测试模块13中的第二控制单元,再由第二控制单元通知给频谱功率计算单元即可。
本发明片上***中ADC内建自测试电路用于对片上ADC的测试,在实际应用中,片上待测ADC需要由激励产生电路一个激励信号,比如正弦信号,本发明片上***中ADC内建自测试电路在待测ADC输出的响应稳定之后开始工作,对待测ADC输出的响应信号进行一系列测试。比如,可以通过一个与上述控制模块11相连的延时模块(未图示)来触发控制模块11开始工作。该延时模块可以由上述激励信号触发,也可以由待测ADC输出的响应信号触发,向所述控制模块输出开始信号(Start),以使控制模块开始工作。
所述延时模块具体可以由RC延时电路等来实现。需要说明的是,用于产生上述激励信号的激励产生电路可以设置于片上***中,也可以独立于片上***之外,对此本发明不做限定。
下面继续结合图3对本发明片上***中ADC内建自测试电路的工作过程进行详细说明。
第一阶段:采样和逆序存储。
采样和逆序存储这两项工作是同时进行的,具体地,由采样单元对待测ADC输出的响应信号进行采用,每一个点采样之后就会进行地址逆序存储,然后采下一个点进行地址逆序储存,依次直到采样点数满足动态参数分析的要求。采样点数与ADC的输出位数n有关,按照IEEE1241的ADC测试标准,采样点数应满足Sample_Number>=π2n,同时由于FFT的输入点数必须是2的幂,所以最少的采样点数为4*2n。基2-时域抽取-FFT的输入并不是顺序的,采样的数值需要变换地址高低位逆序存储。比如,存储地址的计数值从000~111,对应于顺序采样的8个采样值,计数值100对应的是第5个采样值,则将第5个采样值写入外部RAM时,其地址逆序为001,即写入外部RAM中的地址为001。也就是说,计数时从左边是最高位右边最低位,存储时的写入地址右边是最高位左边最低位,利用该操作可以实现逆序。
第二阶段:对已经逆序存储的实序列做FFT,以下简称为RFFT。
N点RFFT是基于N/2点复数序列FFT(CFFT)算法基础上的FFT算法,与直接使用N点CFFT算法来计算实序列相比,可以节省大约一半的存储及计算资源。FFT算法的计算需要使用旋转因子,对应于不同的正余弦值,本发明的电路采用了CORDIC算法实现不同的正余弦值的计算,相比查找表方式实现旋转因子的方法,节省了存储资源。
相应地,如图3所示,FFT单元可以包括:
角度产生器,用于根据所述地址产生单元记录的采样值存储的读写地址产生旋转因子角度;
正余弦值计算器,用于利用所述旋转因子角度计算旋转因子正余弦值;
蝶形运算器,用于依次提取外部RAM中存储的采样值实序列中的值,对提取的当前值及所述旋转因子正余弦值进行蝶形运算,得到所述响应信号的频谱信号数据,并将所述频谱信号数据存储到外部RAM中。
下面对本发明实施例中的RFFT算法做简要说明。
待测ADC输出的响应信号的采样序列是实序列x(n),根据实序列的FFT特点,可以进一步减少硬件资源以及加快FFT的运算时间。
RFFT算法如下:
设x(n)为N点实序列,可以将x(n)分为偶数点序列x1(n)和奇数点序列x2(n),分别作为复数序列y(n)的实部和虚部。
x1(n)=x(2n),x2(n)=x(2n+1),0≤n≤N/2-1
y(n)=x1(n)+jx2(n),0≤n≤N/2-1
利用CFFT算法,对y(n)做N/2点的FFT,得到Y(k)。
利用实序列的共轭对称性,可以由Y(k)算出x1(n)的DFT结果X1(k)和x2(n)的DFT结果X2(k):
根据时域抽取-基2-FFT算法的原理,由X1(k)和X2(k)进行一级蝶形运算,可以算出X(k’):
X(0)=X1(0)+X2(0)
其中,为旋转因子。
X(N-k)实际上不需要计算,只需要分析前1~N/2点频谱就可以得到动态参数。
RFFT算法深度是N/2,相比N点CFFT,减少了1级的蝶形运算,并且节省了约一半的存储资源。
FFT中不同的旋转因子个数与运算的点数N有关,在现有技术中,通常采用查表法实现不同的旋转因子,即将正余弦的值直接存储在固定的ROM中,由角度控制模块控制ROM地址进行读取,这种方法的缺点是,存储资源消耗很大,并且运算点数N越大(不同的旋转因子越多),存储消耗越多。
为此,在本发明实施例中,为了弥补查表法的缺点,由角度产生器根据地址产生单元记录的采样值存储的读写地址产生不同的角度,然后由正余弦值计算器实现正余弦的运算,所述正余弦值计算器可以由专用CORDIC电路实现。CORDIC是一种逼近算法,需要一定的计算迭代时间,但是可以节省比较大的硬件存储空间。由于在BIST技术中,比较敏感的是附加的测试电路大小,因此本发明实施例选用CORDIC方法实现不同的旋转因子更有优势。
CORDIC算法的基本原理是矢量旋转以及旋转角度逼近,如图4所示:
初始向量(xi,yi)旋转角度αi之后得到向量(xi+1,yi+1),两个向量之间的坐标关系为:
xi+1=cosαi[xi-yitanαi]
yi+1=cosαi[yi+xitanαi]
上式被称为真旋转,伪旋转公式为:
xi+1=xi-yitanαi
yi+1=yi+xitanαi
令tanαi=2-i,每次旋转角度αi=tan-12-i,定义新参数z作为已旋转角度,伪旋转公式变为:
xi+1=xi-diyi2-i
yi+1=yi+dixi2-i
zi+1=zi+tan-1(2-i)
其中di=-1或1,表示旋转方向,由已旋转的角度z与目标角度α决定。
由上述公式可以看出:经过每一次旋转后,真旋转与伪旋转的差异为Ki,则m次旋转后真旋转与伪旋转的差异为Km:
1/Km=0.607252935008881
利用CORDIC可以实现正余弦,令x0=1,y0=0,z0=0,经过m次迭代后,
xm=cos(α),ym=sin(α)
CORDIC算法有一点需要注意,就是输入角度必须在[-pi/2,pi/2]这个区间以内,才能保证迭代算法收敛。因为每次迭代时应旋转的角度形成的数列之和收敛于pi/2,因此不管m取多大,最终所能得到的角度都不会超过[-pi/2,pi/2]。
进一步地,在本发明实施例中,蝶形运算器可以采用32位定点运算,并且动态调整定点小数位的精度,减少运算的复杂度。
在定点二进制数中,整数位数决定了表数范围(即固定位数的二进制数能表示的数值范围),小数位数决定了表数精度(即能够表示的数值精度),假设一个定点整数位为a,小数位为b,那么这个定点可以表示的最大的数为2a,最高精度为2-b。由于电路的表数位数固定为32,在不产生溢出的前提下,整数位越少,小数位数越多,表数精度越高,因此在本发明实施例中,蝶形运算器进一步可以在进行蝶形运算时采用动态调整小数位数的方法。
下面几个公式是基本的蝶形运算和旋转因子的计算公式,Xm(p)和Xm(q)是某一级蝶形运算的输入,Xm+1(p)和Xm+1(q)是下一级蝶形运算的输入。
其中,m代表第m级蝶形运算;p表示某一级参与蝶形运算的数据地址;q表示某一级参与蝶形运算的数据地址;N是进行FFT的数据点数,k由具体的蝶形运算流程决定,k可以等于0,1,2,4,8……N,是旋转因子。
将复数乘法变换为实数加法和实数乘法后,基本蝶形运算变换为:
根据RFFT算法,2N点实数序列x(n)要组成N点复数序列y(n)=x1(n)+jx2(n),再经过CFFT运算。假设CFFT第一级蝶形单元的输入为N点,并且全部为复数(1,1),那么按照上述的基本蝶形公式可以得到图5所示的FFT蝶形运算流程图,其中:
X2(0)_real=X1(0)_real+X1(1)_real*cos(0)+X1(1)_image*sin(0)=2
X2(0)_image=X1(0)_image-X1(1)_real*sin(0)+X1(1)_image*cos(0)=2
X2(1)_real=X1(0)_real-Xm(1)_real*cos(0)-X1(1)_image*sin(0)=0
X2(1)_image=X1(0)_image+X1(1)_real*sin(0)-X1(1)_image*cos(0)=0
……
由图5可以看出,每经过一级蝶形运算,数据实部和虚部的大小增加不会超过一倍,并且当经过第L级蝶形运算时,最大值为2L。
假设待测ADC输出的响应信号的采样为n比特数字码{dn-1,dn-1,dn-3,…,d0},存储到外部RAM中的采样值为{0,0,dn-1,dn-2,dn-3…d0,…0,0,0},规定该定点最高位是符号位,小数位数是30位,则表数范围是(-2~+2),当ADC的数字码全部都为1时,这个定点表示的输入会稍小于1,记为(1-,1-),那么经过第L级蝶形运算后,输出数据实部和虚部的最大值为2L-,不会超过经过动态调整后(每经过一个流水级,整数位增加1位)的表数范围(-2L+1~2L +1)。
如果ADC的数字码不全部为1,根据帕塞瓦尔定理,一个信号在时域内计算总功率等于在频域内计算的总功率,公式表示如下:
其中x(n)为时域的序列,X(k)是x(n)经过N点FFT变换后的频域序列。
从时域来看,数字码全部为1时信号的总功率大于数字码不全部为1时信号总功率,即:
根据帕塞瓦尔定理,从频域所看到的,2N点数字码全部为1时信号的总功率(等于2N,N为FFT点数)大于数字码不全部为1时信号总功率,因此有:
|X(k)|2=(X(k)_r)2+(X(k)_i)2,
(X(k)_r)2<2N2,(X(k)_i)2<2N2,
因此,当数字码不全部为1时,N点FFT输出数据实部和虚部的大小不会超过2N。由于经过第L级蝶形运算时,相当于做一个子FFT,子FFT的点数N=2L,因此上面这个结论相当于经过第L级蝶形运算,数据实部和虚部的大小不会超过2L+1。
由此可见,每经过一级蝶形运算,数值至多增大一倍,因此可以相应地增加一位整数位(表数范围增大一倍),减少一位小数位。相比整个运算流程,32位定点保持相同的小数位数,动态控制的方法精度更高,并且不需要花费较多的运算操作。
第三阶段:参数计算。
根据第二阶段得到的频谱信号X(i),第三阶段需要搜索信号频率位置以及各次谐波频率位置,并且将频谱信号X(i)平方后得到功率谱PowerSpectrum(i)。参照图3,具体地,由频谱功率计算单元从外部RAM中获取所述频谱信号数据,计算各数据点对应的频谱功率;同时,位置记录单元记录各数据的读取地址,也就是说,记录这些离散的数据点的位置关系。频率搜索单元根据所述频谱功率及各频谱信号数据的读取地址的读取地址,即可确定该频谱信号X(i)的基频及各次谐波,具体地,首先确定最大频谱功率对应的数据点的位置即为基频位置,然后基于该基频位置,搜索各次谐波频率的位置。
FFT的频谱区间为0~Fs/2,各次谐波的频率等于基频的整数倍,根据奈奎斯特采样定理,超过采样频率一半(Fs/2)的谐波将混叠到0~Fs/2频率区间,因此可以在0~Fs/2区间内搜索到各次谐波位置。
图6示出了频谱混叠效应,其中,A中位于奈奎斯特1区频率范围内信号频率为Fa的信号,会在奈奎斯特2区频率范围内产生一个镜像信号I1,该镜像信号的幅值大小与基频信号一样,而且其频率等于Fs-Fa;而在奈奎斯特3区频率范围里,也会存在一个与原信号幅值大小相同的信号I2,其频率等于Fs+Fa;奇数和偶数奈奎斯特频率区之间的混叠信号是镜像关系,奇数与奇数或者偶数与偶数之间的混叠信号关系是频率相差Fs倍关系。B与A类似,只是信号频率出现在奈奎斯特2区频率范围内。
此外,FFT有频率分辨率限制,当利用频谱功率最大值搜索到信号基频位置Fin(0~N/2之间的某个值)时,仅仅用整数倍去乘以该Fin,比如10次谐波频率对应10*Fin,然后再按混叠找到10次谐波在0~Fs/2区间内的位置,这样的方法搜索到的谐波位置是有误差的,还需要在第一次找到的谐波位置附近搜索局部最大值,这个最大值才能对应较真实的谐波位置。图7给出了采样频率为20MSPS,输入正弦信号7MHz时各次谐波在0~10MHz上的位置。
为此,在本发明实施例中,频率搜索单元可以采用下面的方法来搜索各次谐波频率的位置:在找到信号功率位置Fin_index(0<Fin_index<小于Fs/2)后,设谐波频率为Harmonic_i,初始化Harmonic_i=Fs_index,令Harmonic_i=Harmonic_i+Fs_index,则N次谐波功率可以由这个公式迭代得到。混叠的操作,假设是N点FFT,在32点带符号定点的情况下,只要取低1~log2(N)位的Harmonic_i,Harmonic_i的其余位都置为0。然后判断Harmonic_i是否大于N/2,如果大于N/2,则混叠的谐波位置Harmonic_i=N-Harmonic_i;如果Harmonic_i不大于N/2,则谐波位置就是Harmonic_i。然后在Harmonic_i±5的范围内搜索局部最大值,得到校正后的谐波位置。
在确定了信号的基频位置及各次谐波位置后,由动态参数计算单元计算出信号功率Ps、各次谐波功率Ph_i、直流功率Pdc(频率0附近),进而计算出噪声功率Pn(噪声功率Pn等于总功率减去信号功率)、总谐波功率。最后经过除法运算以及log10(x)运算,得到单位为dB格式的各种动态参数:信噪比(SNR)、无杂散动态范围(SFDR)、总谐波失真比(THD)、信号噪声失真比(SNDR)、有效位数(ENOB)等。
需要说明的是,在实际应用中,动态参数计算单元每计算得到一个测试参数,即可将其写入外部RAM中或写入其它相应寄存器中。这样,通过读取外部RAM或其它相应寄存器中的值,即可得到相应的测试参数。
如图3所示,当完成了所有参数的计算之后,控制模块11产生一个结束信号(End),说明所有的参数已经准备就绪,可以读取。
由此可见,本发明提供的片上***中ADC内建自测试电路,可以不依赖于片上DSP,实现对片上ADC的BIST。而且,该电路还具有以下优点:
(1)可以根据ADC精度的要求,动态地调整算法流程以及相应的存储即可满足要求,而不需要对电路进行修改。
(2)采用RFFT算法,降低了对存储资源的消耗。
通过复用2*Sample_Number(Sample_Number为采样个数)深度、32位宽的RAM,就能完成RFFT算法。由于FFT是复数运算,一个数值需要分为实部和虚部分别存储,对于Sample_Number/2点CFFT,前一级蝶形运算需要Sample_Number深度的存储,后一级蝶形运算也需要Sample_Number深度的存储,乒乓操作重复利用2*Sample_Number深度就可以实现RFFT。电路只采用1个2*Sample_Number深度的RAM,通过控制寻址方式来实现乒乓操作。本发明实施例只限定了需要的最小存储,具体实施时RAM也可以比最小存储空间大。
(3)利用CORDIC算法生成旋转因子角度,相比查表方式,可以进一步节省存储资源。
(4)进一步地,在进行蝶形运算时,采用32位定点运算,并且动态调整小数位的精度,有效地降低了运算复杂度。
进一步地,本发明的电路还可复用于SoC内多个ADC的测试,如图8所示,通过一个多路复用器(Mux)81,本发明电路80可以同时搭载多个ADC进行串行测试,进一步减少了面积开销,降低测试成本,且对于不同的ADC的测试,可以复用SoC内已有的RAM,有效减小面积开销。
相应地,本发明还提供一种片上***中ADC测试方法,如图9所示,是该方法的流程图,包括以下步骤:
步骤901,在待测ADC施加激励信号后输出的响应信号达到稳定后,对所述响应信号进行采样并对采样值进行地址逆序存储;
步骤902,对存储的采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据;
步骤903,根据所述响应信号的频谱信号数据计算所述响应信号的动态参数。
需要说明的是,所述激励信号可以是正弦信号,而且用于产生所述激励信号的电路可以设置在所述片上***中,或者独立于所述片上***之外,对此本发明实施例不做限定。
对所述响应信号进行采样的采样点数Sample_Number>=π2n,n为待测ADC的输出位数。对存储的采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据的过程如下:
1)依次提取存储的采样值实序列中的值,得到当前值;
2)产生对应所述当前值的旋转因子角度;
3)利用所述旋转因子角度计算旋转因子正余弦值;
4)对所述当前值及其对应的旋转因子正余弦值进行蝶形运算,得到所述响应信号的频谱信号数据。
进一步地,进行蝶形运算时,可以采用32位定点运算,并且动态调整定点小数位的精度,可以有效降低运算复杂度。
在根据所述响应信号的频谱信号数据计算所述响应信号的动态参数时,首先根据所述频谱信号数据计算频谱功率,根据所述频谱功率确定所述响应信号的基频及各次谐波频率位置;然后根据所述频谱信号的基频及各次谐波计算所述响应信号的动态参数,所述动态参数包括:信噪比(SNR)、无杂散动态范围(SFDR)、总谐波失真比(THD)、信号噪声失真比(SNDR)、有效位数(ENOB)等。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及装置;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种片上***中ADC内建自测试电路,其特征在于,包括:控制模块、信号处理模块、测试模块;
所述控制模块,用于在待测ADC施加激励信号后输出的响应信号达到稳定后,触发所述信号处理模块和所述测试模块开始工作;
所述信号处理模块,用于对所述响应信号进行采样,对采样得到的采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据;
所述测试模块,用于根据所述响应信号的频谱信号数据计算所述响应信号的动态参数;
所述信号处理模块包括:
采样单元,用于对所述响应信号进行采样,并将采样值逆序存储到外部RAM;
地址产生单元,用于记录所述采样值存储的读写地址;
FFT单元,用于根据所述地址产生单元记录的读写地址,从所述外部RAM中提取采样值实序列,对所述采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据,并将所述频谱信号数据存储到外部RAM中;
第一控制单元,用于控制所述采样单元、地址产生单元、以及FFT单元的工作;
所述FFT单元包括:
角度产生器,用于根据所述地址产生单元记录的采样值存储的读写地址产生旋转因子角度;
正余弦值计算器,用于利用所述旋转因子角度计算旋转因子正余弦值;
蝶形运算器,用于依次提取外部RAM中存储的采样值实序列中的值,对提取的当前值及所述旋转因子正余弦值进行蝶形运算,得到所述响应信号的频谱信号数据,并将所述频谱信号数据存储到外部RAM中。
2.根据权利要求1所述的电路,其特征在于,所述蝶形运算器进行蝶形运算时,采用32位定点运算,并且动态调整定点小数位的精度。
3.根据权利要求1所述的电路,其特征在于,所述测试模块包括:
频谱功率计算单元,用于从外部RAM中获取所述频谱信号数据,计算频谱功率;
位置记录单元,用于记录所述频谱信号数据的读取地址;
频率搜索单元,用于根据所述频谱功率及各频谱信号数据的读取地址,确定所述响应信号的频谱信号的基频及各次谐波频率的位置;
动态参数计算单元,用于根据所述频谱信号的基频及各次谐波计算所述响应信号的动态参数;
第二控制单元,用于控制所述频谱功率计算单元、位置记录单元、频率搜索单元、以及动态参数计算单元的工作。
4.根据权利要求3所述的电路,其特征在于,
所述动态参数计算单元,具体用于计算信噪比、无杂散动态范围、总谐波失真比、信号噪声失真比、有效位数。
5.根据权利要求1至4任一项所述的电路,其特征在于,还包括:
与所述控制模块相连的延时模块,由所述激励信号或所述待测ADC输出的响应信号触发,向所述控制模块输出开始信号;
所述控制模块在接收到所述开始信号后,触发所述信号处理模块和所述测试模块开始工作。
6.根据权利要求5所述的电路,其特征在于,还包括:
激励产生电路,用于产生所述激励信号;所述激励产生电路设置在所述片上***中,或者独立于所述片上***之外。
7.一种片上***中ADC测试方法,其特征在于,包括:
在待测ADC施加激励信号后输出的响应信号达到稳定后,对所述响应信号进行采样并对采样值进行地址逆序存储;
对存储的采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据;
根据所述响应信号的频谱信号数据计算所述响应信号的动态参数;
对所述响应信号进行采样的采样点数Sample_Number>=π2n,n为待测ADC的输出位数;
所述对存储的采样值实序列进行FFT变换,得到所述响应信号的频谱信号数据包括:
依次提取存储的采样值实序列中的值,得到当前值;
产生对应所述当前值的旋转因子角度;
利用所述旋转因子角度计算旋转因子正余弦值;
对所述当前值及其对应的旋转因子正余弦值进行蝶形运算,得到所述响应信号的频谱信号数据。
8.根据权利要求7所述的方法,其特征在于,进行蝶形运算时,采用32位定点运算,并且动态调整定点小数位的精度。
9.根据权利要求7所述的方法,其特征在于,所述根据所述响应信号的频谱信号数据计算所述响应信号的动态参数包括:
根据所述频谱信号数据计算频谱功率;
根据所述频谱功率确定所述响应信号的基频及各次谐波频率位置;
根据所述频谱信号的基频及各次谐波计算所述响应信号的动态参数。
10.根据权利要求7至9任一项所述的方法,其特征在于,所述激励信号为正弦信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610065972.8A CN105680859B (zh) | 2016-01-29 | 2016-01-29 | 片上***中adc内建自测试电路及测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610065972.8A CN105680859B (zh) | 2016-01-29 | 2016-01-29 | 片上***中adc内建自测试电路及测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105680859A CN105680859A (zh) | 2016-06-15 |
CN105680859B true CN105680859B (zh) | 2018-09-11 |
Family
ID=56303116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610065972.8A Active CN105680859B (zh) | 2016-01-29 | 2016-01-29 | 片上***中adc内建自测试电路及测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105680859B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107544020B (zh) * | 2016-06-29 | 2021-02-05 | 恩智浦美国有限公司 | 用于∑-△调制器的内建自测试电路 |
CN106199309B (zh) * | 2016-07-06 | 2019-01-18 | 南京国电南自电网自动化有限公司 | 一种用于adc采样数据的回路自检电路及方法 |
US9780803B1 (en) * | 2016-09-15 | 2017-10-03 | Stmicroelectronics International N.V. | Apparatus for built-in self-test (BIST) of a Nyquist rate analog-to-digital converter (ADC) circuit |
CN106936434B (zh) * | 2017-03-13 | 2020-10-30 | 中国电子科技集团公司第二十四研究所 | 基于fft提取的码密度高阶谐波校正*** |
CN108768394B (zh) * | 2017-12-28 | 2022-01-11 | 北京时代民芯科技有限公司 | 一种数模混合微***adc单元动态参数测试*** |
CN111314167B (zh) * | 2020-01-15 | 2021-10-22 | 桂林电子科技大学 | 片上网络中基于超立方体拓扑结构的测试规划***及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790916A (zh) * | 2004-11-04 | 2006-06-21 | 特克特朗尼克公司 | 使用滤波器乘积的线性校正器的校准***和方法 |
CN101330489A (zh) * | 2008-07-28 | 2008-12-24 | 中兴通讯股份有限公司 | 快速傅立叶变换/快速傅立叶反变换处理器及其处理方法 |
CN102868402A (zh) * | 2012-09-18 | 2013-01-09 | 上海航天测控通信研究所 | 一种测试模数转换器主要性能指标的测试方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463189B2 (en) * | 2007-07-31 | 2013-06-11 | Texas Instruments Incorporated | Predistortion calibration and built in self testing of a radio frequency power amplifier using subharmonic mixing |
US8803716B1 (en) * | 2013-04-10 | 2014-08-12 | Stmicroelectronics International N.V. | Memoryless sliding window histogram based BIST |
-
2016
- 2016-01-29 CN CN201610065972.8A patent/CN105680859B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790916A (zh) * | 2004-11-04 | 2006-06-21 | 特克特朗尼克公司 | 使用滤波器乘积的线性校正器的校准***和方法 |
CN101330489A (zh) * | 2008-07-28 | 2008-12-24 | 中兴通讯股份有限公司 | 快速傅立叶变换/快速傅立叶反变换处理器及其处理方法 |
CN102868402A (zh) * | 2012-09-18 | 2013-01-09 | 上海航天测控通信研究所 | 一种测试模数转换器主要性能指标的测试方法 |
Non-Patent Citations (2)
Title |
---|
基于边界扫描的内建自测试技术及其应用;谢天助;《中国优秀硕士学位论文全文数据库》;20050831;第3页第2段 * |
数据采集***的内建自测试技术研究;吴震霖;《中国优秀硕士学位论文全文数据库》;20150731;第36-50页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105680859A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105680859B (zh) | 片上***中adc内建自测试电路及测试方法 | |
Pereira et al. | An FFT-based method to evaluate and compensate gain and offset errors of interleaved ADC systems | |
US11489535B1 (en) | Analog-to-digital converter (ADC) testing | |
Liu et al. | Improved blind timing skew estimation based on spectrum sparsity and ApFFT in time-interleaved ADCs | |
CN109444515A (zh) | 一种基于sdft算法的无功、不平衡与谐波检测方法 | |
WO2023226117A1 (zh) | 一种集成电路模数转换芯片参数测试方法与测试*** | |
Pan et al. | Frequency response mismatch calibration in generalized time-interleaved systems | |
JPH0743402A (ja) | 時間変化信号の周波数を求める方法及び装置 | |
JP3257769B2 (ja) | Ad変換器の評価装置 | |
Ji et al. | Design of A High Performance Monobit DFT Based on FPGA and 1-Bit Samplers | |
Nunzi et al. | A procedure for highly reproducible measurements of ADC spectral parameters | |
Sudani et al. | A 2-FFT method for on-chip spectral testing without requiring coherency | |
JPH11259454A (ja) | フーリエ変換装置 | |
JP3257770B2 (ja) | Da変換器の評価装置 | |
CN104572578B (zh) | 用于显著改进微控制器中fft性能的新颖方法 | |
Duan et al. | SNR measurement based on linearity test for ADC BIST | |
JPH06181433A (ja) | アナログ−ディジタルコンバータのsn比測定方法 | |
Ting et al. | Histogram based testing strategy for ADC | |
Wu et al. | Efficient algorithm for multi-tone spectral test of ADCs without requiring coherent sampling | |
Raze et al. | Non coherent spectral analysis of ADC using FFT windows: An alternative approach | |
CN116165432A (zh) | 一种数字测频方法、***、存储介质和电子设备 | |
CN117110850A (zh) | 一种基于st2500测试机的mcu片上adc测试方法 | |
Dallet et al. | [ADC characterization in time domain] frequency estimation to linearize time-domain analysis of A/D converters | |
Mishra et al. | Determination of Nonlinearity and Effective Resolution of an A/D Converter for Arbitrary Application Input | |
CN1246892C (zh) | 用于测试嵌入式模拟/混合信号内核的方法和结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |