欢迎光临
我们一直在努力

无线芯片 ADC 电路自动测试平台的设计与实现

无线芯片 ADC 电路自动测试平台的设计与实现

徐建忠,罗学金

摘要:集成电路(IC,Integrated Circuit)作为信息产业的基础和核心,设计,测试与制造是其不可分割的几个方面。在通信领域内,模数转换器(Analog to Digital Converter, ADC)作为从模拟调制到数字基带的最后一级电路,分析和验证其性能是保证整个芯片性能的重要手段。提出一种片内 ADC 电路自动测试平台的设计方法,并成功应用到某款无线连接芯片 ADC 测试中,促进了该芯片的量产。

关键词:集成电路测试;ADC;FPGA;Matlab

中图分类号:TN407  文章编号:1674-2583(2018)07-0056-04

DOI:10.19339/j.issn.1674-2583.2018.07.015

中文引用格式:徐建忠,罗学金.无线芯片ADC电路自动测试平台的设计与实现[J].集成电路应用, 2018, 35(07): 56-59.

Design and Application of an Automatic Test Platform for the ADC Circuits of Wireless Chip

XU Jianzhong, LUO Xuejin

Abstract:  IC (Integrated Circuit), as the foundation and core of information industry, has integral parts in design, testing and manufacturing. In the field of communication, Analog to Digital Converter (ADC) is the last stage circuit from analog to digital. It is an important means to analyze and verify its performance as a guarantee of the performance of the whole chip. A design method of automatic test platform for ADC in chip is proposed, and it has been successfully applied to the ADC test of a certain wireless connectivity chip, which promotes the mass production of the chip.

Key words: integrated circuit testing, ADC, FPGA, Matlab

1  引言

集成电路(IC,Integrated Circuit),广泛应用于计算机、终端、卫星、雷达等各种电子设备中,是组成移动通信、互联网、物联网、卫星通信等系统的基石,是信息产业的基础和核心[1]。集成电路制造(设计、测试和封装)出来后,我们通常将它称为芯片。在无线通信领域,主芯片一般包含基带处理电路、发射电路和接收电路。接收电路又包含包括低噪放(LNA,Low Noise Amplifier)、混频器、滤波器等射频电路,模数转换器(ADC,Analog to Digital Converter)电路,以及数字基带(DBB,Digital BaseBand)电路,接收电路结构框图详见图 1 [2]。ADC 是接收电路的一个重要组成部分,通常实现从模拟调制信号到数字基带信号的转换。测试和分析 ADC 性能,从而发现缺陷或优化性能,对芯片研发量产起到保驾护航的作用[3]。

ADC 指标可分为静态指标和动态指标。静态指标描述 ADC 输入输出曲线符合设计规范的程度,主要有微分非线性(DNL,Differential nonlinearity), 积分非线性(INL,Integral nonlinearity),偏移(Offset)等;而动态指标描述 ADC 在动态工作过程中,由于时间的不确定和电路的非线性产生的各种误差程度,主要包括无杂散动态范围(SFDR,Spurious Free Dynamic Range)、总谐波失真(THD,Total Harmonic Distortion)、信噪比(SNR,Signal-Noise Ratio)、信纳比(SINAD)、有效位数(ENOB)等[4-6]。ADC 测试方法可分为两类:模拟法和数字法。前者是把 ADC 产生的数字信号通过 DAC 转换成模拟信号再进行传统方法测量,后者是把 ADC 产生的数字信号用 Matlab 软件或 DSP 等进行 FFT 变换,计算出 ADC 指标[7]。无线通信领域中,一般用频域来描述和分析信号,所以芯片 ADC 测试主要关注动态性能指标。ADC 动态性能测试的方法有很多,本文结合商用芯片研发实际需要,提出了一种无线芯片内部 ADC 电路自动测试平台的方法。

2  ADC 自动测试平台设计

