SERDES(Serializer/Deserializer)是将并行数据转换为串行数据发送、接收后将串行数据恢复为并行数据的电路。它是现代高速IO接口(PCIe、USB3、SATA、以太网)的核心技术。
SERDES通过将并行数据串行化,用1-2对差分线替代数十根并行线,解决了上述问题。
┌─────────────────────────────────────────────────────┐
│ SERDES 收发器架构 │
│ │
│ 发送路径 (TX): │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │并行数据 │→│ 串行器 │→│ 预加重 │→│ 差分驱动│→TX+/- │
│ │(N-bit) │ │(N:1 MUX)│ │ (FIR) │ │ (CML) │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
│ │
│ 接收路径 (RX): │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │并行数据 │←│ 解串器 │←│ CDR+判 │←│ 均衡器 │←RX+/- │
│ │(N-bit) │ │(1:N DMX)│ │ 决采样 │ │ (CTLE) │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
│ │
│ 时钟系统: │
│ ┌────────┐ ┌────────┐ │
│ │ PLL │ │ CDR │ │
│ │(TX时钟)│ │(RX时钟)│ │
│ └────────┘ └────────┘ │
└─────────────────────────────────────────────────────┘
串行器将N位并行数据转换为1位串行数据流;解串器执行相反操作。
常用方案:多级MUX树 + 移位寄存器
常用方案:多级DMUX树 + 采样寄存器
SERDES不单独传输时钟信号,而是将时钟信息嵌入数据流中。接收端通过CDR(Clock and Data Recovery)从数据中恢复时钟。
关键前提:数据必须有足够的跳变(0→1或1→0),CDR才能跟踪时钟频率。使用线路编码确保跳变密度:
| 编码 | 效率 | 跳变密度 | 应用 |
|---|---|---|---|
| 8b/10b | 80% | ≥3次/10bit | PCIe 1/2, USB3, SATA |
| 64b/66b | 97% | 每66bit有同步头 | PCIe 3/4, 10G以太网 |
| 128b/130b | 98.5% | 每130bit有同步头 | PCIe 5/6 |
| NRZ(无编码) | 100% | 依赖数据 | 短距芯片间 |
眼图(Eye Diagram)是评估SERDES信号质量的核心工具,将所有比特周期的波形叠加显示。
| 参数 | 定义 | 要求 |
|---|---|---|
| 眼高 | 眼图在采样点的垂直开度 | > 最小判决阈值×裕量 |
| 眼宽 | 眼图在判决电平的水平开度 | > 1 UI × 裕量 |
| 抖动 | 信号边沿相对于理想位置的时间偏差 | 总抖动TJ < 1 UI |
| 误码率(BER) | 错误比特数/总比特数 | < 10⁻¹² (标准) 或 10⁻¹⁵ (高速) |
总抖动 (TJ)
├── 随机抖动 (RJ) — 高斯分布,无法完全消除
│ ├── 热噪声
│ ├── 散粒噪声
│ └── 1/f噪声
│
└── 确定性抖动 (DJ) — 有界,可补偿
├── 数据相关抖动 (DDJ)
│ ├── 码间干扰 (ISI)
│ └── 占空比失真 (DCD)
│
├── 周期性抖动 (PJ)
│ ├── 电源纹波
│ ├── 串扰
│ └── 参考时钟杂散
│
└── 有界不相关抖动 (BUJ)
├── 串扰
└── 电源噪声
* 16-eye-diagram.sp
* 眼图仿真 - 3.125Gbps NRZ信号
* 伪随机数据源
Vdata data 0 pwl(0 0 0.16n 0 0.32n 1 0.48n 1 0.64n 0 0.80n 1
+ 0.96n 0 1.12n 0 1.28n 1 1.44n 0 1.60n 1 1.76n 1
+ 1.92n 0 2.08n 0 2.24n 1 2.40n 0 2.56n 0 2.72n 1)
* 差分驱动器
Vdd vdd 0 1.0
Itail vdd ntail 4m
Mn1 out_p data ntail 0 nch W=40u L=0.1u
Mn2 out_n data_b ntail 0 nch W=40u L=0.1u
* 差分输出
R1 out_p 0 50
R2 out_n 0 50
C1 out_p 0 0.5p
C2 out_n 0 0.5p
.tran 0.01n 3n
.measure tran vswing PP V(out_p) FROM=0.5n TO=2.5n
.print tran V(out_p) V(out_n)
.end
SERDES眼图仿真关键发现:
链路预算评估从发送器到接收器的完整信号路径质量:
| 环节 | 损耗/贡献 | 典型值(10Gbps) |
|---|---|---|
| TX输出摆幅 | + | 800-1000mVppd |
| 封装损耗 | - | 1-3dB @ Nyquist |
| PCB走线损耗 | - | 5-20dB @ Nyquist |
| 连接器损耗 | - | 1-2dB |
| RX灵敏度 | - | 50-100mVppd |
| 均衡增益 | + | 5-15dB |
一个10Gbps SERDES链路:TX摆幅=900mVppd,封装损耗=2dB,PCB损耗=12dB,连接器损耗=1.5dB,RX灵敏度=80mVppd。不使用均衡时链路是否可行?需要多少均衡增益?
总损耗 = 2+12+1.5 = 15.5dB
RX端信号 = 900mV × 10^(-15.5/20) = 900 × 0.168 = 151mVppd
不使用均衡:151mVppd > 80mVppd灵敏度 ✅ 看似可行
但考虑抖动裕量:实际需要6dB以上裕量 → 151mV不够
需要均衡增益 ≈ 6dB,使有效信号达到 151×2 = 302mVppd
完成本课学习,你已经建立了高速IO设计的全局视野!
✅ 已掌握 SERDES架构 ✅ 已掌握 眼图分析 ✅ 已掌握 抖动分解 ✅ 已掌握 链路预算
不同应用使用不同的SERDES标准,各有特点:
| 标准 | 速率/lane | Lane数 | 编码 | 均衡 | 应用 |
|---|---|---|---|---|---|
| PCIe Gen4 | 16GT/s | x1-x16 | 128b/130b | 3-tap TX+CTLE+DFE | 计算机 |
| USB 3.2 | 10Gbps | 1-2 | 128b/132b | 2-tap TX+CTLE | 外设 |
| SATA 3.0 | 6Gbps | 1 | 8b/10b | 1-tap TX+CTLE | 存储 |
| 10G KR | 10.3Gbps | 1-4 | 64b/66b | 3-tap TX+CTLE+DFE | 以太网 |
| DDR5 | 6.4Gbps | - | NRZ | DFE | 内存 |
高速SERDES的ESD保护面临特殊挑战——ESD器件的寄生电容直接影响信号完整性。
PAM-4(4级脉冲幅度调制)是56Gbps+ SERDES的关键技术,每个符号携带2bit信息。
| 参数 | NRZ | PAM-4 |
|---|---|---|
| 符号速率 | 56GBaud for 56Gbps | 28GBaud for 56Gbps |
| 电平数 | 2 | 4 |
| 信噪比损失 | 0dB | ~9.5dB |
| 信号摆幅 | 满摆幅 | 1/3摆幅(每级) |
| 编码效率 | 1 bit/UI | 2 bit/UI |
| 参数 | 符号 | 典型值 | 单位 |
|---|---|---|---|
| IO电压(3.3V) | VDDIO | 3.0-3.6 | V |
| IO电压(1.8V) | VDDIO | 1.62-1.98 | V |
| 核心电压 | VDD | 0.9-1.2 | V |
| ESD二极管Vf | Vf | 0.6-0.8 | V |
| GGNMOS Vt1 | Vt1 | 6-10 | V |
| GGNMOS Vh | Vh | 3-5 | V |
| GGNMOS It2 | It2 | 8-15 | mA/μm |
| SCR Vh | Vh | 1-2 | V |
| SCR It2 | It2 | 50-80 | mA/μm |
| RC钳位时间常数 | τ | 0.5-2 | μs |
| 施密特Vt+ | Vt+ | 2.0 | V |
| 施密特Vt- | Vt- | 1.3 | V |
| 焊盘电容 | Cpad | 2-5 | pF |
| 焊线电感 | Lwire | 1-5 | nH |
| CML驱动电流 | Itail | 4-16 | mA |
| 差分阻抗 | Zdiff | 85-100 | Ω |
| HBM 2kV峰值电流 | Ipeak | 1.33 | A |
| HBM 4kV峰值电流 | Ipeak | 2.67 | A |
| CDM 500V峰值电流 | Ipeak | 5-15 | A |
| LVTTL VIH(min) | VIH | 2.0 | V |
| LVTTL VIL(max) | VIL | 0.8 | V |
I_HBM = V_HBM / R_HBM = V_HBM / 1500ΩV_clamp = Vf + VDD + I×Rbus + V_clamp_internalRC时间常数: τ = R × C谐振频率: f0 = 1/(2π√(LC))差分摆幅: Vdiff = Itail × Rload × 2SSO噪声: V_noise = L × di/dtESD窗口: Window = BVox - margin - (VDD + margin)环路带宽: fBW ≈ fref / (2×N×M)