在最高速ADC模拟信号链设计中印刷电路板(PCB)布局布线需 要考虑许多选项,有些选项比其它选项更重要有些选项 则取决于应用。最终的***各不相同但在所有情況下, 设计工程师都应尽量消除最佳做法的误差而不要过分计 较布局布线的每一个细节。今天为各位推荐的这篇文章将从裸露焊盘开始,依次讲述去耦和层电容、层耦合、分离接地四部分讲述
裸露焊盘(EPAD)有时会被忽视,但它对充分发挥信号链的 性能以及器件充汾散热非常重要
裸露焊盘,ADI公司称之为引脚0是目前大多数器件下方 的焊盘。它是一个重要的连接芯片的所有内部接地都是通过咜连接到器件下方的中心点。不知您是否注意到目 前许多转换器和放大器中缺少接地引脚,原因就在于裸露 焊盘
关键是将此引脚妥善固定(即焊接)至PCB,实现牢靠的电 气和热连接如果此连接不牢固,就会发生混乱换言 之,设计可能无效
利用裸露焊盘实现朂佳电气和热连接有三个步骤
第一、在可能的情况下,应在各PCB层上复制裸露焊盘这样做 的目的是为了与所有接地和接地层形成密集嘚热连接,从 而快速散热此步骤与高功耗器件及具有高通道数的应用 相关。在电气方面这将为所有接地层提供良好的等电位 连接。
甚至可以在底层复制裸露焊盘它可以用作去耦散 热接地点和***底侧散热器的地方。
第二、将裸露焊盘分割成多个相同的部分洳同棋盘。在 打开的裸露焊盘上使用丝网交叉格栅或使用阻焊层。此 步骤可以确保器件与PCB之间的稳固连接在回流焊组装 过程中,无法決定焊膏如何流动并最终连接器件与PCB 连接可能存在,但分布不均可能只得到一个连接,并且 连接很小或者更糟糕,位于拐角处将裸露焊盘分割为 较小的部分可以确保各个区域都有一个连接点,实现更牢 靠、均匀连接的裸露焊盘
第三、应当确保各部分都有过孔連接到地。各区域通常都 很大足以放置多个过孔。组装之前务必用焊膏或环氧 树脂填充每个过孔,这一步非常重要可以确保裸露焊盤 焊膏不会回流到这些过孔空洞中,影响正确连接
有时工程师会忽略使用去耦的目的,仅仅在电路板上分散 大小不同的许多电容使较低阻抗电源连接到地。但问题 依旧:需要多少电容许多相关文献表明,必须使用大小 不同的许多电容来降低功率传输系统(PDS)的阻忼但这 并不完全正确。相反仅需选择正确大小和正确种类的电 容就能降低PDS阻抗。
一些布局不可避免地具有重叠电路层有些情况 丅,可能是敏感模拟层(例如电源、接地或信号)下方的 一层是高噪声数字层。
这常常被忽略因为高噪声层是在另一层——在敏感的模 拟层下方。然而一个简单的实验就可以证明事实并非如 此。以某一层面为例在任一层注入信号。接着连接另一 层将该相邻层茭叉耦合至频谱分析仪。
模拟信号链设计人员最常提出的问题是:使用ADC时是否 应将接地层分为AGND和DGND接地层简单回答是:视 情况而定。 詳细回答则是:通常不分离为什么不呢?因为在大多数 情况下盲目分离接地层只会增加返回路径的电感,它所 带来的坏处大于好处
大家好我是今天做分享的任彦楠,非常荣幸能和大家交流今天我分享的内容是within我的knowledge, 也希望将我不懂的地方向大家请教。
今天我要和大家分享的是最高速ADCADC/DAC的测试方法~
ADC主偠的测试指标分为静态指标和动态指标两类:静态指标包括INL、DNL;动态指标,主要是基于SFDR在此基础之上计算的ENOB(有效位数)。尽量言简意赅吧
ADC的测试方法,其实简单来说就是输入和输出,输入怎么给输出怎么测?怎么计算以及换算到spec。输入主要是两部分:数据和clk大家知道ADC的数据和clk都用什么给信号吗?
听众答:ADC的数据是指输入的模拟信号吗
任老师:哈哈,是的信号发生器;然而对于ADC,尤其是高精度的ADC最关键的是信号源的选择,这里需要的是高精度的信号源也就是说信号源的动态范围要高于被测ADC两个精度位以上,这是关键の一第二,就是信号源和clk的同步
接着,我们来看输出ADC输出的是digital信号,也就是说输出采样到的是数字信号但是ADC的动态参数表示都是基于频谱分析的方法。也就是说要将输出、采样到的数字信号用FFT变换到频域这就是大家看到ADC的测试程序为什么主函数是FFT 函数的原因。我記得我们当时实验室测得10bit以上ADC,都至少是1024点
听众问:或者转到频域,频率精度到什么精度才合适
任老师:实测的时候,你有时会发現FFT点数选的少,测试结果会好不知大家有没有碰到过这种情况?嗯但其实这是一种假象。你想10bit ADC输出的全位分辨率就是1024如果没有采箌1024个点,说明丢失了部分数据不能真实反映ADC的性能。所以大家测试的时候不能追求偶尔测到一个好的spec, 而应该重点关注自己的测试方法囷计算方法,是否真实反映了芯片的性能
刚刚讲了动态指标,静态指标就相对容易用高阶的数字万用表,不是手持的那种哦是专业嘚可编程的6位半的万用表,把输出全部采下来使用简单公式就可以计算出INL和DNL,这个就不会用错动态指标SFDR和ENOB会由于FFT取样点数的变化而变囮;但INL和DNL算出来什么就是什么,没有数字转换的问题数据频率是ADC可以接受的最大输入信号的频率,比方说100M;而时钟频率是采样率比方說1GS/s。我们在学校的时候可能觉得测到一个好的spec发个paper就好了;但是工作之后就不一样了。芯片到底怎么样你心里能没点底数么?我用一張图总结一下最基础的ADC尤其特指并口ADC的测试基础方法;后面我们再谈串口ADC。
听众问:6位半万用表测ADC应该是DAC吧?
任老师:是ADC哦ADC输出的digital, 鼡万用表可以测到;DAC输出的是analog,是连续的模拟信号,直接用频谱仪就可以看了看这张图,其实动态指标全部都是用逻辑分析仪采集刚才說INL和DNL大家如果觉得逻辑分析仪复杂的话,用万用表也可以完成但是动态指标就必须得用逻辑分析仪采集了。哦漏了一点,信号源和ADC的輸入之间要接带通滤波器,把频点选出来
Times问:用逻辑分析仪抓出来的数据,放到MATLAB里分析以前adi有MATLAB例程。
任老师:Times 对!专业!所以大家測试ADC的时候有一个必须的投入,就是得多买几个质量好的滚降系数高的带通滤波器带通滤波器推荐大家用那个 mini circuits, 上次分享的李玮韬,是峩的闺蜜她在我们实验室的时候,我们老师给她出钱买了好多好用的带通滤波器嘿嘿。因为整个信号通路上如果信号源质量特别好,特别纯净;ADC的能力也很好但是带通滤波器滤不净,引入杂波就得不偿失了。
大家好刚才我发的那个最后一张图片大概就是最上面嘚一个总结。这个是典型的一个并口就是并口的ADC,因为如果少的话慢的话我们传统都是采用并口输出码,那接下来呢我会讲一点串ロ。因为群里如果有AD的大神就知道现在公司里面做的。最高速ADC的ADC用的都是串口并口已经是一种,就是比较早一点的技术
串口就是这樣子的哈。JESD204B是SerDes的接口规范
听众问:以12位ad为例,即便输入稳定电平噪声本身可能就会引起低2位的跳动,如何能够用万用表测到准确的INL DNL呢
任老师:大家现在看到ADI做出来的新的2GS/s以上的ADC/DAC都是这种接口的了,很高级~~我换算一下啊6位半的万用表就是可以测到小数点之后6位半。如果10bit ADC, 输入1V最小格是1/1024,那4位半的万用表就够了
听众问:lsb,并不是绝对值
任老师:哦~~ 那你说的噪声是来源于哪里呢?电源AD本身,还是输叺源哈哈,那等一下我们再讨论这个哈
SerDes的信号,大家看到和并口主要的区别是在发送端和接收端上的并串/串并转换、8b/10b编码差分驱动幾个模块.虽然大家设计的时候在这几个部分都要花很大的精力,可是在测试的时侯就变成了一个黑盒子,主要考虑的还是如何把输入信號给进去、时钟怎么同步、怎么把输出信号采集出来三大问题了
关于Serdes测试的时候,和并口测试的不同大家看这张ppt ~好在Serdes的测试方法现在吔都是十分成熟的了,主要的ADC设计公司用的方法大致相同
听众问:感觉其中时钟PLL是个关键环节。你们keysight出一个支持204B的接口的逻辑分析仪选件就好了对测试工程师来说看到的就是被测数据。
任老师:你说的对Serdes和刚才的并口测试相比,输入信号没变还是用高纯度的信号源,高纯度、单频点源就是ADC输入的唯一需求,一旦拥有别无所求,差别在于输出部分其实就是支持204B的接口的逻辑分析仪 .被大家猜中了結局。
听众问:204b接口的adc测试时可不可以用带最高速ADC口的FPGA
任老师:可以的~~只要接口匹配,精度足够就可以~~采样率够,和时钟可以同步伱们自己设计的FPGA板吗?测多少bit的ADC
听众问:ADC数字输出的?
任老师:万用表是测DAC给输入。没有测ADC的FPGA 和逻辑分析仪的道理一样的,都是数據采集板
任老师:就是我记得我们实验室以前用FPGA 的时候,一直没搞定时钟同步
最近忙于硕士毕业设计和论攵没有太多时间编写博客,现总结下之前在某个项目中用到的一个最高速ADCADC接口设计部分ADC这一器件经常用于无线通信、传感、测试测量等领域。目前数字系统对最高速ADC数据采集的需求与日俱增本文使用了米联客的一款速率较高的AD/DA模块ADQ9481来阐述利用FPGA设计最高速ADCADC接口的技术要點。
二、ADC硬件特性分析
首先必须通过datasheet分析其核心参数、接口定义和时序要求ADC9481的采样率为250MSPS,精度8bit其原理结构图如下:
CLK+-:差分时鍾输入,信号频率为250MHz
VIN+-:模拟信号输入范围是1Vpp
VREF:电压参考输入/输出,这里使用内部固定参考电压模式
SENSE:参考模式选择
D7A~D0A:通道A数字信号输出
DCO+-:数字差分时钟输出信号频率为125MHz
S1:数据格式选择,该接口电压决定数格式时原码还是补码
PDWN:低功耗选通
接下来看看接口时序:
很容易看出A和B两个数字输出通道是交替输出的通道A在DCO+上升沿输出,B在DCO-上升沿输出DCO+-的频率仅是采样率250MHz的┅半,也就是降低了对数字系统处理速率的要求
根据上述时序关系可知,FPGA端需要在DCO+上升沿采集通道B数据在DCO-上升沿采集通道A数据。并且甴于在DCO+-同一变化沿时刻通道A为前一个数据,因此要注意数据的采集顺序这类数据采集的普遍做法是将数据存入到RAM中,然后利用本地时鍾同步具体方法是:按照两通道的数据顺序对数据进行拼接,之后缓存到异步FIFO中本地PLL生成的125MHz时钟作为读侧和后续处理时钟信号。这里僦要利用Xilinx FPGA的“原语”中的IBUFDS+BUFG依次是差分输入缓冲器和全局缓冲器。前者可将差分信号转变为单端信号后者则可让时钟信号到达FPGA内部逻辑引脚的时延和抖动最小。综上ADC接口硬件架构如图:
根据前文所述的硬件架构,ADC接口HDL代码如下:
上述代码是之前做ADC采集信号频谱分析的部分代码因此adc_interface模块中每触发一次则连续采集一帧数据长度,鼡于FFT运算用户可以根据项目需求自行改动。顶层模块中则例化IBUFDS+BUFG原语以及后续的自定义处理模块。
行为仿真是FPGA开发中必不可少的重要環节通过充分测试可节省很多调试时间,这里仅给出板级调试结果信号发生器产生三角波,利用ILA抓取芯片内部实时数据并以模拟形式显示:
由于在接口模块中将两通道输入拼接为一个数据,这里拆分后观察数据数值可见拼接后数据波形呈现三角波形状,且幅值增大过程中高字节较大幅值降低过程中高字节较小,说明数据拼接顺序无误高字节为当前节拍后一个采样数据。两路输出数据最高位為0证明输出数据格式是自然二进制数。
若想细致地观察数据的模拟形状可以通过灵活的TCL脚本将ILA抓取数据导出,并在MATLAB中查看TCL命令為:
-forcewave。键入该命令后指定路径下会产生CSV文件。如让信号发生器产生频率为1MHz峰峰值是1Vpp,偏移幅值是0.7V的正弦波导出ILA抓取数据,并在MATLAB中绘淛曲线如图:
整体来看还是比较简单的后边如有机会接触采样率更高的ADC芯片,会总结基于Select I/O IP Core的LVDS接口设计