当完成原理图和版图设计后,芯片送到晶圆厂进行制造(流片)。芯片完成制造后,必须对芯片进行测试,辨别芯片的功能和性能是否满足设计要求。研发芯片的相关测试可以分为三类:在片测试、键合测试和封装测试。芯片研发的初期,通常采用在片测试和键合测试,待性能基本满足要求后,再进行封装测试[1]。封装测试是指把芯片按一定形式(QFN、BGA、WLCSP、FC-PBGA 等)封装后,放置到设计好的封装测试板上,通过线缆连接电源和测试仪器,进行相关性能的测试[1,8]。根据应用领域的不同,分为研发实验室测试和 ATE 生产测试。两者都需要设计测试 PCB(Printed Circuit Board),把芯片,电源电路,接口电路,各种接插件等连接起来形成测试板。实验室测试板我们一般称为 EVB(Evaluation Board),而 ATE 测试板称为 Load Board。

本文讨论的 ADC 芯片自动测试平台主要针对研发实验室测试,用 Matlab 来控制芯片进入 ADC 工作状态并获取 ADC 数据和进行 FFT 计算,得到 ADC 的动态性能指标,并在某款无线芯片上进行验证。以下描述其硬件和软件实现方法。

2.1 测试平台硬件设计

ADC自动测试平台的硬件结构框图见图 2,由 EVB 测试板、FPGA 板、信号源 SMW200A、直流电源、计算机(PC,Personal Computer)、USB 转 GPIB 卡以及相关线缆组成。ADC 信号流向见图中橙色线条标记,SMW200A 信号源输出高精度的模拟 IQ 差分信号,供给 EVB 测试板的 ADC 测试 buffer,然后传输给芯片 ADC 输入,经 ADC 采样后生成的数据存储到片内 RAM,接着由片内数字电路把数据通过专用接口输出(物理上通过 PCB 走线和 B2B 连接器传输)给 FPGA 芯片,FPGA 芯片再把数据暂存到 FPGA 板上RAM 中,最后通过 FPGA 和 USB/FT2232 接口芯片的 FIFO 模式把数据存储到计算机 PC 文本文件中。

SMW200A 是全球电子测试与测量设备的领先制造商 R&S 的矢量信号发生器,可输出的 16 bit,160 M 信号带宽的模拟 IQ 差分信号,本实验测试 ISM  ADC 时, 由它输出 2.123 MHz,5.123 MHz 和10.123 MHz 的 Sine wave 信号。选用 SMW200A 搭建该测试平台,是因为它属于公司已有设备,不用新增采购成本。若采用其他设备,需保证精度和带宽能满足待测 ADC 测试要求。

EVB 测试板是根据待测芯片规格进行设计的,包含待测芯片,TCXO/DCXO,DCDC/LDO 供电电路,DAC/ADC buffer,RF Rx buffer 和 RF 匹配等外围电路,以及各种连接器(通过 B2B 连接器与 FPGA 板对接)。本文中,待测无线芯片为某款 3G 移动通信芯片(见图 2 灰色填充框图),其中集成了 WF/BT/GNSS/FM 等无线连接(Wireless Connectivity Network,WCN)收发电路, WCN电路的 ADC 有 ISM ADC,GNSS ADC,FM ADC,RSSI ADC。这些 ADC 均为差分输入,输出 10 bits 位宽的数据,其中 ISM ADC 最大可支持 120 MHz 采样。由于该芯片集成度高(功能多,尺寸小),管脚数量相对有限,为满足研发测试、量产测试,实际应用等不同场景,设计了各种工作模式来复用芯片管脚,分别有 Normal mode,function test mode,WCN RF Test mode,WCN DAC Test mode,WCN ADC test mode 等等。本测试平台使用其中的 WCN ADC test mode,来测试 WCN 的 ADC 电路性能,该模式可以旁路掉图 1 中的 RF 模块,改由 IQ 测试引脚直接灌入差分模拟 IQ 信号到片内相关 WCN ADC。同时,由于无线芯片低功耗要求,其 ADC 输入阻抗偏小,需要在芯片外面接 buffer 电路(放置在 EVB上),把 SMW200A 的差分 IQ 信号增强后供给芯片,本平台选用 ADA4950。

FPGA 板主要由 Altera EP4CE40 系列 FPGA 芯片,SRAM 芯片 IS61WVBLL,USB 接口芯片 FT2232H,TCXO/DCXO,DCDC/LDO 供电电路,以及各种连接器等组成。FPGA 芯片中可烧入verilog 硬件描述语言综合成的 jic 文件,而 SRAM 作为其外部存储空间,共同来实现相关电路设计功能,并与待测芯片搭建好硬件接口通路。

PC 用 USB 连接到 FPGA 板,通过 USB 接口芯片 FT2232H 来完成交互。本平台使用到 FT2232H 芯片的 MCU 模式和 FIFO 模式,前者主要用来访问FPGA 寄存器,从而实现对芯片工作模式和寄存器的设置,而后者主要用于从 FPGA  RAM 抓取数据到 PC 中。同时 PC 还需通过 USB 转 GPIB 卡或 PXI-GPIB 卡来控制直流电源和 SMW200A,以及通过编写 Matlab 测试代码来实现 ADC 的自动测试。

以上描述 ADC 测试平台的硬件设计,以下面对 Verilog 和 Matlab 两种代码设计进行阐述。

2.2 FPGA 代码设计

Verilog 代码编写风格与软件代码类似,但它不是真正的软件,语句之间没有先后关系,作为硬件描述语言,verilog 综合后的代码是硬件电路的实现说明,而不是运行程序[9]。本平台 FPGA 代码实现的功能见图 3,首先是对待测芯片进行 Test mode 模式控制(配置模式选择引脚的电平值),其次对芯片的 SPI/FDMA 寄存器进行读写,来控制芯片相关 ADC 电路工作和设定参数,最后是从芯片 RAM 中抓取 ADC 输出的数据存储到 FPGA 板上 RAM,并通过 USB 接口芯片的 FIFO 模式,把 FPGA RAM 数据传给 PC。 由于芯片内 ADC 数据是 10 bits,而 Chip RAM 每个存储空间为 32 bits,FPGA RAM 每个存储空间为 16 bit,USB 接口 FIFO 传输又是 8 bits,FPGA  需要对各处数据进行转换,确保数据正确。

各控制器的实现可以用基于计数器方法或者基于状态机方法实现。前者按控制器电路的时序要求,先用高频时钟计数,产生控制器时钟,再用控制器时钟、高频时钟和相关逻辑产生各控制信号,完成相应功能。后者先对控制器进行状态机建模,确认好状态框,判决框和条件框,得出状态机流程图,然后用verilog 代码实现[1]。

本实验的待测芯片,片内 RAM 数据输出为 ADC专用串行接口。若待测芯片相关接口发生变化,FPGA的 Verilog 代码需随之改变,包括模式控制器,SPI 控制器,ADC 控制器,DAC 控制器,FDMA 控制器,而变化最小甚至不变的控制器包括 RAM 控制器和 USB 接口控制器(FIFO 模式和 MCU 模式),因为这两个控制器实现的是 FPGA 板上硬件功能,而 FPGA 一般相对固定。

2.3 Matlab 代码设计

Matlab 代码是可运行在 PC 端的程序,主要作用是实现对芯片的控制,抓取 ADC 数据以及计算 ADC 动态性能,输出测试数据到 Excel 表格中,其软件系统架构见图 4。整个 ADC 自动测试软件,分为四大部分:待测芯片控制,仪器控制,抓取 ADC 数据和数值计算与输出。

(1)待测芯片控制模块负责写芯片 Test Mode,寄存器访问,触发 ADC  工作,并使 ADC 存储在芯片内部 RAM 的数据输出到 FPGA 板,FPGA 硬件获取数据后存储到 FPGA 板上 RAM 中。(2)抓取数据模块,把 FPGA 的 USB 接口和RAM 设置为 FIFO 模式,然后从该 RAM 中抓取数据到PC 的文本文件中。(3)数值计算与输出模块,从 PC 文本文件中获取数据,进行 FFT 运算,把 ADC 的动态性能指标SFDR,THD,SNR,SINAD,ENOB 等计算出来并输出到 Excel 文件。(4)仪器控制模块主要控制 EVB 板的上下电,测量电流,以及控制信号源 SMW200A 输出 ADC 需要的信号。

除数值计算与输出模块用 Matlab 库函数外,其他三个模块需要底下 L1 和 L2 两层驱动程序支持。把驱动分为两层,主要是为了偏于理解和维护。L1层的 FPGA 板 USB 驱动程序,我们通过 C/C++ 代码来调用 FT2232 接口的 API 函数,编译成 mexw32 文件,供 Matlab 调用。若想跟踪调试 mexw32 文件,可使用Visual studio 2010 开发环境与 Matlab 联调。对应的 L2 层驱动,用 Matlab 代码来编写,实现 FPGA RAM 访问和芯片电路的访问功能(RAM Driver 指 FPGA RAM驱动,SPI Driver,FDMA Driver,Mode Ctrl & Other Drivers 都是待测芯片电路的驱动)。而 L1 层 GPIB 卡驱动主要功能是把 SCPI 命令封装成 GPIBread 和 GPIB write 两个函数,其参数有仪器设备号,命令字,控制字。对应的 L2 层驱动,把常用仪器功能转换为不同的 case,再次封装成一个函数 ST_GPIB 以方便上层代码调用。

