最近在调一块国产FPGA的PCIe Gen5接口,眼图裕量总是差那么一点点,高速PCB板材已经用到M7级别了,再加retimer成本完全扛不住。想问问有经验的工程师,除了换板材和加retimer,还有哪些性价比高的调试手段?比如TX的预加重参数、RX的CTLE/DFE均衡系数,或者PCB走线的过孔背钻、走线等长这些,有没有什么实战中验证过有效的招?最好能讲讲具体怎么调。
2026年了,FPGA工程师做PCIe Gen5接口,眼图测试一直不过,除了换板材和加retimer还有哪些便宜实用的调试手段?
5 个回答

先别急着动板子,把TX的pre-shoot和de-emphasis按你芯片手册里的推荐值扫一遍,很多国产FPGA默认档位偏保守。另外检查一下RX端CTLE的增益档,Gen5对低频增益特别敏感,有时候把CTLE降一档、DFE多开两个tap,眼图余量能直接拉回来1-2dB。过孔背钻是最后手段,先看仿真里哪个过孔残桩超过10mil再说。

说实话,M7板材都上了还差一口气,问题大概率不在材料本身,而在你板子上的阻抗连续性和参考层完整性。个人经验,先拿TDR量一下整条链路的阻抗,重点看连接器、过孔换层和BGA出线区域,经常发现某段突然掉了5-8欧。这种地方用背钻把残桩打掉,或者把换层过孔改成GND via fence包一圈,改善比调均衡立竿见影。均衡参数呢,建议你先用芯片自带的link training自动协商结果做基准,再把TX的pre-cursor和post-cursor各往正负方向扫几个档,记录每个组合下BER的眼高眼宽,别光看示波器上的余量,要以BER 1e-12为准。还有个小众但实用的招:检查电源纹波,Gen5对电源噪声极其敏感,给收发器的模拟供电加个LC滤波或者换低ESR的LDO,有时候眼图抖动能降好几个ps。另外,如果PCB上还有别的走线在附近翻动,试试把PCIe lane和时钟线拉开,或者加一条地线隔离。最后提醒一句,背钻别一上来就全板做,先钻最长的几根lane对比测试,省钱的同事也验证效果。你现在的板子是几层板,参考层是不是完整铺铜?

重点说一个方向:走线等长和参考层。Gen5的差分对内skew要求在几个ps以内,很多人只盯着总长度,忽略了BGA区域和过孔处的长度补偿。建议把所有lane的时延用仿真工具量一遍,特别是靠近连接器那一段,如果发现某对线在换层处绕线补偿不够,直接在表层加一小段蛇形线,比调均衡便宜也稳。另外确认一下走线下方的地平面有没有被挖空,有些电源平面分割线正好穿过PCIe走线,这种情况调再多的CTLE都没用,一定得改层或者加缝合电容。你先查一下这两点,90%的差一口气都是这个原因。

其实你先把眼光从板材挪到参考层上吧。M7都上了还差一口气,很多时候是走线下方地平面被电源分割槽切断了,或者换层处过孔旁边没有跟地过孔。拿TDR扫一遍整条链路,重点看BGA出线、连接器和过孔换层这三段,经常能发现阻抗突然掉了5-8欧。这种地方补几个缝合地过孔、或者把残桩背钻掉,比调均衡参数管用得多。另外检查一下PCIe差分对旁边有没有平行走线在窜扰,Gen5对串扰特别敏感,有时候把相邻信号隔开0.5mm,眼图余量直接能上来。你先查这两个点,大概率能解决。

给你个偏门但实战有效的思路:别光盯着TX的pre-emphasis和RX的CTLE,先去看看电源纹波。Gen5的收发器对供电噪声极其敏感,尤其是模拟供电那一路。我遇到过一块板子,眼图怎么调都差0.5dB,最后拿示波器量了一下,发现1.8V供电上有20mV左右的开关噪声,频率正好落在信号频带附近。后来在LDO输出端加了个LC滤波,眼图余量直接拉回来1.5dB。你可以在芯片的模拟电源引脚附近加几颗100nF和1uF的电容组合,或者换低ESR的LDO试试。另外,如果板子上有别的数字逻辑在跑,确认一下有没有大电流翻转干扰到PCIe的供电。这一招成本几乎为零,但很多人会忽略。你先量一下供电纹波,如果低于10mV那再考虑调均衡参数。你目前用的国产FPGA具体是哪家的?不同厂家的均衡默认档位差异挺大的。
发表回答
登录后可在本页底部提交回答