第2章:高速SerDes基础:SerDes架构、PLL与CDR工作原理、时钟数据恢复机制

好,咱们直接进入正题。SerDes,说白了就是“串行器/解串器”。你想想看,芯片内部的数据总线动辄几十上百位宽,但到了芯片外面,引脚就那么几个。怎么办?SerDes就是干这个的——把并行数据转成高速串行流发出去,收回来再转回并行。

我刚开始接触SerDes时,总觉得这东西很神秘。后来做了几个项目才明白,核心就三件事:发出去、传回来、对准了。嗯,咱们一个一个说。

2.1 SerDes基本架构

一个典型的SerDes链路,发端和收端各有一套东西。发端叫TX,收端叫RX。中间是传输介质,可能是PCB走线,也可能是光模块。

TX这边,核心模块包括:

  • PISO(并转串):把N位并行数据转成1位串行流。我习惯用“乒乓操作”来理解——两个寄存器交替工作,一个在装数据,一个在往外吐。
  • Serializer(串行器):其实就是高速移位寄存器。但要注意,这里的时钟频率是并行时钟的N倍。比如10Gbps的SerDes,如果并行位宽是16位,那串行时钟就是10GHz/16 = 625MHz。
  • Driver(驱动器):把数字信号变成适合传输的模拟信号。常见的有CML(电流模式逻辑),差分摆幅一般在400mV到800mV之间。

RX这边,核心模块包括:

  • Equalizer(均衡器):补偿信道损耗。我在项目中遇到过,10cm的PCB走线在10Gbps下,损耗能到3-4dB。不做均衡,眼图就是一团浆糊。
  • CDR(时钟数据恢复):这是SerDes的灵魂。后面专门讲。
  • DES(解串器):把串行数据转回并行。注意,这里需要恢复出来的时钟来采样数据。

关键点:SerDes的速率不是随便定的。它受限于信道带宽、工艺节点和功耗。我个人习惯,在项目初期先用链路预算工具算一下,看看目标速率下眼图能开多大。

2.2 PLL工作原理

PLL(锁相环)是SerDes的“心脏”。它负责产生高频时钟,而且这个时钟要稳、要准、要低抖动。

一个典型的PLL由四部分组成:

  1. PFD(鉴频鉴相器):比较参考时钟和反馈时钟的相位差。输出UP和DOWN信号。
  2. CP(电荷泵):把UP/DOWN信号转换成电流。电流大小决定了PLL的带宽。
  3. LF(环路滤波器):通常是二阶RC滤波器。滤掉高频噪声,稳定控制电压。
  4. VCO(压控振荡器):根据控制电压产生输出频率。LC-VCO的相位噪声通常比环形VCO好,但面积大。

为什么会用PLL而不是直接用一个高频晶振?因为晶振频率做不高,而且成本高。PLL可以用一个低频参考(比如25MHz或100MHz)倍频到高频。

我记得有一次,项目里PLL的锁定时间太长,导致系统上电后要等好几毫秒才能开始通信。后来调整了环路带宽,把锁定时间从5ms降到了200μs。这里有个权衡:带宽越宽,锁定越快,但输出抖动也越大。

实战技巧:PLL的环路带宽一般设为参考时钟频率的1/10到1/20。比如参考时钟100MHz,带宽设在5-10MHz比较合适。太宽了,参考时钟的噪声会直接传到输出;太窄了,VCO自身的噪声压不住。

2.3 CDR工作原理

CDR(时钟数据恢复)是SerDes收端的核心。它的任务是从接收到的数据流中提取出时钟,并用这个时钟来采样数据。

你想想看,发端和收端没有独立的时钟线,数据里也没有显式的时钟信号。那收端怎么知道什么时候该采样?这就是CDR要解决的问题。

CDR的基本结构有两种:

  • 基于PLL的CDR:用PLL来跟踪数据中的相位变化。适合连续数据流。
  • 基于相位插值器的CDR:用数字方式调整采样相位。适合突发模式或需要快速锁定的场景。

我建议初学者先理解基于PLL的CDR。它的核心思想是:把数据边沿当作参考时钟,用PLL来产生一个与数据同步的时钟。

具体来说,CDR里的PFD不是比较两个时钟,而是比较数据边沿和本地时钟的相位。当数据边沿到来时,PFD判断本地时钟是超前还是滞后,然后调整VCO的频率。

注意:CDR对数据中的“跳变密度”有要求。如果数据长时间不变(比如连续100个0),CDR就会“漂移”,失去锁定。所以SerDes通常会用8B/10B或64B/66B编码来保证足够的跳变密度。

2.4 时钟数据恢复机制

时钟数据恢复,说白了就是“找对齐”。数据流里没有时钟,但数据边沿本身就隐含了时钟信息。CDR要做的,就是把这个隐含的时钟“挖”出来。

恢复机制分三步:

  1. 边沿检测:检测数据从0到1或从1到0的跳变。每个跳变都是一个“相位参考点”。
  2. 相位比较:把本地时钟的边沿与数据边沿做比较。如果本地时钟超前了,就调慢一点;滞后了,就调快一点。
  3. 相位调整:通过调整VCO的控制电压,或者通过相位插值器,让本地时钟与数据边沿对齐。

这里有个关键概念:采样相位。CDR通常会让时钟的上升沿对准数据的中间位置(即眼图中心),这样采样到的数据最稳定。为什么?因为眼图中心是数据最“开”的地方,噪声容限最大。

我曾经在一个10Gbps的项目里,CDR的采样相位偏了30度,结果误码率从10^-12直接飙升到10^-6。后来发现是VCO的增益曲线非线性导致的。解决办法是做了个自适应校准,每次上电时自动调整初始相位。

核心要点:CDR的性能指标主要有三个——锁定时间(多久能跟上数据)、抖动容限(能容忍多大的输入抖动)、抖动传递(输出时钟的抖动有多大)。这三个指标互相制约,设计时要根据应用场景做取舍。

2.5 常见问题与避坑指南

做SerDes设计,有几个坑我踩过,分享给你:

  • 电源噪声:PLL和CDR对电源噪声极其敏感。我建议在PLL的电源引脚上加LC滤波,而且模拟电源和数字电源要分开。
  • 参考时钟质量:参考时钟的抖动会直接传递到输出。我曾经用了一个便宜的晶振,结果PLL输出抖动超标。后来换了低相噪晶振,问题解决。
  • 信道不连续:如果数据流中有长串的0或1,CDR会失锁。所以编码很重要。8B/10B编码虽然浪费20%的带宽,但能保证最大连续相同位数不超过5个。
  • 温度漂移:VCO的频率会随温度变化。我建议在CDR中加入频率锁定辅助电路,防止温度变化时失锁。

个人习惯:每次流片前,我都会做一次蒙特卡洛仿真,看看PLL和CDR在工艺角、温度、电压变化下的表现。虽然仿真不能覆盖所有情况,但能发现大部分设计漏洞。

好了,这一章的内容就这些。SerDes的基础架构、PLL和CDR的工作原理,都是后续章节的基石。下一章咱们会深入讲均衡技术,那是解决高速信号衰减的关键手段。

记住一句话:SerDes设计,时钟是灵魂,数据是血肉,均衡是铠甲。把这三样搞明白了,高速接口设计就入门了。