3  应用及 ADC 测试结果

ADC 自动测试平台的设计已在上文详细描述,其具体实现,就是把图 2、图 3 和图 4 所述内容变成硬件平台,FPGA 代码和 Matlab 代码。此平台首先在某款无线芯片 WCN ADC 测试上得到验证。其调试过程大体如下:FPGA 板返回后,待测芯片返回前,调通 FPGA USB 驱动、FPGA RAM 驱动、GPIB 仪器驱动等和编写或调试好其他软件;芯片返回后,先把它配置成 WCN ADC Test Mode,然后调通 SPI 和 FDMA 接口,接着使芯片内 ADC 正常工作,抓取芯片内 RAM 数据,最后用 Matlab 计算 ADC 动态性能。其中 ISM ADC 常温测试(I 路,10.123 MHz 信号,120M 采样)Matlab FFT 计算结果见图 5。

无线芯片 WCN ADC 有 ISM ADC,GNSS ADC,FM ADC,RSSI ADC 四个,我们把其中 ISM ADC 的数据列出,见表 1。

SNR = 6.02N + 1.76 dB (1)

ENOB = (SNR-1.79)/6.02 (2)

根据公式(1),N=10 为 ADC 位数,由它可算得 SNR 为 62 dB 的理论极限值,而设计仿真值为 55 dB 左右,实测值与之有 2 dB 左右差值,这是由于芯片内外噪声的存在,故可判为结果准确。同时,由于平台实现了自动化,可利用好休息时间获取测试数据,在工作时间进行调试分析,有利于缩短项目的研发周期。

4  结语

本文提出的 ADC 自动测试平台,综合来说有几个优点:FPGA 实现便于硬件接口的调整,可用于不同芯片的测试;具有 Matlab 数据处理的天生优势,能方便设计测试人员使用和分析;自动化特性能释放人力资源;通过应用验证,其测试结果准确,平台稳定可靠,完全满足 ADC 自动测试要求。当然,如果想追求更快的运行速度,可以考虑用 Labview 或其他高效代码,来替代现有 Matlab 程序的部分功能。

参考文献

[1] 李志群,王志功.射频集成电路与系统[M]. 北京:科学出版社,2008.

[2] Behzad Razavi.射频微电子=RF Microeldctronics,Second Edition[M].北京:电子工业出版社,2012.

[3] Behzad Razavi,陈贵灿.模拟CMOS集成电路设计[M].陕西:西安交通大学出版社, 2002.

[4] Awada E.A.,Akujuobi C.M.ADC testing algorithm for ENOB by wavelet transform using LabView measurements and MATLAB simulations[J].Journal of Engineering and Applied Sciences,2018,13(02):398-405.

[5] Kull L.,Luu D.Measurement of high-speed ADCs[C].Proceedings of the Custom Integrated Circuits Conference, 2017.

[6] 戴澜,姜岩峰,刘文楷.基于Matlab的高速高精度ADC测试研究[J].计算机测量与控制, 2010,18(09):2044-2045+2049.

[7] 骆丽娜,杨万全.高速ADC的性能参数与测试方法[J].实验科学与技术,2007(01):145-147.

[8] 毛忠宇,潘计划,袁正红.IC封装基础与工程设计[M].北京:电子工业出版社, 2014.

[9] M.Morris Mano,Michael D.,Ciletti,徐志军,尹廷辉.数字设计与Verilog实现[M]. 北京:电子工业出版社, 2015.

===========================

本刊为国家新闻出版广电总局首批认定的中国A类学术期刊,中国知网优先首发。中国知网、维普网、万方数据、CSCD数据库刊源收入。中国集成电路产业唯一国家核定的学术月刊。

邮局订阅:4-915

《集成电路应用》杂志

赞(80)
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址