| PCIe版本 | 速率/lane | 编码 | 均衡要求 | TX摆幅 |
|---|---|---|---|---|
| Gen1 | 2.5GT/s | 8b/10b | 无(或1-tap) | 800-1200mVppd |
| Gen2 | 5.0GT/s | 8b/10b | 1-tap TX+CTLE | 800-1200mVppd |
| Gen3 | 8.0GT/s | 128b/130b | 3-tap TX+CTLE+DFE | 800-1200mVppd |
| Gen4 | 16GT/s | 128b/130b | 3-tap TX+CTLE+1-tap DFE | 800-1200mVppd |
| Gen5 | 32GT/s | 128b/130b | 3+1 TX+CTLE+DFE | 400-800mVppd |
┌────────────────────────────────────────────────────┐
│ PCIe PHY架构 (per lane) │
│ │
│ TX: │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │并行 │→│编码器 │→│FIR │→│CML │→TX+/- │
│ │数据 │ │128/130│ │3-tap │ │驱动 │ │
│ └──────┘ └──────┘ └──────┘ └──────┘ │
│ │
│ RX: │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │并行 │←│解码器 │←│CDR+ │←│CTLE+ │←RX+/- │
│ │数据 │ │130/128│ │判决 │ │DFE │ │
│ └──────┘ └──────┘ └──────┘ └──────┘ │
│ │
│ PLL: 参考时钟100MHz → 多相时钟生成 │
│ │
│ Link训练: │
│ [Detect] → [Polling] → [Configuration] → [L0] │
│ ↑ │ │
│ └──── [Recovery] ←──── [L0s/L1] ←──┘ │
└────────────────────────────────────────────────────┘
PCIe设备通过Link训练(Link Training)建立可靠连接。训练过程由LTSSM(Link Training and Status State Machine)控制。
| 状态 | 功能 | 关键操作 |
|---|---|---|
| Detect | 检测对端设备 | 检测RX终端阻抗 |
| Polling | 建立链路 | 交换TS1/TS2序列,位锁定 |
| Configuration | 配置链路 | Lane编号、链路宽度协商 |
| L0 | 正常工作 | 数据传输 |
| Recovery | 重训练 | 位锁重新获取、均衡调整 |
| L0s/L1 | 低功耗 | 快速/深度休眠 |
Gen3及以上需要均衡训练来优化TX和RX的均衡参数:
均衡训练阶段 (Phase 0-3):
Phase 0: 使用默认TX预设
Phase 1: RX请求TX调整预加重系数
Phase 2: RX调整CTLE/DFE参数
Phase 3: 确认最优设置,进入正常工作
TX预设表 (Gen3/4):
Preset 0: -6dB de-emphasis, 0dB pre-cursor
Preset 1: -3.5dB de-emphasis, 0dB pre-cursor
...
Preset 10: -12dB de-emphasis, +3.5dB pre-cursor
PCIe支持x1/x2/x4/x8/x16链路宽度。多Lane设计需要Lane间时序对齐。
* 24-pcie-tx-driver.sp
* PCIe Gen3 TX驱动器仿真 (8GT/s)
Vdd vdd 0 1.0
* 8GT/s伪随机数据 (1 UI = 125ps)
Vdata_p dp_data 0 pwl 0 1.0 0.0625n 1.0 0.0625n 0 0.125n 0
+ 0.1875n 0 0.1875n 1.0 0.250n 1.0 0.250n 0 0.375n 0
Vdata_n dn_data 0 pwl 0 0 0.0625n 0 0.0625n 1.0 0.125n 1.0
+ 0.1875n 1.0 0.1875n 0 0.250n 0 0.250n 1.0 0.375n 1.0
* CML驱动器
Itail vdd ntail 8m
Mn1 out_p dp_data ntail 0 nch W=60u L=0.1u
Mn2 out_n dn_data ntail 0 nch W=60u L=0.1u
* 50Ω终端
Rt_p out_p 0 50
Rt_n out_n 0 50
* 差分传输线
Tp out_p out_n far_p far_n Z0=50 TD=2n
* 远端接收
Rfr_p far_p 0 50
Rfr_n far_n 0 50
.tran 0.001n 0.5n
.measure tran vswing PP V(out_p,out_n) FROM=0.15n TO=0.35n
.measure tran trise TRIG V(out_p) VAL=0.3 RISE=1 TARG V(out_p) VAL=0.7 RISE=1
.print tran V(dp_data) V(out_p) V(out_n) V(far_p) V(far_n)
.end
PCIe TX驱动器仿真结果:
PCIe Gen3 (8GT/s)的信道在4GHz(Nyquist)处损耗20dB。TX摆幅800mVppd,RX灵敏度50mVppd。需要多少均衡增益?
RX端信号 = 800mV × 10^(-20/20) = 800 × 0.1 = 80mVppd
80mVppd > 50mVppd灵敏度 ✅ 但裕量仅10dB
考虑6dB抖动裕量:需要有效信号 > 100mVppd
需要均衡增益 ≈ 6-10dB
完成本课学习,你已经掌握了最复杂的高速IO设计!
✅ 已掌握 PCIe架构 ✅ 已掌握 LTSSM训练 ✅ 已掌握 多Lane对齐 ✅ 已掌握 均衡策略
PCIe差分对的ESD保护需要极低电容,否则影响高速信号完整性。
PCIe PHY的ESD保护采用片上二极管方案:
| 参数 | 规格 | 测量方法 |
|---|---|---|
| 差分阻抗 | 85Ω±10% | TDR |
| 共模阻抗 | 30-60Ω | TDR |
| 差分插入损耗 | 按规范频率相关 | VNA |
| 回波损耗 | <-10dB | VNA |
PCIe PHY支持多种低功耗状态:
PCIe链路在运行过程中可能因噪声、温度变化等原因需要重训练。
重训练进入Recovery状态,重新执行位锁定和均衡训练:
重训练期间数据传输暂停,上层协议需要处理数据中断。
| 参数 | 符号 | 典型值 | 单位 |
|---|---|---|---|
| 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)PCIe协议不断演进,引入了多种高级特性。
AER提供详细的错误诊断信息:
| 错误类型 | 严重性 | 报告方式 |
|---|---|---|
| ECRC错误 | 可纠正 | AER消息 |
| Bad TLP | 可纠正 | AER消息 |
| Bad DLLP | 可纠正 | AER消息 |
| REPLAY_NUM溢出 | 致命 | AER消息 |
| 完成超时 | 不可纠正 | AER消息 |
ASPM自动管理链路电源状态: