GTY收发器架构总览:PMA与PCS分层结构、参考时钟分布、供电体系
这一章咱们聊聊GTY收发器的整体框架。说白了,就是搞明白它内部是怎么分层的、时钟怎么走、电怎么供。很多新手一上来就扎进寄存器配置,结果连PMA和PCS谁管什么事都没搞清,后期调试一脸懵。我自己的习惯是——先看架构图,脑子里有个地图,再动手。
PMA与PCS:物理层与协议层的分工
GTY把收发器电路拆成两大块:PMA(物理介质适配层)和PCS(物理编码子层)。你可以把PMA想象成“纯模拟拳击手”,负责处理信号电平、时钟恢复、串并转换这些硬核的模拟活儿。而PCS更像“数字大脑”,做8B/10B编码、64B/66B编码、弹性缓冲、通道绑定这些协议相关的工作。
我在项目里遇到过一种情况:高速链路误码率很高,查了半天发现是PCS的弹性缓冲深度没调对。嗯,数字和模拟的边界往往就在这里出问题。
核心原则:PMA管“信号”,PCS管“数据”。两者通过一个内部并行总线(如20位、32位或40位宽)交换数据。
分层结构细节
咱们更细一点看每一层负责什么:
| 层级 | 子模块 | 职责描述 |
|---|---|---|
| PMA(模拟前端) | TX驱动器、RX均衡器、CDR | 信号发射/接收、时钟数据恢复、预加重/去加重 |
| PMA(数字部分) | Serializer / Deserializer | 并转串、串转并,数据位宽转换 |
| PCS(发送方向) | 编码器、加扰器、对齐字符插入 | 8B/10B或64B/66B编码,加扰,插入逗号字符 |
| PCS(接收方向) | 弹性缓冲、字对齐、解码器 | 比特对齐、弹性缓冲、解码、去扰 |
一个小技巧:当你配置GTY时,PMA部分基本是固定的,取决于线速率和参考时钟。PCS则有很多可编程选项。记住:“能不动PMA就不动,调PCS更快。”
参考时钟分布
时钟是高速收发器的命根子。GTY有两级时钟架构:全局参考时钟(REFCLK)和本地PLL分频时钟。每个Quad(四个收发器为一组)内部有一个CPLL和一个QPLL。CPLL通常用于较低速率(比如1~6.6Gbps),QPLL用于更高速率(最高到28Gbps甚至以上)。
我以前犯过一个错误:把CPLL和QPLL的参考时钟源接反了,结果链路锁不上。查了一整天,最后发现是QPLL的分频比设错,导致压控振荡器跑飞。
警告:不同Quad之间的参考时钟不能随意跨接。如果需要共享时钟,必须使用专用的GREFCLK输入或IBUFDS_GTE。否则抖动会超标,无法通过合规性测试。
供电体系
GTY收发器需要多路电源,因为模拟电路对电源噪声非常敏感。典型供电如下:
- VCCAUX(1.8V)——辅助电源,给PLL和校准电路用。
- VCCINT(0.85V或0.9V,视工艺节点)——内部逻辑电源,给PCS数字部分和PMA部分数字电路。
- VCCIO / VCCO(1.2V或1.5V)——输出驱动电源,取决于接口标准。
- MGTAVCC(1.0V)——收发器模拟专用电源,最敏感的一路。
- MGTAVTT(1.2V)——终端匹配电源,影响信号完整性。
我的经验:MGTAVCC必须走单独的电源层,最好用LDO供电,不要直接接开关电源。我见过一块板子因为MGTAVCC纹波过大,眼图完全闭合,换了LDO后一切正常。
架构总览图
下面这张图把PMA/PCS分层、时钟分布、供电关系一次性画清楚。你可以对照着看,脑子里的地图更立体。
看图建议:这张图把PM→PCS的总线、时钟、供电都放在了一起。你可以把图保存下来,后续配置时对照着看哪个模块对应哪个寄存器。
把架构吃透了,后面每一章的细节你都能快速定位到它在总图中的位置。好,这次就到这儿。