第4章 SGMII时钟架构:参考时钟频率、抖动要求与时钟树设计

时钟,说实话,是SGMII接口的命脉。我见过太多项目,逻辑设计得挺漂亮,结果上板一测,眼图全乱,最后查出来是时钟源没整对。这一章咱们就专门聊聊SGMII的时钟架构,把参考时钟频率、抖动指标和时钟树设计这几个硬骨头啃下来。

4.1 参考时钟频率:625MHz vs 125MHz

先看一个最基础的问题:SGMII到底需要多少兆赫兹的参考时钟?

搞过SerDes的都知道,SGMII的线速率是1.25Gbps。串行器通常需要10倍或20倍的参考时钟倍频,这决定了我们用的参考晶振是125MHz还是625MHz。

核心结论:

  • 125MHz参考时钟:内部PLL通常做×10倍频(125MHz→1.25GHz),这是最主流的方案。大多数FPGA的GTP/GTH/GTY收发器都支持。
  • 625MHz参考时钟:做×2倍频,对PLL的压力小,但对PCB走线的要求更高。一般只在高速收发器有特殊要求时才用。

我个人习惯优先选125MHz。为什么?因为常用的25MHz或50MHz晶振成本低、货源稳定,而且FPGA内部的时钟管理模块(MMCM/PLL)能轻松把25MHz倍频到125MHz。

4.2 时钟抖动要求:别小看那几十ps

讲个真事儿。有一回我调一块板子,SGMII链路死活不通,偶尔能起来几秒钟又断了。拿示波器一看,参考时钟的抖动快70ps了。换了一个低抖动晶振,问题立马解决。

SGMII对参考时钟的抖动要求,其实挺严格的:

参数 要求 说明
RMS周期抖动 < 20ps(典型) 大多数收发器要求 < 30ps peak-to-peak
RMS随机抖动 < 1ps 主要来自热噪声和闪烁噪声
确定性抖动 < 100ps 由电源噪声、串扰、地弹引起
Total Jitter(TJ@BER=1e-12) < 0.25UI 1.25Gbps下,0.25UI ≈ 200ps

实际选型时,我建议留出至少50%的裕量。比如RMS周期抖动要求是20ps,那晶振的典型值最好在10ps以下。

为什么会这样?因为收发器内部的CDR(时钟数据恢复)是有容忍极限的。抖动太大,CDR的锁定范围不够,就会频繁失锁。你想想看,链路动不动就断一下,业务能稳吗?

4.3 时钟树设计:从源头到管脚

时钟树设计,说白了就是怎么把参考时钟干净地送到每个收发器的管脚上。这块我踩过不少坑。

推荐的时钟树结构:

  • 差分晶振(LVDS或LVPECL)→ 时钟缓冲器(fanout buffer)→ 收发器参考时钟输入
  • 单端晶振 + AC耦合电容 → 差分驱动芯片 → 收发器参考时钟输入
  • FPGA内部PLL → 全局时钟网络 → 每个收发器的参考时钟管脚

嗯,这里要注意:直接用FPGA内部的PLL分频产生的参考时钟,噪声可能是外部的2倍甚至更多。我个人强烈建议不要省那几块钱晶振的钱。

下面这张图,画的就是一套典型的125MHz参考时钟树:

SGMII 参考时钟树架构(125MHz方案) 差分晶振 125MHz LVDS/LVPECL 时钟缓冲器 1:4 Fanout Buffer(如LMK00304) GTX0 收发器 REFCLK#0 GTX1 收发器 REFCLK#1 GTX2 收发器 REFCLK#2 设计要点 1. 差分走线阻抗100Ω,对内等长≤5mil 2. 晶振与缓冲器间距≤1英寸 3. 每路REFCLK走线长度不超过800mil 等长分支

4.4 实际布局布线的避坑指南

我曾经在一个4路SGMII的项目里,为了省事把REFCLK走线拉到1.2英寸长。结果呢?四路中有两路老是报CDR失锁。后来老老实实把走线缩到600mil以内,再也没出过问题。

这里有几个实操经验:

  • 差分走线等长:INP和INN长度差不超过5mil,最好控制在2mil以内。这个我都是用EDA工具的等长走线功能自动搞定的。
  • 包地处理:参考时钟线两侧隔0.5mm打一圈GND过孔。别跟其他高速信号线(比如DDR、PCIE)挨着走,至少隔开20mil。
  • 滤波电容:晶振和缓冲器的电源管脚,一定要加100nF + 10μF的组合。我习惯用X7R材质的贴片电容,ESR低。

注意:不要用FPGA内部的常规I/O来产生REFCLK!会引入很大的相位噪声。曾经有个同事图省事,把板上的50MHz时钟通过FPGA内部走线引到REFCLK引脚,结果眼图直接没法看。

4.5 实测验证小技巧

做完板子怎么验证时钟好不好?我一般三步走:

  1. 用频谱仪看时钟的相噪,重点看10kHz到20MHz的积分相位噪声,应该小于-70dBc。
  2. 用示波器量RMS抖动,测10000个周期取均方根值。我习惯用Keysight的EZJIT软件自动算。
  3. 用IBERT(内置误码率测试仪)跑满帧,看抖动容限曲线。这个是最直接的,能过就跑得稳。

一句话总结本章:时钟选125MHz差分晶振,抖动控制在20ps以内,REFCLK走线不超过800mil,缓冲器fanout分配。做到这三点,SGMII的时钟架构基本稳了。