第一章 Serdes基础概念

各位同学好,我是老张。做FPGA这行十几年了,Serdes接口调试这块,说实话是我觉得最"玄学"的部分之一。今天咱们就从最基础的概念聊起,把Serdes这东西彻底讲明白。

1.1 什么是Serdes

Serdes这个词,其实是Serializer和Deserializer的合成词。翻译过来就是串行器和解串器。说白了,它的核心功能就一句话:把并行数据转成串行数据发送出去,再把收到的串行数据转回并行数据

我刚开始接触这个概念时,觉得这有啥难的?不就是并转串、串转并嘛。后来真正上手调板子才发现,这里面的门道深着呢。

核心要点:Serdes不是简单的并串转换,它包含了时钟恢复、均衡、编码、预加重等一系列高速信号处理技术。

举个例子,你有一个32位宽的数据总线,时钟频率100MHz。如果用并行方式传输,你需要32根数据线加上时钟线,总共33根线。但用Serdes,只需要一对差分线(两根线),就能完成同样的数据传输。

为什么会这样?因为Serdes把数据速率提上去了。32位×100MHz = 3.2Gbps,Serdes就把这3.2Gbps的数据串行化,在一对线上跑。你想想看,这节省了多少PCB走线资源?

1.2 Serdes与并行接口的区别

这里我给大家列个表,对比一下两者的差异,这样更直观:

对比项 并行接口 Serdes串行接口
信号线数量 多(数据线+时钟线+控制线) 少(一对差分线即可)
时钟方式 独立时钟线,源同步 时钟内嵌,从数据中恢复
数据速率 受限于并行总线频率(通常<500MHz) 可达数Gbps甚至数十Gbps
抗干扰能力 较差,易受串扰影响 较强,差分信号天然抗共模干扰
PCB设计难度 需要等长布线,难度较高 相对简单,但需注意阻抗匹配
功耗 较高(多路同时翻转) 相对较低

我在项目中遇到过一件事,印象特别深。有个同事做并行LVDS接口,32位数据线,跑200MHz。板子布完线,等长要求做到±50ps,折腾了整整两周。后来换成Serdes方案,一对差分线搞定,调试时间缩短了三分之二。

我的经验:如果你的系统速率超过1Gbps,别犹豫,直接上Serdes。并行接口在这个速率下,光是信号完整性就够你喝一壶的。

1.3 Serdes的应用场景

Serdes的应用场景,说白了就是"高速数据传输"的地方。我给大家梳理几个最常见的:

1.3.1 通信领域

  • 以太网:从千兆以太网到100G以太网,底层全是Serdes
  • 光纤通信:SONET/SDH、OTN这些标准,Serdes是核心
  • 无线基站:CPRI接口,连接RRU和BBU,用的就是Serdes

1.3.2 数据中心

  • PCIe:从PCIe 1.0到PCIe 5.0,每一代都是Serdes速率翻倍
  • SATA/SAS:硬盘接口,串行化之后速率提升明显
  • InfiniBand:高性能计算互联,Serdes是基础

1.3.3 视频传输

  • HDMI/DisplayPort:高清视频接口,内部都是Serdes
  • Camera Link:工业相机接口,高速图像数据传输
  • SDI:广播级视频接口,3G-SDI、12G-SDI都是Serdes

1.3.4 测试测量

  • 高速数据采集:ADC数据通过Serdes传到FPGA
  • 仪器互联:PXIe、AXIe等总线标准

注意:不是所有场景都适合用Serdes。如果你的数据速率低于100Mbps,或者传输距离很短(<10cm),用并行接口可能更简单、成本更低。我曾经见过有人用Serdes传SPI信号,纯属杀鸡用牛刀。

嗯,这里要特别说一下。Serdes虽然好,但它对硬件设计的要求也高。阻抗控制、AC耦合电容、参考时钟质量,这些细节一个不注意,调试起来就够你头疼的。后面几章我会详细讲这些坑。

1.4 小结

这一章咱们把Serdes的基本概念理清了。说白了,Serdes就是用高速串行通道替代并行总线,换来更少的引脚、更高的速率、更好的抗干扰能力。但代价是设计复杂度上升,调试难度增加。

我个人习惯是,做项目前先想清楚:这个接口到底需不需要Serdes?如果确定需要,那就老老实实按照Serdes的规矩来,别想着偷懒。下一章咱们聊聊Serdes的架构和关键参数,这些是后续调试的基础。

一句话总结:Serdes是高速设计的基石,理解它、敬畏它、用好它。