第3章 PMA基础:高速串行链路的基本组成
做个芯片,尤其是做SerDes,绕不开PMA这个硬骨头。
PMA(Physical Media Attachment),说白了就是物理层里负责「真刀真枪」干模拟活儿的那个部分。
你写再漂亮的数字逻辑,最后都得靠PMA把比特流变成电信号,推出去,再收回来。
我入行那会儿,总觉得PMA就是一堆模拟电路,没什么好学的。结果第一个项目就被眼图闭合搞得焦头烂额。
嗯,从那以后我就老实了。
今天咱们把高速串行链路的基本组成拆开看看。
3.1 一条高速串行链路,到底长啥样?
先画个大框架。一条完整的高速串行链路,从发送端到接收端,至少得有这么几块:
- 发送器(TX):把并行的数字数据变成高速串行的差分信号,推上传输线。
- 传输通道:PCB走线、背板、连接器、线缆……信号走的路。
- 接收器(RX):把微弱、失真的差分信号捡回来,恢复成数字比特。
- 时钟与数据恢复(CDR):从数据流里把时钟挖出来,对齐数据。
这四部分缺一不可。
你想想看,少了CDR,时钟对不上,数据全乱套。
关键认知: 整个PMA的难点,不在信号「发出去」,而在信号「收回来」的时候还能保证误码率达标。
3.2 发送器(TX):把比特推出去
发送器的核心任务只有一个:把数字域里的0和1,变成线路上能够传播的高速模拟差分信号。
我个人习惯把发送器想象成信号的「发射器」——它决定了信号出发时的质量。
3.2.1 关键的发送器结构
常见的TX拓扑有这么几种:
| 拓扑类型 | 特点 | 常见应用 |
|---|---|---|
| 电压模式(CMOS) | 低功耗,摆幅由电源决定 | 片上短距、低功耗接口 |
| 电流模式(CML) | 高速度,摆幅由尾电流×负载电阻决定 | 高速SerDes(≥10Gbps) |
| LVDS | 低摆幅差分,抗干扰好 | 中速板间互联 |
我最常用的是CML。
为什么?速度能打,功耗可控,而且输出摆幅不随工艺波动剧烈变化。
避坑: 我曾经在一个25Gbps项目中,选择了CMOS驱动做大摆幅输出。结果走线一长,信号振铃严重,眼图上方直接塌陷。后来换成CML,匹配做足,问题才解决。
说白了,高速场景,CML是更稳的选择。
3.2.2 发送器的关键参数
- 差分输出电压摆幅(Vod):通常在200mV~1.2V之间。太小扛不住噪声,太大会干扰串扰。
- 上升/下降时间:决定信号的高频分量。太快则EMI大,太慢则ISI重。
- 确定性抖动(DJ):TX本身产生的抖动,主要由电源噪声和阻抗不匹配引起。
- 功耗:尤其在多通道设计中,TX功耗往往占PMA的大头。
我建议新手在设计TX之前,先算好目标眼高和眼宽。没这个目标,调参数就是乱调。
// 一个简化的CML发送器输出摆幅估算
// 假设尾电流 Itail = 10mA,负载电阻 RL = 50Ω(单端)
// 差分摆幅 Vdiff = Itail * RL * 2 = 10mA * 50Ω * 2 = 1.0Vpp
// 单端摆幅 = 500mVpp,共模电平 = Vdd - Itail*RL/2
3.3 传输通道:信号路上的「绊脚石」
通道本身是被动的,但它对信号的「摧残」不容小觑。
它有几个令人头疼的特性:
- 趋肤效应:高频分量走得浅,损耗大。频率越高,衰减越狠,眼图越「收窄」。
- 介质损耗:PCB板材有介电损耗,高频信号穿过时能量被吸收。
- 反射:阻抗不连续点(过孔、连接器、线宽变化)产生反射,造成ISI。
- 串扰:相邻走线耦合过来的噪声。
小建议: 我个人习惯在项目初期,用S参数模型(Touchstone文件)把通道的插入损耗和回波损耗扫一遍。
如果-3dB带宽不够信号基频的两倍以上,就得考虑加均衡了。
3.4 接收器(RX):把信号从噪声里捞出来
到了接收端,信号已经面目全非了。
接收器要做的,是把这个微弱的、歪歪扭扭的波形,恢复成干净的0和1。
3.4.1 接收器前端
通常包括:
- 连续时间线性均衡器(CTLE):放大高频、压低低频,补偿通道损耗。
- 判决电路(Slicer/Comparator):在采样点判断信号是0还是1。
- 数据采样器:通常用D触发器或强臂比较器。要跑得快,还得误码率低。
3.4.2 踩坑经验
我记得有一次,接收器前端怎么调都收不到数据。量眼图,清晰得很。
后来发现是采样时刻没对准——采样时钟相位差了半个UI(单位间隔)。
对,就是CDR没锁住。
重要提醒: 接收器的灵敏度不是越高越好。太灵敏会把噪声一起收进来,误码率反而上升。
关键是在灵敏度和噪声容限之间找平衡。我一般会留3dB以上的余量。
3.5 时钟与数据恢复(CDR):链路的「节拍器」
CDR是PMA的大脑。
它从数据流中提取时钟,并用这个时钟去采样数据。
为什么不能直接送一个单独的时钟过去?
因为高速链路中,时钟和数据的skew(时偏)会随温度和电压漂移。
CDR本质上是一个边沿跟踪的过程。
| 实现方式 | 原理 | 优缺点 |
|---|---|---|
| 基于PLL的CDR | 用相位检测器+电荷泵+VCO跟踪数据边沿 | 成熟、抖动小,但锁定慢 |
| 基于DLL的CDR | 用延迟链调整采样相位 | 锁定快,但有相位步进限制 |
| 全数字CDR | 用数字滤波器和数字振荡器 | 可移植性好,但量化噪声大 |
我遇到过最坑的一次是——CDR锁定后,相位误差抖动很大,导致误码率高达10⁻⁶。
查了半天,发现是VCO电源纹波太大。加了片LDO,问题就消失了。
核心一: CDR的抖动传递函数(JTF)决定了它能不能滤掉高频抖动,同时又跟得上低频的变化。
核心二: PLL带宽通常要小于数据速率/1000,否则会跟踪数据中的随机抖动加重误码率(BER)。
3.6 眼图:PMA质量的「照妖镜」
做完链路,第一个要看的就是眼图。
眼图反映了信号的质量。眼张开得越大,误码率越低。
我判断链路质量,通常会看这四个维度:
- 眼高:垂直方向张开度。太小意味着噪声容限不足。
- 眼宽:水平方向张开度。太小意味着采样时序紧张。
- 抖动:眼图交叉点的厚度。抖得越狠,BER越高。
- 浴盆曲线:直接给出不同采样相位下的误码率边界。
实用方法: 眼图不过关怎么办?别急着改版。
先用CTLE调均衡、再用EQ(判决反馈均衡,DFE)帮一把。
我做过一个项目,眼图闭合到只有10%眼高,靠三级连续时间线性均衡器(CTLE)+1阶判决反馈均衡(DFE)硬拉回70%,最终量产没问题。
3.7 小结:PMA基础回顾
咱们把高速串行链路的基本组成梳理清楚了:
- 发送器(TX)负责把数据推上通道。
- 通道是损耗源,也是最大的不确定因素。
- 接收器(RX)+ CDR负责捞出数据并恢复时钟。
- 眼图和BER是衡量链路好坏的最直观指标。
做PMA,不是把数字电路跑通就行。
你得管电压、管电流、管噪声、管抖动。一个起不来,整个链路都停摆。
下一块内容,咱们会深入发送器的电路实现。
但今天先把基础打牢——这些概念,后面30节课都会反复用到。