SerDes核心架构:发送端与接收端深度解析
各位工程师朋友,今天我们来聊聊SerDes的核心架构。说实话,很多初学者一看到SerDes就头大,觉得这东西太复杂。其实你把它拆开看,无非就是发送端和接收端两大部分。我在项目中调试过不下十种SerDes IP,今天就把这些经验分享给你。
发送端架构:PISO与Serializer
发送端的核心任务,说白了就是把并行数据转成串行数据,然后高速发出去。这个过程中有两个关键模块:PISO和Serializer。
PISO(并行输入串行输出)
PISO是发送端的第一道关卡。它接收来自FPGA逻辑的并行数据,然后按位串行输出。我习惯把PISO看作一个「数据漏斗」——宽口进,窄口出。
关键参数:
- 并行宽度:通常为8、10、16、20位
- 串行速率:取决于参考时钟和倍频因子
- 数据对齐:需要与位时钟严格同步
嗯,这里要注意一个坑。PISO的并行数据必须与参考时钟对齐,否则会出现数据错位。我曾经在一个项目中,因为PISO的并行数据没有做跨时钟域处理,导致数据时不时就乱掉。排查了整整两天才发现问题。
Serializer(串行器)
Serializer是PISO的升级版。它不仅要完成并串转换,还要处理编码、加扰等任务。我个人习惯把Serializer分成三个子模块:
- 编码器:8B/10B或64B/66B编码
- 加扰器:降低EMI和DC平衡
- 输出驱动器:提供差分信号驱动能力
你想想看,Serializer的工作频率有多高?以10Gbps为例,串行时钟就是10GHz。这个频率下,任何一点信号完整性问题都会被放大。所以布局布线时,Serializer的输出路径一定要短,差分对要等长。
实战技巧:
我在调试12Gbps SerDes时发现,Serializer的预加重设置非常关键。预加重不足会导致眼图闭合,预加重过度又会引入过冲。建议从默认值开始,逐步调整,观察眼图变化。
接收端架构:SIPO与Deserializer
接收端的工作正好反过来——把高速串行数据转回并行数据。这个过程比发送端更复杂,因为接收端需要从数据中恢复时钟。
SIPO(串行输入并行输出)
SIPO是接收端的核心。它接收串行数据流,按位采样后并行输出。这里有个关键问题:采样时钟从哪里来?
答案是从数据中恢复。接收端没有独立的时钟源,必须依靠CDR从数据边沿提取时钟。这就是为什么SIPO必须和CDR紧密配合。
Deserializer(解串器)
Deserializer除了完成串并转换,还要处理:
- 数据对齐:找到数据的字边界
- 解码:8B/10B或64B/66B解码
- 解扰:恢复原始数据
- 错误检测:检查数据完整性
注意事项:
Deserializer的对齐过程需要特定的训练序列。如果发送端和接收端的训练序列不匹配,数据永远无法对齐。我曾经遇到过接收端误码率居高不下,最后发现是训练序列的极性设置反了。
时钟数据恢复(CDR)原理
CDR是SerDes中最精妙的部分。它要从数据流中提取时钟,同时用这个时钟去采样数据。这听起来像是个「先有鸡还是先有蛋」的问题,对吧?
实际上,CDR通过反馈环路来解决这个问题。典型的CDR架构包含三个部分:
| 模块 | 功能 | 关键指标 |
|---|---|---|
| 鉴相器(PD) | 比较数据边沿与本地时钟的相位差 | 鉴相增益、死区 |
| 环路滤波器(LF) | 滤除高频噪声,控制环路带宽 | 带宽、阻尼系数 |
| 压控振荡器(VCO) | 根据控制电压调整输出频率 | 调谐范围、相位噪声 |
CDR的工作过程是这样的:
- 鉴相器检测数据边沿与时钟的相位差
- 环路滤波器平滑这个差值
- VCO根据滤波后的信号调整频率
- 新的时钟再去采样数据
这个环路不断迭代,最终锁定在数据频率上。我个人习惯把CDR的锁定过程分为三个阶段:频率捕获、相位捕获、锁定跟踪。
CDR设计要点:
- 环路带宽要适中:太宽会引入噪声,太窄锁定慢
- VCO的调谐范围要覆盖数据速率偏差
- 鉴相器要有足够的增益,减少静态相位误差
为什么CDR这么重要?因为高速信号在传输过程中,时钟和数据的相位关系会不断变化。温度变化、电源噪声、码型效应都会导致相位漂移。CDR就是用来跟踪这些变化的。
我记得有一次调试28Gbps SerDes,眼图看起来很好,但误码率就是降不下来。后来发现是CDR的环路带宽设置太窄,跟不上数据中的抖动。把带宽调宽后,误码率立刻降了几个数量级。
知识体系总览
下面这张图展示了SerDes核心架构的整体逻辑:
这张图把发送端、接收端和CDR的关系展示得很清楚。发送端把并行数据串行化,经过传输介质后,接收端用CDR恢复时钟,再通过SIPO还原成并行数据。整个链路环环相扣,任何一个环节出问题都会影响整体性能。
调试建议:
调试SerDes时,我习惯先确认CDR是否锁定。如果CDR没锁定,后面的数据全是错的。锁定指示信号是第一个要看的。然后看眼图,最后看误码率。这个顺序能帮你快速定位问题。
好了,关于SerDes的核心架构就聊到这里。发送端的PISO和Serializer负责数据转换,接收端的CDR和SIPO负责时钟恢复和数据还原。理解这些基础,你就能应对大部分SerDes应用场景了。
可可精品资料库