基于NI VirtualBench和LabVIEW的ADC自动化测试
张曜 孟天奕 陈尚存 合肥工业大学集成电路设计与集成系统专业(安徽合肥230601)
摘要:伴随着通信系统对高频率、大带宽以及多通信模式的需求,模数转换器(Analog-to-DigitalConvertor,ADC)的设计正趋向于高速高精度发展,与此同时也给芯片测试带来了更大的挑战。本文基于NIVirtual Bench硬件平台,提出了一套自动化测试方案,该测试方案采用码密度直方图法和FFT频谱分析法实现ADC芯片的静态参数和动态参数的自动化测试。
*第二届全国大学生集成电路创新创业大赛NI杯全国特等奖张曜:合肥工业大学集成电路设计与集成系统专业;孟天奕:合肥工业大学集成电路设计与集成系统专业;通讯作者:陈尚存,合肥工业大学集成电路设计与集成系统专业。
模数转换器是通信系统的重要组成部分,对通信系统的发展有很重要的意义。近年来,通信系统对高速高精度ADC的要求慢慢的升高。当有效位数要求超过12位时即进入了高精度ADC的范畴,传统的测试方法已经非常困难适应要求。
National Instruments(NI)公司为芯片测试提供了完善的硬件和软件平台,基于NI公司的产品能极大地优化测试步骤,便捷地得到可靠的测试结果。本文中,我们提出了一种运用Virtual Bench进行ADC参数测试的自动化方法,不仅对ADC的静态参数和动态参数进行了详细地分析,而且实现了码密度直方图法和FFT频谱分析法在LabVIEW编程语言中的具体运用。相比于传统的手动测试,自动化测试实现了从激励产生输入到响应采集输出,以及计算出相应参数这一整一个流程的全自动化,极大地提高了测试速度和测试准确度,为优化ADC的测试提供了一种新的可能性。NIVB-8012是一款Virtual Bench多功能一体式仪器,它将具有协议分析功能的双通道100MHz混合信号示波器、任意波形发生器、数字万用表、可编程直流电源和数字I/O结合到单个设备中,Virtual Bench还与Python、LabVIEW等紧密结合,支持编程控制和自动化测试序列,从而能够轻轻松松实现自动化测试。
体现ADC性能的参数大致上可以分为静态参数和动态参数。静态参数体现了ADC电路在转换时间内输入信号保持不变的情况下的工作性能。动态参数体现了ADC电路在动态环境下的性能,因此其测试要求输入信号是时间的函数。所以与此对应的分别是ADC时域下的静态参数和频域下的动态参数。下面将对这两种参数进行说明。
静态参数描述的是器件的内在特性,和器件内部电路的误差相关。静态参数反映ADC的静态误差,即转换器量化直流信号时影响精度的误差。主要的静态参数有:微分非线性和积分非线)微分非线性(DifferentialNon-Linearity,DNL):ADC实际相邻数字码对应的模拟量差值与理想相邻数字码对应的模拟量差值(即1LSB)之差。
(2)积分非线性(IntegralNon-Linearity,INL):ADC的数字输出码对应的模拟值和实际的模拟输入值之间的差值
。通常我们比较关注的是微分非线性和积分非线性中的最大值,通过将其与LSB比较来判断ADC是不是达到所需精度。
ADC动态参数反映了ADC在高速工作条件下的性能,能够最终靠对输出频谱图进行计算分析得出。常用的动态性能参数有如下几种:
(1)信号噪声比(SignaltoNoiseRatio,SNR):简称信噪比,指ADC输出信号功率与量化噪声和电路噪声的总功率的比值。表达式如下:
(2)总谐波失真(TotalHarmonicDistortion,THD):输入信号与系统所有谐波的总功率比。表达式如下:
(3)信号与噪声失真比(SignaltoNoiseAndDistortion,SINAD):输入信号和所有输出信号失真功率(包括谐波成分,不包括直流)比。表达式如下:
(4)无杂散动态范围(Spurious-freeDynamicRange,SFDR):对系统失真进行量化,它是基本频率与杂波信号最大值的数量差。表达式如下:SFDR=6.02×N+1.76+10×log(OSR)其中N为有效位数,OSR为过采样率,计算公式为:OSR=fs/fB。
本文提出的ADC芯片自动化测试方案基于Virtual Bench系列中的VB-8012。对于Virtual Bench系列仪器,我们有两种办法实现其自动化测试:
(1)基于LabVIEW的自动化:构建自定义应用程序,以编程方式控制Virtual Bench,防止重复测量中出现人为失误,并减少测试时间。
(2)基于Python的自动化:使用Python为Virtual Bench的各种测量编写脚本,以验证和测试电子设备。
NI LabVIEW是仪器自动化行业最流行的系统模块设计软件。使用图形化开发环境,构建自定义的应用程序,通过编程控制NI Virtual Bench多功能一体化仪器,能够减少重复测量中的人为错误并节省测试所需时间。本文主要是运用LabVIEW来实现测试自动化。
实现测试的自动化,主要是依靠LabVIEW提供的设备驱动程序和仪器应用程序接口(API):设备驱动程序与计算机操作系统相配合,可在计算机和Virtual Bench之间建立起通信机制;仪器API是一组易于理解的高层函数,在LabVIEW中用于控制仪器并与仪器进行通信
。使用LabVIEW进行编程,通过初始化、配置仪器、执行操作、关闭设备和错误处理等步骤,获取VB-8012测得的数据,并进一步分析和处理测试数据,从而计算得出ADC的性能参数。以上测试过程,仅需编写好的LabVIEW程序来控制,实现了ADC的自动化测试。整个自动化检测系统的原理框图如图1。
码密度直方图测试主要是基于数理统计理论,待测ADC对模拟输入信号进行随机采样,不同数字码输出的出现次数为码密度。以ADC的输出数字码和相应的出现次数为坐标作图,所得的图形称为直方图。在直方图上,每个数字码称为码箱,每个数字码出现的次数为码箱宽度,即码密度。依据相应的码箱宽度就可以估计出ADC的静态参数
。在选定测试信号时为了尽最大可能避免边界值的影响,选择输入信号为略大于ADC量程的正弦信号。在输入信号频率选择上一定要满足相干采样原理,使得输入信号的频率与采样频率成互质关系从而符合统计的随机性。在满足上述条件后,可以近似认为ADC的采样是随机的,因此采样输出为随机样本,就可通过统计学原理来计算相关的静态参数
对于本文所需测试的12位ADC来说,要使DNL和INL的误差精度达到0.1LSB的最低置信水平为95%,所以要采样的样本数
得到总样本数后,本设计利用相应数字码的阶跃过渡电压差来得到实际电压,并利用计算公式得到失调电压:
本文中ADC转换的数字码在LabVIEW程序中以数组的方式存储,基于算法的要求本设计将数组中的数字码以十进制的形式表示出来,统计每一个码出现的次数即为相应码的码箱宽度,之后可根据公式计算出所有的静态参数。
统计码箱宽度是码密度直方图法中特别的重要的一环,具体程序如图2。先将十进制数组表示的所有输出码进行排序,得到按照输出码从小到大排列的有序数组。然后将该数组按照码的大小进行分离,把具有相同码值的元素分别组成新的数组,每一个新数组的元素个数即为不同码值的数字码所对应的码箱宽度。
对我们所搭建的LabVIEW程序框图做验证,得到运行结果如图3所示。
根据波形图不难发现DNL近似均匀分布于0的两边,而INL则表现出MSB处最大的特性,由此能够判断程序的输出结果正确,并且从具体数值来看ADC达到了相应的精度。
为了得到ADC的动态参数,在输入端施加正弦信号后,个人会使用VB-8012内的逻辑分析仪对ADC输出端的数据来进行采样,之后进行快速傅里叶变换(FFT)在频域上得到频谱图。
VB-8012获得采样数据并发送到上位机,在LabVIEW程序中调用VB-8012的混合信号示波器(MSO)数字通道VI,能够获得数据波形格式的采样数据,对数据来进行初步处理后调用频谱测量VI进行快速傅里叶变换,进而能够得到信号的功率谱。
,谐波信号分量PD,噪声功率PN,最大杂波分量功率PS,根据下面的公式[6]计算出相应动态参数:
为了验证该程序框图及算法的正确性,个人会使用加入了均匀白噪声的正弦波作为激励信号进行程序检验,计算得到的有效位数(ENOB)和其它参数均符合预期,输出的功率谱波形也正确体现了信号功率和噪声功率。对于功率谱分析必须要格外注意的是,必须正好采集整数个周期的输入信号,以实现相干采样防止频谱泄露,这反映到频域上就表现为谱线结束语
长期以来高速高性能的ADC主要是依靠国外进口。随着国内集成电路技术水平的不断的提高,很多ADC已完成了国产化,如何更加有效地实现ADC的测试是我们需要重视的问题。本文提供了一种利用NI Virtual Bench来实现ADC自动化测试的方案,并且给出了LabVIEW程序的部分框图,可供搭建ADC自动化检测系统时进行参考。
本文来源于中国科技期刊《电子科技类产品世界》2019年第1期第73页,欢迎您写论文时引用,并标注明确出处