1. 这块卡到底在解决什么问题:从系统架构看FMC子卡的定位
如果你做过几年高速数据采集或者软件无线电相关的开发,应该会对这样一个场景特别熟悉:系统方案讨论会上,算法工程师拿出了一个需求,要求ADC至少16位、采样率要上G,DA要能跑到2.5GSPS,还得同时支持收发。你打开选型手册翻了半天,发现单看ADC和DAC芯片都不算难找,难的是把这两个东西放在同一个系统里,还要保证同步、可控、不互相干扰。
这种时候,一块基于FMC标准接口的子卡往往就是最省心的答案。我手上这块2通道1GSPS 16位ADC加2通道2.5GSPS 16位DA输出的FMC子卡,从规格上看就是典型的收发一体板卡。它把模拟前端、数据转换、时钟分配、电源管理全部集成在一块标准尺寸的FMC板卡上,用户只需要准备一块带FMC接口的FPGA载体板,插上去就能获得完整的双收双发能力。
先说清楚FMC(FPGA Mezzanine Card)标准的意义。它规定了子卡和载板之间的电气接口、物理尺寸、引脚定义,这种标准化最大的好处就是平台复用。今天你用A厂商的FPGA开发板做验证,明天换B厂商的板卡做量产,只要都是FMC接口,子卡可以原封不动地搬过去。对于做原型验证或者小批量设备的团队来说,这意味着硬件设计风险被大幅压缩——模拟前端和数据转换这部分最难调的部分直接模块化,FPGA工程师只需要关注逻辑侧。
这套板卡的具体定位,按我自己的理解,它非常适合三类场景。第一类是软件无线电平台,宽频段信号的接收和发射同时需要高速ADC和DAC,16位的分辨率在处理OFDM这类对信噪比敏感的波形时有明显优势。第二类是雷达信号模拟器,这种设备需要一个高性能发射通道产生复杂波形,同时用接收通道回采验证,2.5GSPS的DA输出配合1GSPS的ADC回采,基本覆盖了常见的雷达基带信号范围。第三类是高速示波器或通用测试仪器前端,这类应用对采样率、分辨率、通道一致性要求都很高,1GSPS采样配合DDR(双倍数据速率)模式还能再翻一倍等效采样率。
不过我要提醒一句,高规格芯片堆出来的板卡,性能能不能发挥出来,很大程度上取决于配套的FPGA逻辑设计和整个信号链路。很多用户拿到板卡之后发现实测性能不如数据手册漂亮,问题往往出在参考时钟质量、JESD204B接口配置或者电源纹波这些细节上,后面我会逐个展开。
2. 16位1GSPS的ADC通道:技术指标背后的真实约束
2.1 分辨率与采样率的权衡逻辑
ADC选型时,16位和1GSPS这两个参数放到一起,本身就是一种高难度的组合。你可能听说过一句话:高速ADC的设计,本质上是在分辨率、采样率和功耗三者之间找平衡点。流水线架构(Pipelined ADC)是目前1GSPS级别ADC的主流选择,它把转换过程拆成多级流水,每一级只负责粗量化一部分,最后拼出完整结果,这才能在保持高吞吐的同时留出足够的量化精度。
16位分辨率对应的量化电平数是65536个,这个数字在实际系统中的意义是什么?以满量程2Vpp为例,1个LSB对应的电压幅度大约是30.5微伏。ADC输入端任何一点噪声,只要超过这个幅度,就会直接影响最低几位的数据有效性。所以你如果打算在这块卡前面加一级放大器做信号调理,放大器的噪声系数和带宽参数必须和ADC的输入幅度范围匹配好,否则放大器的噪声底会直接把ADC的动态范围吃掉好几个dB。
在实测中我更关心的指标其实是ENOB(有效位数)。数据手册上写的16位是理论分辨率,实际因为热噪声、时钟抖动、非线性等因素,有效位数通常会打折。1GSPS采样率的ADC,输入信号频率在几百MHz的时候,ENOB能做到12到13位已经属于相当好的水平。这一点在项目方案论证阶段就要和算法团队打通——他们期望的"16位精度"和实际系统能提供的"16位分辨率但有噪底限制",这两者之间需要有个明确的预期管理。
2.2 采样时钟是整个信号链的节拍器
高速ADC的采样时钟质量直接决定信噪比上限,这一点再怎么强调都不过分。时钟抖动(Jitter)和相位噪声会通过采样过程调制到信号上,表现为输出频谱的本底抬升和杂散。经验公式来看,对于1GHz采样率的ADC,若要维持16位分辨率所对应的信噪比,采样时钟的随机抖动建议控制在几百飞秒以内,这已经是个相当苛刻的要求了。
这块FMC子卡在时钟设计上的处理,我认为是值得借鉴的。板载时钟源通过专用的时钟分配芯片给两片ADC和两片DAC提供同源的采样时钟,这种"单一主钟+扇出缓冲"的结构比每个芯片各自用一个晶振的方式好得多,因为通道间的采样时刻一致性是相对可控的。多通道系统最怕的就是各芯片之间采样时钟有固定相位差,这会导致通道间的数据延迟不一致,后续做数字校正时得多做一层麻烦事。
使用外部参考时钟时,建议从FMC接口或者板的SMA接口注入一个低相噪的参考源,通常10MHz到100MHz都可以,板上锁相环会倍频到所需的采样频率。如果你的系统中有GPS驯钟或者铷钟这类更高精度的时基,从这里输入可以让整个系统的绝对时间精度更好。我见过一些用户在测试时随手接一个普通信号发生器输出的时钟,结果频谱里冒出一堆不该有的杂散,排查到最后才发现是时钟源本身不干净——这在高速采集系统里属于高频翻车现场。
2.3 ADC输入链路和前端设计的关键细节
ADC前端的模拟输入怎么处理,直接关系到板卡能适应什么样的信号。这块卡的ADC输入采用变压器耦合的方式做单端转差分,带宽覆盖直流耦合不友好的高频场景。变压器方案的好处是插损低、噪声贡献小,天然的带通特性把很多低频干扰挡在外面,特别适合IF(中频)采样和射频直采架构。代价是不能测直流信号——变压器过不了直流分量,所以测方波的低电平保持特性或者0Hz附近的信号,这卡无能为力。
宽频带输入也意味着抗混叠滤波的压力给到了外部。1GSPS采样率对应的奈奎斯特带宽是500MHz,任何高于500MHz的输入信号都会折叠回带内形成假信号。虽然ADC芯片内部有简单的抗混叠电路,但滚降特性有限,真正靠得住的还是输入端的滤波器设计。如果你打算直接采集射频信号,前面加一个合适的带通滤波器是必需的,否则你会看到带外强信号把带内弱信号完全淹没的尴尬局面。
16位ADC对前端阻抗匹配的敏感度远超你的想象。PCB上走线的特征阻抗偏差、SMA连接器的质量、甚至焊盘尺寸导致的容性不连续,都会在几百MHz频段引起反射,反射叠加到信号上表现为纹波和相位失真。这也是为什么这类板卡的前端电路做得如此紧凑——尽可能缩短无源器件到ADC输入引脚的距离,减少一切可能的反射点。
3. JESD204B接口和数据链路:FPGA侧的硬仗
3.1 从并行LVDS到高速串行:接口演进的原因
把16位1GSPS的ADC数据读进FPGA,直接面临一个算术问题:单通道数据速率16bit乘以1G就是16Gbps,还只是单通道。如果每个通道用传统的并行LVDS接口,即使每组线传输1Gbps,也需要16对差分线;两个通道就是32对线,再加上DAC侧的输出数据线、控制线,FMC接口的引脚很快就不够用了。
所以这块子卡毫无悬念地用上了JESD204B高速串行接口。这是高速数据转换器和逻辑器件之间的事实标准协议,多条高速收发器lane(通道)承载串行数据流,单条lane的速率动辄10Gbps以上。协议里还定义了多芯片同步(SYSREF信号)和多lane对齐机制,这套机制保证了你同时读取两个通道的数据时,它们严格对应同一个采样时刻。
FPGA侧做JESD204B接口的时候,最常遇到的就是链路训练失败。你可能看到过这样的现象:配置完寄存器,状态机一直卡在code group sync那一步,或者链路偶尔同步成功但运行几分钟后误码率飙升。排查这类问题的思路通常按顺序来:先确认时钟参考是否正确——JESD204B需要device clock和SYSREF之间的相位关系满足建立保持时间;再看lane的极性有没有接反;最后用PRBS测试模式单独验证物理层完整性。很多时候问题根源就是一条lane的连接器引脚虚焊或者PCB走线阻抗不连续,用误码仪功能能很快定位出来。
3.2 数据吞吐量规划和实时处理架构
我从工程规划的角度给大家算一笔账。ADC部分,双通道16位1GSPS就是32Gbps的数据产生速率;DAC部分也不甘示弱,双通道16位2.5GSPS就是80Gbps的消耗速率。这样量级的数据流显然不可能完全在FPGA内部做存储和处理,必须依赖DDR4或者DDR5存储颗粒做缓存,或者通过高速串行接口把数据搬运到上位机。
设计阶段先搞清楚你的应用属于哪一类。如果是采集一段波形然后离线分析,那需要的缓存深度取决于波形长度——比如持续采集10毫秒的双通道数据,需要40MB的缓存空间,DDR4颗粒很轻松就能满足。如果是实时信号处理,比如软件无线电里的DDC(数字下变频)或者FFT运算,那就要把JESD204B解出来的数据流直接接到FPGA的DSP运算链路上,这时候DDR只用来存参数或者抽帧存储,而不是做全速率的中间缓冲。
这块卡在FPGA侧的占板面积和引脚分配是按Xilinx和Intel主流高端FPGA的收发器数量规划的,12路甚至16路高速收发器几乎全部被JESD204B接口占用,剩下的普通IO用来做控制管理。选型载板时要注意,别拿一个只有4路收发器的低端FPGA板去跑这套子卡,接口带宽根本不够,成了典型的"小马拉大车"。
3.3 确定性延迟与多通道同步
很多雷达和阵列信号处理系统最关心的指标其实不是采样率,而是通道间的同步精度。JESD204B的子类1(Subclass 1)设计专门解决这个问题——通过SYSREF信号对齐所有器件的本地多帧时钟,确保不同通道的数据在采样时刻上有确定性的相位关系。
这块卡从硬件设计上已经做了不少松绑:ADC和DAC共享同一个时钟树,SYSREF用等长走线分别送到各芯片,确保到达时间偏差在皮秒量级。FPGA侧的责任则是维护好JESD204B链路的确定性延迟——每次上电或复位之后,链路的延迟可能发生一个固定偏移,需要通过协议里的延迟补偿机制把不同通道的延迟拉齐。这个工作依靠ILA(Inspect Logic Analyzer,即FPGA内部逻辑分析仪)抓数据对比就能验证,测试方法很简单:给所有通道灌同一个测试信号,看两个通道采回的数据是否在同一个采样点。
我做过的项目里,同步精度做到几个皮秒以内是常见结果,前提是FPGA逻辑里所有通道的处理路径保持对称,不要在其中一个通道的数据路径上加额外的FIFO或时钟域转换逻辑,另一路却不存在对应的延迟。这种不对称在调试初期不明显,到了系统联调的时候特别让人头疼。
4. 2.5GSPS的DAC输出:高速信号发生背后的技术与实务
4.1 从数字码流到模拟波形的转换过程
DAC的工作是ADC的逆过程,但它也有自己的一套麻烦。2.5GSPS的16位DAC,从接口上同样是JESD204B输入,FPGA侧把需要输出的波形数据持续不断地送进来。内部架构上,这类高速DAC普遍采用电流舵(Current Steering)结构,利用电流源阵列根据数字码字控制流入负载的电流总量来生成模拟电平。
有一个细节很多初次接触的人会忽略:DAC的更新率虽然高达2.5GSPS,但它输出的原始信号频谱不仅包含期望的信号频率,还会在每个更新频率的整数倍处产生镜像频率。举个例子,如果要输出一个100MHz的正弦波,因为采样点数足够多,奈奎斯特带宽内看起来比较干净,但1.1GHz、2.1GHz这些位置会周期性出现镜像信号的能量。DAC内部通常集成了某种程度的重构滤波功能,有些芯片支持可选的低通响应模式,但完全靠内部滤波器压镜像往往不够,外部额外加一个低通滤波器才是稳妥做法。
4.2 输出信号链:从DAC引脚到SMA连接器
DAC输出级的电路设计决定了最终信号的纯净度。这块子卡的DA输出同样采用差分转单端的变压器方式,和ADC侧形成对称的模拟架构。DAC的满量程输出电流典型值我印象中是20mA左右,经过变压器和匹配电阻转换成电压信号后,从SMA口出去的标准输出幅度大约在4Vpp上下浮动,具体数值取决于板上的电阻配置,使用前最好看一下随卡附带的硬件手册。
输出端有一个常被吐槽但确实必要的设计——防浪涌保护电路。高速DAC芯片本身比较娇贵,如果不小心把外部信号反灌进输出端,很容易损坏内部输出级。板卡设计者在SMA端口后面放置了保护器件,代价是带宽和输出平坦度受到轻微影响。如果你的系统对平坦度要求极高,一定要先在频响上做一次全面标定,把插入损耗和反射特性记录在案,后续数据处理时把这个传递函数补偿掉。
4.3 FPGA到DAC的波形产生策略
从FPGA侧生成波形送到DAC,有两个架构层面的选择:直接数字频率合成(DDS)和波形回放(AWG模式)。DDS适合产生连续波形的场景,比如单音正弦、扫频信号或者调制信号——FPGA里放一个相位累加器,每时钟周期更新相位,查表输出正弦值到DAC。这种方式频率分辨率极高,频率切换也是瞬时的,非常适合雷达信号模拟器里的线性调频信号生成。
波形回放模式则更灵活:预先算好一段任意波形,存储在DDR里,按设定好的触发条件从DDR搬数据到DAC。这种模式的好处是波形不受算法模型限制,但也带来了数据搬运的工程复杂度——DDR到DAC的数据通路需要持续的带宽和低延迟的流控机制。FPGA里通常用一个DMA循环队列搞定,让波形数据像流水一样源源不断地送达DAC,同时要考虑波形参数更新时的无缝切换。
我建议项目初期先用DDS模式跑起来验证链路,把DAC的接口时序、数据通路和频谱纯度问题解决,再上波形回放模式。因为DDS模式下数据结构简单,调试定位问题的范围小,DAC本身如果有问题很快能暴露出来,不会和更复杂的数据搬运问题混在一起,排查效率会高得多。
5. 上电实测:调试步骤和那些容易踩进去的坑
5.1 到手之后的验证步骤建议
我拿到这类板卡之后,不急着连一堆仪器上去跑满规格,而是先按一个排序验证的流程走一遍,每个环节确认没问题再进下一步。
第一步是电源和基础通信测试。上电之前先拿万用表测各电源轨的对地阻抗,排除焊接短路这种低级问题。上电之后确认所有电源电压正常,电流没有异常偏大,然后通过I2C或者SPI总线读取板载EEPROM和各个转换芯片的ID寄存器——能正确读到ID,说明通信链路和芯片供电都没大事了。
第二步是ADC自检模式测试。大多数高速ADC芯片内置测试模式,可以产生固定图案的输出数据,FPGA侧只要配置好JESD204B链路,接收端检查收到的数据是否和预期图案一致。这一步通过了,说明从ADC芯片到FPGA的整个串行链路物理层和协议层都是通的。
第三步做模拟信号测试。用一个高质量信号源给ADC输入一个干净的单音正弦波,频谱分析仪挂在DAC输出端或者直接在FPGA里做FFT处理,检查输出频谱里的SNR、SFDR和杂散。这里我特别提醒:测试用的信号源和线缆质量一定要好,不然连信号源自身的谐波都被算到板卡头上了,你测得的数据会误导整个评估结论。
5.2 实测中的问题案例:从噪声底异常到时钟配置
分享一个我自己调试中的真实经历。有一块板卡ADC测试时,频谱总是比理论值高好几个dB——也不是有大杂散,就是整个噪声底抬高了。检查前端信号链没问题,线缆也没问题,最后用示波器观察采样时钟波形,发现边沿有明显的振铃现象。原因是时钟分配芯片的LVDS输出端端接电阻配置不太合理,反射叠加在时钟边沿上,等效于给采样时钟增加了抖动。
处理方式是调整端接阻值,让时钟信号的边沿变得干净利落。更换之后频谱本底立刻降了下去,ENOB恢复到了正常水平。这类问题在原理图设计阶段很难预料到,因为仿真的精度到不了这种地步,必须靠实测来发现。当然这也说明板卡本身预留了调整手段——如果能改电阻就改电阻,不能改就得回到FPGA侧用延迟调整去补救,但那是下策。
还有一个多通道同步的问题也值得一提。两个ADC通道都出数据,看起来都正常,但用一个信号同时灌两个通道做对比时,发现两个通道的相位差明显不是固定值。查到最后是SYSREF信号的走线长度在连接器处有轻微差异,导致两片ADC的本地多帧时钟对齐界面对不上。硬件上重新飞线处理之后,两通道的采样延迟就稳定在同一拍内。这种问题最好在板卡设计阶段就通过等长约束解决掉,调试阶段处理起来的成本要高得多。
5.3 与FPGA载板的协同设计和散热问题
高端FPGA载板和高性能FMC子卡组合工作的时候,散热往往是最后一个被认真对待的问题。1GSPS的ADC和2.5GSPS的DAC自身功耗都不低,FPGA跑满资源时功耗更是惊人,一旦把子卡紧贴在载板上,热量很容易在狭小空间里积聚。如果散热片和风道设计得不够充分,结温一高,ADC和DAC的温度漂移特性就会显现,直接影响增益和偏移的稳定性。
我的建议是,如果系统需要长时间连续工作,最好对板卡表面关键芯片的温度做个记录,连续跑几组高负载测试,确认温升在可接受范围内再做长时间拷机。短时间测试性能达标不算数,一个小时之后的指标漂移才是真实水平。很多产品的可靠性问题就是在这个环节暴露出来的。
另外,子卡的电源如果直接从载板的FMC接口取电,要特别注意载板的供电能力。FMC接口的最大供电电流有限制,如果子卡功耗较大,最好使用板卡上的辅助供电接口额外接线。这块子卡的典型功耗大概在20到30W量级,只靠FMC标准供电是很勉强的,所以我一般建议供电设计上一定要留足裕量。
6. 板卡参数到系统方案:几个常见的应用构型参考
6.1 软件无线电平台的典型配置
把这块子卡放进SDR平台,最典型的架构是FPGA加高性能ADC/DAC的直采直发方案。ADC直接采集射频信号,省掉了模拟下变频的繁琐链路,DAC直接产生射频信号,系统可以做很宽的瞬时带宽。16位分辨率在接收灵敏度方面比12位方案有明显优势,特别是在接收微弱信号的场景里,可以少用或者不用前置低噪声放大器就能达到足够的动态范围。
一个值得注意的工程点是,这种构型里FPGA的DSP资源往往变成了系统性能瓶颈。ADC和DAC只是数据的搬运工,真正决定系统处理能力上限的是FPGA内部的DDC、DUC、滤波、解调模块占用资源的情况。我建议在做逻辑设计时,认真估算资源占用率,尤其是乘法器DSP48和BRAM的使用量,如果这两个接近满载,后续加功能会很痛苦。
6.2 宽带信号采集和记录系统
把ADC当作高速数据记录仪的前端是这块卡的另一个常见用法。双通道1GSPS采样、16位分辨率意味着每秒能产生4GB数据,即使压缩之后能降到1GB每秒,长时间连续记录对存储系统也是巨大的压力。工程上常用的做法是用多块NVMe硬盘组阵列,再加上FPGA侧的实时抽点和压缩算法,把有效数据率降到后端能承受的范围。
这类系统里数据完整性和流控是核心难点。PCIe或者万兆网的数据传输链路一旦出现拥塞,FPGA里的FIFO溢出就会丢数据。做好反压机制、设定好触发和预触发逻辑,比追求峰值带宽更现实。我见过一些项目为了"尽可能多采",把FIFO开得很大,结果反而导致延迟变大、控制更复杂。按实际业务需求,算清楚需要连续记录多长时间、间歇停顿多久,反而能简化设计。
6.3 收发一体系统的自校准方案
ADC和DAC在同一块板卡上,还有一个特别实用的玩法——闭环自校准。把DAC输出的信号通过一根跳线或者内部回路引到ADC输入端,FPGA就能执行系统级的端到端校准:发送已知特性的测试信号,接收并分析实际响应,算出幅度和相位的校正系数,再补偿到数据处理路径里。
这种方案在通信系统里几乎成了标配。发射链路和接收链路的幅相一致性会随温度和频率变化,实时校准能显著提升系统稳定性。实际执行时要注意校准信号的电平控制,不能让DAC输出满幅信号直灌ADC输入,超出ADC的线性范围之后校准结果反而更差。合理设置校准信号幅度为ADC满量程的一半到三分之一,再配合合适的处理算法,标定出来的系数可信度会好很多。
7. 时钟树和电源设计:模拟性能的隐形地基
7.1 时钟树架构对系统性能的全局影响
一块高速混合信号板卡的所有性能几乎都建立在时钟和电源的地基上,这一点我会反复跟团队强调。这块子卡的时钟树结构大概是:外部参考钟或板载晶振进入锁相环,倍频出ADC和DAC所需的采样时钟,再通过时钟缓冲器扇出多路到各芯片。每一级的相位噪声和抖动都会累积,最终体现在转换器的信噪比指标上。
锁相环的环路带宽设置很关键。带宽越窄,对参考源的高频噪声抑制越好,但锁定时间变长、对参考源低频漂移更敏感;带宽宽了锁定快,但参考源的近端噪声更容易传递过去。不同工作频率和不同应用场景所需要的环路带宽不一样,所以这块卡的锁相环参数应该是可以通过软件配置的——没有配置入口的板卡反而让人不放心。
我建议用户在设计系统时,如果真的在意性能,请给板卡提供一个干净的参考时钟,别图省事直接用FPGA开发板上的普通时钟。实测下来,参考时钟的相位噪声每改善10dB,ADC在几百MHz输入信号下的SNR大致能提升1到2dB。这种隐形的收益不需要花大价钱换更好的ADC芯片,往往被人忽略。
7.2 电源噪声如何渗透进模拟信号
高速转换芯片普遍对电源噪声极其敏感,尤其是模拟电源引脚。DAC输出一个满幅正弦波时,电源上的纹波会直接调制到输出信号上,表现为频谱里的杂散。ADC侧,电源噪声则通过采样保持电路的参考电压影响量化精度。常见的处理手段是每一路电源都用独立的低压差线性稳压器,把开关电源的纹波隔离开。
这块子卡在电源设计上应该采用了多级滤波策略,模拟电源和数字电源分区布局,中间用地平面和磁珠隔离。用户端也要注意,如果你是载板供电给子卡,载板的电源品质会直接影响子卡的性能。我看到过的情况里,最典型的就是FPGA核心电压突变导致地弹噪声,然后通过FMC连接器的地引脚干扰了子卡的模拟地,最终表现就是ADC输出频谱里出现频率相关的小杂散。把数字部分和模拟部分的电源地处理成单点接地或者用磁珠隔开,问题往往能迎刃而解。
8. 从板卡到产品的几个现实问题:校准、软件和生态
8.1 出厂校准和用户级校准
高速转换器两端的绝对精度其实很难做好。ADC的增益误差和偏移误差在出厂时可能有百分之几的偏差,DAC的输出幅度也会因为温度变化产生漂移。这块板卡出厂时应该会做过一轮校准,把误差修正系数存在EEPROM里,上电时由FPGA或者上位机读取并加载。但问题在于,这种出厂校准只代表出厂时的状态,温度漂移和时间老化会带来新的误差。
对性能有严格要求的应用,用户侧需要做定期校准。方法不外乎两种:一种是用精密的参考源做外校准,比如用校准级的信号发生器给ADC输入已知信号,反推增益和偏移修正;另一种是设计内校准回路,利用板上的DAC输出已知电平给ADC测量,形成闭环。前者精度高但麻烦,后者方便但精度受限于DAC本身的精度。工程上常常结合使用,DAC校准定标、ADC用外部源校准、系统联调时互相验证。
8.2 软件栈和FPGA参考设计的重要性
说到底,板卡只是硬件的一半,另一半是配套的逻辑和软件。这块卡如果提供了完整的FPGA参考工程,包括JESD204B接口IP的例化、寄存器配置驱动、数据通路demo,那上手难度会降低不少。最怕的就是只有寄存器手册没有参考代码,JESD204B这类协议从零开始调,一个月时间很快就搭进去了。
建议在采购或者选型阶段就跟厂商确认好参考设计的版本和配套FPGA工具链兼容性。我遇到的真实情况是,厂商的参考设计支持某种特定版本的Vivado或者Quartus,你因为项目需要用了更新的版本,结果IP核版本不兼容,得手工改不少地方。这类"移植成本"很容易被低估,但往往在实际项目中集中爆发。
8.3 长期供货和可维护性
最后说一点可能看起来比较远的问题,但做过产品的人都知道它有多重要:元器件生命周期。高性能ADC和DAC这类芯片,一旦选定,在整个产品生命周期里尽量不要换型号。可问题是高速数据转换芯片的更新换代很快,某款型号可能三五年就停产或者进入不推荐用于新设计的状态。选型的时候查清楚芯片的生命周期状态,和厂商确认长期供货计划,这个步骤省不了。
FMC接口的一个隐性好处在这里就体现出来了——即便芯片更新换代,只要新板卡保持同样的FMC接口定义和JESD204B协议版本,用户的FPGA逻辑大部分可以复用,只是寄存器配置和时序参数上要做一些调整。这种兼容性对于维护周期长的设备来说,价值非常大。