GTY收发器硬件架构:PCS、PMA与收发通道
这一章,我们来聊聊GTY收发器的「内脏」。你想想看,一条高速信号从FPGA内部逻辑出发,到变成差分对飞出去,中间到底经历了什么?搞懂这个,后面配置IP核时,你就能明白每个参数到底是干嘛用的。
说白了,GTY收发器的核心架构可以分成两大块:PCS(物理编码子层) 和 PMA(物理介质接入子层)。再加上配套的收发通道,就构成了完整的数据通路。
一句话总结: PCS负责「数字逻辑处理」,PMA负责「模拟信号转换」。中间夹着时钟和状态机,把数据从内到外干干净净地送出去。
2.1 PCS子层:数字域的大脑
PCS是我个人觉得最「好玩」的部分。它不涉及复杂的模拟电路,全是数字逻辑。但别小看它——好多项目出问题,都是PCS配置没搞对。
PCS的核心功能包括:
- 编码/解码: 比如最常见的64B/66B、64B/67B编码。把用户数据变成适合高速传输的码流。
- 通道绑定: 多个低速通道绑成一个高速通道。我在40G以太网项目里,就遇到过绑定没对齐,数据全是乱码的情况。
- 时钟修正: 用弹性缓冲(Elastic Buffer)消除收发时钟之间的微小偏差。
- CRC校验: 检查数据在传输中有没有出错。
你看下面这个表,常见GTY支持的编码方式,心里先有个底:
| 编码方式 | 效率 | 典型应用 |
|---|---|---|
| 64B/66B | 96.97% | 10G/40G/100G以太网 |
| 64B/67B | 95.52% | Interlaken、自定义高速协议 |
| 8B/10B | 80% | PCIe Gen3及以下、SATA |
| 不做编码(Bypass) | 100% | 用户自定义协议、特殊数据格式 |
我的个人习惯: 除非你有特殊要求,否则强烈建议开启PCS的编码功能。裸数据直接扔给PMA,抗干扰能力只会更差。我曾经试过一次,眼图直接闭了。
2.2 PMA子层:模拟域的核心
PMA就是收发器里那部分「硬核」电路。它处理的是电流、电压、阻抗这些模拟量。
它的主要模块有:
- 串化器(Serializer): 把并行数据变成高速串行数据。比如,32位并行数据,通过它变成1位串行。
- 解串器(Deserializer): 反过来,把串行数据还原成并行。
- 时钟恢复(CDR): 从接收到的串行数据里提取出时钟信号。这对抖动和锁相环(PLL)要求非常高。
- 发送驱动器(TX Driver): 输出符合差分信号标准的电压摆幅和预加重。
- 接收均衡(RX EQ): 补偿信号在PCB走线上的高频损耗。
嗯,这里要注意。PMA的工作模式可以切换。你可以把它配成以PCS为主的标准模式,也可以直接旁路PCS,由用户逻辑直接控制PMA。后者灵活性极高,但也意味着你要自己处理编码和时钟恢复,难度一下子就上去了。
2.3 收发通道的对称结构
GTY收发器最漂亮的一点,是它的收发通道完全对称。一条TX通道配一条RX通道,各走各的路,互不干扰。
收发通道的通路大致如下:
- FPGA逻辑通过内部总线把数据写入发送FIFO。
- 数据进入PCS,完成编码、加扰、通道绑定。
- 经过弹性缓冲和时钟域交叉,进入PMA。
- PMA的串化器把数据变成串行比特流,通过SerDes差分对发射。
接收端则是完全逆过程:
- 差分信号进入PMA接收器,先做均衡和时钟恢复。
- 解串器把串行数据变回并行。
- PCS解码、去扰、CRC校验。
- 数据进入接收FIFO,最终被FPGA逻辑读取。
把这个流程画成图,你看起来会更直观:
避坑指南: 我曾经在一个40G以太网项目里,发现链路怎么都锁不住。排查了好久,最后发现是PCS的弹性缓冲深度设错了。时钟域的微小偏差没法消除,数据包就一直错位。从那以后,我养成习惯:只要锁相环输出频率和参考源有微小偏差(哪怕只有200ppm),弹性缓冲就必须开启。
2.4 常见陷阱与建议
架构听起来简单,实际用起来,陷阱可不少。我总结几个常见的,你在做设计时一定要留心:
- PCS和PMA的时钟必须匹配: 不可以给PCS配80MHz时钟,却让PMA工作在100MHz。后果嘛,数据全乱。
- 差分对的方向不能搞反: 接收端必须是P到P、N到N。反了,信号相位刚好差180度,你眼图基本就是一团毛线。
- 预加重和均衡别乱调: 默认值通常可以工作。除非你的PCB走线很长,或者板材很差,否则别一上来就动它。我见过有人调坏了,信号反射反而更严重。
重要提醒: GTY收发器有一个「复位顺序」的讲究。PMA必须先复位,然后才能复位PCS。顺序反了,PCS的状态机就跑飞了,链路永远起不来。这个坑,我踩过一次,折腾了整整一天。
所以,当你打开Vivado的Transceiver Wizard配置界面时,脑中要有上面那张图。哪些参数是给PCS的,哪些是给PMA的,一目了然。你不会再把编码类型和均衡系数搞混了。
嗯,到这里,GTY的硬件架构你应该清楚了。PCS处理数字、PMA处理模拟、收发通道各管各的。理解了这个,你已经超过了70%的初学者。后面的章节,我们就要在这个基础上,一步步把收发器跑起来。