2. PolarFire收发器硬件结构解析
要真正把 PolarFire 的高速串行链路调通,第一步不是急着改均衡参数,而是先把收发器的硬件结构在脑子里建立成一张“可定位”的图。PolarFire 的 SerDes 并不是一个黑盒,它由多条独立通道、明确分层的 PMA/PCS、共享或独立的参考时钟网络,以及分级的复位体系共同组成。理解这些结构,才能在链路不工作时判断问题出在物理层、编码层还是时钟/复位域。
一、SerDes 通道的物理组成
PolarFire 器件中的高速收发器以“通道(Lane)”为基本单位。每个通道包含一对差分发送引脚 TXP/TXN 和一对差分接收引脚 RXP/RXN,内部则对应一条完整的发送路径和一条接收路径。发送路径的核心是串行器(Serializer)与发送驱动器,接收路径的核心是接收缓冲、连续时间线性均衡(CTLE)、判决反馈均衡(DFE)以及时钟数据恢复(CDR)电路。通道之间在物理上相互独立,但可以按 Quad 或 Bank 分组共享部分时钟与电源资源。
以常见的 10.3125 Gbps 线速率为例,若参考时钟为 125 MHz,则发送 PLL 需要将参考频率倍频到 10.3125 GHz,倍频比为 82.5。这个非整数关系意味着参考时钟的抖动和频率精度会直接传递到串行输出上。因此通道组成不仅是“引脚 + 收发器”,还包括参考时钟输入、PLL、串行器/解串器、均衡器和 CDR 这条完整信号链。
二、PMA 与 PCS 的分层
PolarFire 收发器在逻辑上分为 PMA(Physical Medium Attachment,物理介质连接层)和 PCS(Physical Coding Sublayer,物理编码子层)。PMA 更靠近引脚,负责模拟和高速串行处理,包括串行化/解串行化、发送驱动、接收均衡、CDR、时钟生成与恢复。PCS 更靠近 FPGA 逻辑,负责数字编码、字对齐、通道绑定、8b/10b 或 64b/66b 编解码、弹性缓冲和状态机控制。
调试时这条分界线非常关键:如果链路连不上,先看 PMA 侧的 CDR 是否锁定、接收信号幅度是否足够;如果 PMA 已锁定但数据仍错误,则问题往往在 PCS 侧的字对齐、编码方式或通道绑定配置。PMA 与 PCS 之间通过并行数据接口和状态信号交互,PCS 的复位释放通常依赖 PMA 的锁定指示。
三、参考时钟架构
PolarFire 的参考时钟可以来自专用 REFCLK 引脚,也可以由内部时钟网络提供。每个收发器 Bank 通常有多个参考时钟输入选项,通过时钟选择器分配给发送 PLL 和接收 CDR。发送方向使用参考时钟作为 PLL 的输入,产生高速串行时钟;接收方向则用参考时钟作为 CDR 的初始频率参考,CDR 再根据接收数据边沿调整相位和频率。
参考时钟的质量直接影响链路裕量。如果参考时钟抖动过大,发送眼图会变差,接收 CDR 也可能难以锁定。实际调试中应确认参考时钟频率与线速率之间的倍频关系是否为整数或半整数,并检查参考时钟是否经过时钟资源(如 CCC)引入了额外抖动。对于 10.3125 Gbps 这类非整数倍频场景,参考时钟的 ppm 偏差会被放大,因此建议使用高精度晶振或专用时钟芯片。
四、复位架构与释放顺序
PolarFire 收发器的复位不是单一信号,而是分级的:上电复位、PMA 复位、PLL 复位、PCS 复位和通道复位。正确的释放顺序是:先释放 PMA 复位,等待发送 PLL 锁定和接收 CDR 锁定;再释放 PCS 复位,让编码器和字对齐状态机开始工作;最后释放用户逻辑复位,使数据通路打开。如果顺序颠倒,PCS 可能在 PMA 未锁定时就尝试对齐,导致状态机卡死。
调试时可以通过读取状态寄存器确认各阶段是否完成。例如,PLL 锁定位为 1 表示发送时钟已稳定,CDR 锁定位为 1 表示接收时钟已恢复,PCS 就绪位为 1 表示字对齐和通道绑定已完成。若某一位长期为 0,就应回到对应层级检查参考时钟、均衡配置或复位释放时序。
五、从结构到调试的映射
把上述结构映射到调试动作上:当链路不通时,先确认参考时钟是否存在且频率正确;再检查 PMA 的 PLL 和 CDR 锁定状态;然后确认 PCS 的编码方式、字对齐和通道绑定配置是否与对端一致;最后检查复位释放顺序和用户接口的数据宽度。这条从时钟到 PMA 到 PCS 再到用户逻辑的排查路径,正是 PolarFire 收发器硬件结构决定的。