第三章 物理层测试基础:PMA/PCS层调试、SerDes眼图测试、时钟恢复与抖动分析
物理层测试,说白了就是跟芯片最底层的“肌肉”打交道。很多做上层协议验证的同事觉得这层太“硬”,不愿意碰。但我个人觉得,恰恰是这层最能体现一个验证工程师的功底。你想想看,上层协议跑不通还能抓个log分析,物理层出了问题,示波器上全是噪声,那才叫一个头大。
这一章,我带你看看PMA/PCS层到底在干什么,SerDes眼图怎么测才算靠谱,还有那个让人又爱又恨的时钟恢复和抖动分析。嗯,都是我在项目里踩过坑的地方。
3.1 PMA/PCS层:芯片的“翻译官”与“搬运工”
先理清一个概念。PCS(物理编码子层)和PMA(物理介质接入子层)是物理层的两个核心模块。PCS负责把MAC层下来的数据“翻译”成SerDes能理解的形式,比如加扰、编码、对齐。PMA则负责把这些串行数据“搬运”到差分线上。
我在调试一款400G芯片时遇到过一个问题:链路能建起来,但跑压力测试时总丢包。查了三天,最后发现是PCS层的对齐标记插入逻辑有bug。你看,这种问题上层协议栈根本抓不到,只能靠物理层调试。
3.1.1 PCS层调试实战
PCS层调试,我习惯从三个维度入手:
- 编码检查: 64B/66B编码是否正确?同步头有没有翻转?
- 对齐标记: 多通道场景下,AM是否在预期位置出现?通道间偏移是否在容限内?
- FEC统计: RS-FEC的纠错计数和不可纠错计数,能直接反映链路质量。
举个例子,我曾经遇到一个场景:芯片在高温下频繁断链。用逻辑分析仪抓PCS层的状态机,发现RS-FEC的同步状态在“已同步”和“失步”之间来回跳。后来定位到是某个寄存器的阈值设得太激进,温度一高噪声变大就触发误判。
3.1.2 PMA层调试要点
PMA层调试,说白了就是跟模拟信号打交道。数字工程师往往不太适应,但有几个关键点必须掌握:
- 预加重/去加重: 补偿高频损耗。设置不对,眼图就是闭的。
- 均衡器: CTLE和DFE的配置直接影响接收端的信号质量。
- 信号摆幅: 电压摆幅太小,信噪比不够;太大,功耗和EMI都受不了。
我记得有一次调试56G PAM4信号,眼图怎么调都打不开。后来发现是PMA的CTLE增益设得太低,高频分量全被衰减了。调高两档,眼图立马清晰了。嗯,这种经验不亲自踩坑很难记住。
3.2 SerDes眼图测试:看“眼睛”说话
眼图测试,是物理层验证的“照妖镜”。一个干净的眼图,说明链路质量没问题;一个闭合的眼图,那就有得查了。
我个人习惯把眼图测试分成三步:
- 静态眼图: 用示波器长时间累积采样,看整体轮廓。
- 动态眼图: 用误码仪配合DUT,实时观察眼图变化。
- 眼图模板: 用IEEE标准定义的模板去套,看有没有违规。
3.2.1 眼图参数怎么看
眼图不是看个“眼睛”形状就完事了。有几个关键参数必须量化:
| 参数 | 含义 | 典型合格值 |
|---|---|---|
| 眼高 | 眼图垂直开口的高度 | NRZ: >200mV, PAM4: >100mV |
| 眼宽 | 眼图水平开口的宽度 | NRZ: >0.5UI, PAM4: >0.3UI |
| 抖动 | 信号边沿的时间偏差 | RMS抖动 < 0.1UI |
| 信噪比 | 信号幅度与噪声的比值 | PAM4: >15dB |
我在项目中遇到过一种情况:眼高和眼宽都合格,但误码率就是下不来。后来用示波器的抖动分析功能一看,发现是周期性抖动(PJ)超标。这种抖动来自电源噪声,眼图上看不出来,但误码率会告诉你真相。
3.3 时钟恢复与抖动分析:揪出“隐形杀手”
时钟恢复(CDR)是SerDes的核心。没有它,接收端根本不知道什么时候该采样数据。而抖动,就是CDR的“天敌”。
你想想看,信号在传输过程中,边沿位置会不断变化。CDR的任务就是跟踪这种变化,产生一个稳定的采样时钟。如果CDR设计得不好,或者抖动太大,采样点就会偏移,导致误码。
3.3.1 CDR调试要点
调试CDR,我建议关注这几个方面:
- 锁定时间: 从信号出现到CDR锁定,需要多长时间?太长了会影响链路建立。
- 抖动容限: CDR能容忍多大的输入抖动?这个值决定了链路的鲁棒性。
- 环路带宽: CDR的环路滤波器带宽设置。带宽太宽,噪声大;太窄,跟踪慢。
3.3.2 抖动分析实战
抖动分析,我习惯用“分解法”。把总抖动(TJ)分解成随机抖动(RJ)和确定性抖动(DJ),然后逐个击破。
- 随机抖动(RJ): 来自热噪声、散粒噪声等。呈高斯分布,无法消除,只能控制。
- 确定性抖动(DJ): 来自串扰、反射、电源噪声等。有规律可循,可以优化。
举个例子,有一次我测到芯片的抖动很大,用频谱分析一看,发现有个频率分量特别突出。顺着这个频率查,发现是板上的DC-DC电源开关频率耦合到了信号线上。调整了电源滤波电容,抖动立马降下来了。
3.4 本章知识体系
下面这张图,是我自己总结的物理层测试知识体系。你可以把它当作一个检查清单,每次测试前过一遍,基本不会漏项。
这张图把物理层测试的三大块串起来了。你从上往下看,先确定测什么模块,再看具体参数,最后落到关键指标上。我在项目里就是这么干的,效率很高。
好了,物理层测试的基础就聊到这儿。说白了,PMA/PCS层调试是“修路”,眼图测试是“验路”,时钟恢复和抖动分析是“护路”。三条腿都站稳了,你的芯片才能跑得稳、跑得快。
下一章,我们会深入链路层测试,看看MAC和流控机制怎么验证。到时候再聊。