1. GTP/GTX收发器基础:SerDes原理、PMA/PCS架构、时钟架构与参考时钟选择
各位同学好,我是老李。做FPGA高速接口设计十几年了,今天咱们聊聊GTP/GTX收发器的基础。说实话,这玩意儿刚接触时我也觉得头大——一堆缩写、一堆寄存器、还有各种时钟约束。但搞明白了,你会发现它其实挺有章法的。
1.1 SerDes原理:串行化与解串行化
SerDes,全称Serializer/Deserializer。说白了,就是把并行数据转成串行发出去,收回来再转回并行。为什么要这么折腾?
你想想看,如果一根线上传8位数据,需要8根线。但用SerDes,一根差分对就够了。对于背板、光模块这些场景,少一根线就是省一大笔钱。
核心思想:用高速串行链路替代并行总线,降低引脚数、减少PCB布线压力、提高传输距离。
GTP/GTX的SerDes内部,发送端有个并转串的移位寄存器,接收端有个串转并的移位寄存器。时钟频率决定了数据率。比如GTP最高能跑到6.6Gbps,GTX能到12.5Gbps。我当年做的一个项目,用GTP跑5Gbps,结果眼图一直张不开,后来发现是参考时钟抖动太大——嗯,这个后面细说。
1.2 PMA/PCS架构:物理介质接入与物理编码子层
GTP/GTX收发器内部,分两大块:PMA和PCS。你可以把PMA理解成「纯模拟的物理层」,PCS是「数字逻辑的处理层」。
PMA层
- 发送端:Serializer(并转串)、TX Buffer、预加重/去加重电路
- 接收端:RX Buffer、CDR(时钟数据恢复)、De-serializer(串转并)
- 时钟:PLL(锁相环)产生高速时钟
PMA是纯模拟电路,你没法用Verilog去控制它内部细节。只能通过配置寄存器来调参数。比如预加重的强度、接收均衡的档位。我在项目中遇到过,一块板子在不同温度下眼图差异很大,就是靠调PMA的均衡参数搞定的。
PCS层
- 8B/10B编码:把8位数据编码成10位,保证直流平衡、提供时钟信息
- 弹性缓冲:处理两个时钟域之间的相位差
- 通道绑定:多通道对齐
- PRBS生成/校验:用于链路测试
PCS是数字逻辑,你可以用IP核的配置界面去选。比如用8B/10B还是64B/66B编码,要不要加CRC校验。我个人习惯,调试阶段先用8B/10B,因为它简单、好定位问题。
小提示:GTP只支持8B/10B编码,GTX支持8B/10B和64B/66B。如果你需要更高的编码效率(比如10G以上),选GTX的64B/66B。
1.3 时钟架构与参考时钟选择
时钟是高速收发器的命脉。时钟抖了,眼图就糊了。眼图糊了,误码率就上去了。误码率上去了,项目就黄了。
时钟架构
GTP/GTX的时钟架构,核心是PLL。PLL把参考时钟倍频到线速率。比如参考时钟125MHz,要跑5Gbps,倍频系数就是40。
收发器内部一般有两个PLL:
- CPLL(Channel PLL):每个通道独立,锁定时间快,但抖动性能一般
- QPLL(Quad PLL):四个通道共享,抖动性能好,适合高速率
我建议:速率低于6.6Gbps用CPLL,高于6.6Gbps用QPLL。当然,具体还要看你的参考时钟质量。
参考时钟选择
参考时钟的选择,直接决定了收发器能不能稳定工作。我见过太多人在这上面栽跟头。
| 参数 | 要求 | 说明 |
|---|---|---|
| 频率 | 根据线速率和PLL倍频系数确定 | 常用:125MHz、156.25MHz、100MHz |
| 抖动 | RMS抖动 < 1ps(典型值) | 抖动大了,CDR锁不住,误码率飙升 |
| 精度 | ±50ppm以内 | 晶振或温补晶振(TCXO) |
| 电平 | LVDS、LVPECL、HCSL | 差分信号抗干扰能力强 |
注意:千万不要用FPGA内部PLL产生的时钟作为GTP/GTX的参考时钟!内部PLL的抖动太大,会导致收发器无法正常工作。我曾经有个同事图省事,直接从内部PLL引了个时钟给GTP,结果眼图完全闭合,查了两天才发现是参考时钟的问题。
1.4 实际设计中的避坑指南
做高速收发器设计,有几个坑是新人最容易踩的:
- 参考时钟布线:参考时钟要走专用时钟引脚,不要走普通IO。否则抖动会恶化。
- 电源去耦:GTP/GTX的模拟电源(MGTAVCC、MGTAVTT)必须做好去耦,每个引脚放一个0.1uF电容,靠近引脚放置。
- PCB阻抗控制:差分对阻抗100Ω,单端50Ω。走线长度匹配,误差不超过5mil。
- AC耦合电容:GTP/GTX的收发链路必须加AC耦合电容,典型值0.1uF。我见过有人忘了加,结果直流偏置不对,信号直接畸变。
经验之谈:调试GTP/GTX时,先用IBERT(集成误码率测试)核跑一下。它能帮你快速判断硬件链路有没有问题。如果IBERT都跑不过,那肯定是硬件问题,别急着调逻辑。
好了,这一章的内容就到这里。SerDes原理、PMA/PCS架构、时钟架构,这三块是GTP/GTX的基础。搞懂了这些,后面配置IP核、写控制逻辑就会顺手很多。
可可精品资料库