1. 概述高速串行通信的核心目标是解决通信系统中“并行数据位宽大、走线多”与“高速传输希望减少布线数量”之间的矛盾。传统并行接口可能需要D0 D1 D2 ... D31 CLK Control如果采用高速串行通信则可以把多位并行数据转换为一条或少量几条高速差分串行链路Parallel Data ↓ Serializer ↓ TXP / TXN ↓ PCB / Cable / Backplane ↓ RXP / RXN ↓ Deserializer ↓ Parallel Data这种技术称为SerDesSerializer / Deserializer串行器 / 解串器AMD / Xilinx FPGA 中的GTY本质上就是集成在 FPGA 内部的一组高性能高速 SerDes 收发器硬核资源。2. SerDes 是什么SerDes 的英文全称Serializer / Deserializer中文通常称为串行器 / 解串器 串并转换器 高速串行收发器发送方向Parallel Data ↓ Serializer ↓ Serial Data接收方向Serial Data ↓ Deserializer ↓ Parallel Data例如 FPGA 内部32 bit × 250 MHz 8 Gbit/s理论上可以通过串行器转换成1 lane × 8 Gbit/s这样原本几十根并行数据线就可以减少为一对高速差分线TX TX-3. 为什么需要串并转换并行总线的问题包括PCB 走线数量多布线空间大长度匹配困难时钟偏斜难控制串扰增加连接器 Pin 数量多随着速率提高并行总线越来越难扩展高速串行链路通过低速宽并行总线 ↓ SerDes ↓ 高速窄串行链路减少布线数量同时提升总体带宽。例如64 bit 400 MHz理论数据率64 × 400 MHz 25.6 GbpsSerDes 可以将其转换成约 25.6 Gbps 的高速串行信号。因此 FPGA 内部逻辑不需要工作在 25 GHz而只需要运行在几百 MHz。4. 串并转换芯片的三种常见类型4.1 简单移位寄存器典型芯片74HC595 74HC165主要完成Serial → Parallel Parallel → Serial常用于LED数码管GPIO 扩展继电器简单控制信号这类器件速度通常较低不属于现代高速通信意义上的高速 SerDes。4.2 独立高速 SerDes 芯片这类芯片专门负责高速串并转换。结构类似FPGA / ASIC │ Parallel Data │ ▼ Serializer IC │ TX/TX- │ Cable / PCB │ RX/RX- │ ▼ Deserializer IC │ Parallel Data ▼ FPGA / ASIC常见厂商包括Texas InstrumentsAnalog DevicesMaximBroadcomMarvellMicrochipRenesas典型应用汽车摄像头工业视觉FPGA 板间通信显示系统高速背板光通信模块4.3 FPGA / ASIC 内部集成 SerDes例如 AMD / Xilinx FPGA 内部GTP GTX GTH GTY GTYPIntel FPGA 中也集成有高速 Transceiver。其特点是与 FPGA Fabric 紧密连接可配置不同协议支持更高速率集成 PLL、CDR、均衡器可用于 PCIe、Ethernet、Aurora、JESD 等协议GTY 就属于这一类。5. GTY 是什么GTY 是 AMD / Xilinx FPGA 中的一类高速串行收发器。可以简单理解为GTY 集成在 FPGA 内部的高速 SerDes PHY 硬核。GTY 常用于PCI Express10G / 25G / 100G EthernetAuroraJESD204B / JESD204CCPRIDisplayPort高速板间互联光模块接口基本数据流FPGA Logic │ Parallel Data │ ▼ GTY │ High-speed Serial │ TXP / TXNRX 方向则完全相反。6. GTY 整体结构一个 GTY Channel 可以粗略分为TX Path FPGA Fabric │ TXDATA ↓ PCS ↓ PMA ↓ Serializer ↓ TX Equalization ↓ TX Driver ↓ TXP / TXNRX 路径RXP / RXN ↓ RX Analog Frontend ↓ CTLE / DFE ↓ CDR ↓ Deserializer ↓ PCS ↓ RXDATA ↓ FPGA Fabric其中最重要的两个部分是PCS PMA7. PMAPMAPhysical Medium Attachment主要负责真正的高速模拟收发。常见功能SerializerDeserializerPLLCDRTX DriverTX Pre-emphasisRX EqualizerCTLEDFEEye Scan可以理解PMA 是真正与高速模拟信号直接打交道的部分。8. PCSPCSPhysical Coding Sublayer主要负责数字逻辑处理。常见功能8b/10b 编码64b/66bGearboxByte AlignmentWord AlignmentComma DetectionClock CorrectionChannel Bonding数据对齐可以简单记成PMA 高速模拟物理层 PCS 高速数字编码和对齐层9. Serializer 工作原理假设输入为8-bit Parallel Data数据10110110Serializer 将其转换成1 → 0 → 1 → 1 → 0 → 1 → 1 → 0依次高速发送。如果8 bit 1 GHz则串行数据速率为8 × 1 GHz 8 Gbps一般可近似理解Line Rate ≈ Parallel Width × Parallel Clock但实际系统中还需要考虑编码开销。10. 编码开销例如 8b/10b8 bit Data ↓ 10 bit Line Code效率8 / 10 80%如果有效数据速率要求8 Gbps实际线路速率需要8 × 10 / 8 10 Gbps所以有效数据带宽 ≠ Line Rate高速 Ethernet 常采用 64b/66b64 bit ↓ 66 bit效率约64 / 66 ≈ 97%11. Deserializer 为什么更复杂发送端知道自己的时钟数据发送边界Bit 位置但是接收端拿到的通常只有101101001101...它必须自己解决什么时候采样 Bit 边界在哪里 Byte 边界在哪里 信号失真怎么办所以 RX 中通常会包含RX EqualizerCDRDeserializerAlignmentDecoder其中 CDR 是最关键的模块之一。12. CDRCDRClock and Data Recovery即时钟与数据恢复高速串行链路通常不会单独传输一个几十 GHz 的高速时钟。接收端需要从101101001101...的数据跳变中恢复时钟。结构Serial Data ↓ CDR ↙ ↘ Clock DataCDR 的目标是在眼图中心附近确定最佳采样时刻。如果 CDR 无法 LockRX CDR LOCK 0那么后续的解串、编码检测和协议识别通常都会失败。13. PLL高速 SerDes 需要 PLL 产生高速时钟。例如输入参考时钟REFCLK 156.25 MHz通过内部 PLL156.25 MHz ↓ PLL ↓ High-speed Serial Clock可用于产生10.3125 Gbps 25.78125 Gbps ...PLL 的时钟质量会直接影响JitterBEREye OpeningLink Stability14. GTY 中的 CPLL 和 QPLLGTY 中常见两种 PLL。14.1 CPLLCPLLChannel PLL通常属于单个 GT Channel。特点Channel 独立配置灵活适合部分较低或中等速率应用结构REFCLK ↓ CPLL ↓ GT Channel14.2 QPLLQPLLQuad PLL通常由多个 GT Channel 共享。例如QPLL │ ┌──────┼──────┐ ↓ ↓ ↓ GTY0 GTY1 GTY2 ...QPLL 通常支持更高 VCO 范围更适合高 Line Rate可供多个 Channel 共享15. GT QuadAMD / Xilinx 通常将多个 GT Channel 组织成一个 Quad。典型结构GTY Quad QPLL0 QPLL1 │ ┌──────┼─────────────┐ │ │ │ │ GTY0 GTY1 GTY2 GTY3通常1 Quad 4 GT ChannelsQuad 内部可以共享QPLLReference ClockCommon Resources16. Reference ClockGTY 必须有高质量参考时钟。常见频率包括100 MHz 125 MHz 156.25 MHz 161.1328125 MHz 322.265625 MHz例如 25G Ethernet 常见REFCLK 156.25 MHzGTY 使用专门的高速参考时钟引脚MGTREFCLKP MGTREFCLKN它不同于普通 FPGA Clock IO。参考时钟抖动会影响REFCLK Jitter ↓ PLL Jitter ↓ TX Jitter ↓ Eye Diagram ↓ BER因此高速系统对参考时钟质量要求很高。17. User ClockGTY 中经常出现TXOUTCLK RXOUTCLK TXUSRCLK TXUSRCLK2 RXUSRCLK RXUSRCLK2基本理解TXOUTCLK是 GT TX 路径输出或生成的相关时钟。RXOUTCLK通常与 RX 恢复时钟相关。TXUSRCLK / TXUSRCLK2用于 FPGA 到 GTY TX 数据路径。RXUSRCLK / RXUSRCLK2用于 GTY RX 到 FPGA 数据路径。例如Line Rate 25.78125 Gbps Parallel Width 80 bit则25.78125 Gbps / 80 ≈ 322.265625 MHzFPGA 内部可以使用约322.265625 MHz的用户时钟处理 80 bit 数据。18. GearboxGearbox 本质上是位宽 / 时钟转换例如协议内部处理66 bit但 GT 数据接口为32 bit 64 bit则需要 Gearbox 完成不同位宽之间转换。典型应用64b/66b Ethernet19. TX Equalization高速 PCB 对高频信号衰减更严重。所以 TX 会进行预补偿。常见参数Pre Cursor Main Cursor Post Cursor也常称Pre-emphasis De-emphasis基本思想是在信号发送之前主动改变波形预先补偿 PCB Channel 对高频部分的损耗。20. RX EqualizationRX 端也需要对通道损耗进行补偿。常见技术CTLE DFE20.1 CTLECTLEContinuous Time Linear Equalizer主要补偿频率响应。因为 PCB 高频损耗通常大于低频损耗所以 CTLE 可以相对增强高频部分。20.2 DFEDFEDecision Feedback Equalizer利用前面已经判决的数据对当前 bit 进行修正。DFE 对以下场景特别重要高损耗 PCBBackplane长距离高速通道高 Line Rate21. LPM 与 DFEGTY RX 中常见不同接收均衡模式。可以粗略理解模式特点LPM功耗较低LPM适合通道损耗较小场景DFE均衡能力更强DFE适合高损耗 PCB / BackplaneDFE自适应能力更强22. Lane高速 SerDes 系统通常以 Lane 为基本单位。一条全双工 Lane 通常包括TX TX- RX RX-例如 PCIePCIe x1 1 Lane PCIe x4 4 Lane PCIe x8 8 Lane PCIe x16 16 Lane多个 Lane 可以组合提高总带宽。23. Multi-Lane 与 Channel Bonding例如Lane0 Lane1 Lane2 Lane3由于 PCB 线长、连接器和传输路径不同各 Lane 到达时间可能不同。接收端需要进行Lane Alignment Deskew Channel Bonding从而恢复不同 Lane 之间正确的数据关系。24. PRBSPRBSPseudo Random Binary Sequence即伪随机二进制序列。常见PRBS7 PRBS9 PRBS15 PRBS23 PRBS31高速 SerDes 调试时可以让 TX 内部直接产生 PRBSTX PRBS Generator ↓ GTY ↓ PCB / Cable ↓ GTY ↓ RX PRBS Checker如果接收到的数据与预期 PRBS 不一致PRBS ERROR 通过长期测试可以评估链路 BER。25. BERBERBit Error Rate即误码率。例如发送10^12 bit出现1 bit error则BER 10^-12高速接口常见目标10^-12 10^-15甚至更低。26. Eye DiagramEye Diagram眼图是评估高速 SerDes 信号质量的重要工具。眼图越开放Eye Height 大 Eye Width 大通常代表Voltage Margin 大Timing Margin 大BER 更低眼图越闭合则说明链路质量越差。GTY 支持内部 Eye Scan可以直接分析 RX 接收裕量。27. JitterJitter时钟 / 数据边沿在时间轴上的抖动例如 25 Gbps1 UI 1 / 25e9 ≈ 40 ps也就是说一个 bit 的时间仅约 40 ps。如果有10 ps Jitter就已经占一个 bit 周期的约 25%。所以高速 SerDes 对 Jitter 极其敏感。28. UIUIUnit Interval表示一个 bit 的持续时间。例如10 Gbps则1 UI 100 ps25 Gbps1 UI 40 ps32 GT/s1 UI ≈ 31.25 ps高速接口经常使用0.1 UI 0.2 UI描述抖动、眼图宽度和采样裕量。29. NRZ 与 PAM4传统高速 SerDes 常采用 NRZ。NRZ0 1两个电平1 Symbol 1 bit例如25 GBaud ≈ 25 GbpsPAM4 使用四个电平00 01 10 11因此1 Symbol 2 bit例如56 GBaud ≈ 112 GbpsPAM4 可以提高单位带宽的数据吞吐量但代价是电压 Margin 更小SNR 要求更高Equalization 更复杂原始 BER 更高30. LoopbackGTY 一般支持多种 Loopback。例如TX ↓ Internal Loopback ↓ RX可用于逐层排查GT 内部PCSPMAPCBConnectorCableOptical Module如果内部 Loopback 正常而外部连接失败则问题更可能位于PCB Connector Cable Optical Module31. GTY ResetGTY 中经常出现GTTXRESET GTRXRESET TXPMARESET RXPMARESET TXPCSRESET RXPCSRESET TXRESETDONE RXRESETDONE CPLLRESET QPLLRESET原因是 GTY 内部包含PLLPMAPCSCDRSerializerDeserializerClock DividerAnalog Frontend所以初始化需要按照一定顺序进行。典型逻辑REFCLK Stable ↓ PLL Reset ↓ Wait PLLLOCK ↓ GT Reset ↓ Wait TXRESETDONE / RXRESETDONE ↓ CDR Lock ↓ PCS Alignment ↓ Protocol Link Training ↓ LINK UP32. GTY 与 PCIe 的关系GTY 不是 PCIe 协议本身。可以理解PCIe Transaction Layer ↓ PCIe Data Link Layer ↓ PCIe PHY / PCS ↓ GTY SerDes ↓ PCBGTY 主要负责高速电气收发PCIe IP 则负责LTSSMTLPDLLPFlow ControlTransaction Layer因此GTY 高速 PHY 底层收发资源 PCIe 完整通信协议33. GTY 与 Ethernet 的关系Ethernet 可以简化为MAC ↓ PCS ↓ PMA ↓ SerDes / GTY ↓ Copper / FiberMAC 负责Ethernet Frame例如Destination MACSource MACEtherTypePayloadCRCGTY 不关心 Ethernet Frame 的语义。对 GTY 来说底层主要就是高速 bit stream。34. GTY、GTH、GTX 等区别AMD / Xilinx FPGA 不同代际或不同系列中常见GTP GTX GTH GTY GTYP可以粗略理解为不同性能等级和不同代际的高速收发器。总体发展方向更高 Line Rate 更强 Signal Integrity 更复杂 Equalization 更高协议速率但具体最高速率和能力必须根据具体 FPGA 型号和官方器件文档判断。35. 独立 SerDes 与 FPGA GTY 的区别FPGA GTY结构FPGA Fabric ↓ GTY ↓ High-speed Serial优点灵活可重新配置可以支持多种协议与 FPGA 内部逻辑紧密连接典型PCIe Ethernet Aurora JESD独立 SerDes IC结构FPGA / SoC │ Parallel Interface ↓ External SerDes IC ↓ High-speed Cable / PCB典型优势长距离传输特殊线缆汽车应用工业应用减轻 FPGA 高速 PHY 设计复杂度36. 汽车 SerDes 应用汽车摄像头是独立 SerDes 芯片非常典型的应用。结构Camera Sensor ↓ MIPI / Parallel ↓ Serializer ↓ Coax / STP ↓ Deserializer ↓ MIPI CSI-2 ↓ SoC常见技术GMSL FPD-Link可以支持视频数据控制信号双向通信长距离 CablePower over Coax37. SerDes 与 PHY / MAC 的关系以 Ethernet 为例Application ↓ MAC ↓ PCS ↓ PMA ↓ SerDes ↓ Physical Medium可以粗略记忆MAC 负责帧和协议数据 PCS 负责编码、对齐 PMA / SerDes 负责高速物理 bit PHY 通常包含 PCS PMA SerDes38. PCB 设计注意事项高速 SerDes PCB 设计需要重点关注Differential ImpedanceLength MatchingViaStubConnectorInsertion LossReturn LossCrosstalkReference PlaneAC CouplingJitter常见差分阻抗约 100 Ω Differential具体必须依据协议规范FPGA User GuideSerDes Datasheet不能简单一概而论。39. AC Coupling许多高速接口会使用 AC 耦合TXP ---||------ RXP TXN ---||------ RXN电容主要用于隔离 TX / RX 两侧 DC Common Mode常见电容值可能为100 nF但具体容量和放置位置必须根据协议标准确定。40. Polarity Inversion高速差分对有时可能出现P / N Swap例如TXP → RXN TXN → RXP很多 GTY 支持TXPOLARITY RXPOLARITY可以在内部进行极性翻转。这样 PCB Layout 可以在一定程度上减少差分线交叉。是否允许必须结合具体协议确认。41. Lane ReversalLane Reversal 和 P/N Polarity Inversion 不同。例如 PCIe x4Lane0 → Lane3 Lane1 → Lane2 Lane2 → Lane1 Lane3 → Lane0某些协议允许这种 Lane 顺序反转。其作用主要是降低 PCB Layout 难度42. DRPGTY 中还有重要接口DRP Dynamic Reconfiguration Port通过 DRP 可以在 FPGA 运行过程中访问 GT 内部配置寄存器。典型信号DRPADDR DRPDI DRPDO DRPEN DRPWE DRPRDY可用于动态配置或读取PLLCDREqualizationEye ScanTX ParametersRX Parameters43. IBERTVivado 中非常重要的 GT 调试工具IBERT Integrated Bit Error Ratio TesterIBERT 可以用于PRBS 测试BER 测量Eye ScanPLL 状态检测TX Equalization 调整RX Equalization 调整GT Link Debug对于刚学习 GTY建议先通过 IBERT 熟悉 SerDes而不是一开始直接调试 PCIe 或 Ethernet 协议。44. 典型 GTY 调试流程如果高速 GTY 链路无法 Link Up可以按以下顺序排查1. REFCLK 是否存在且频率正确 ↓ 2. CPLL / QPLL 是否 Lock ↓ 3. TXRESETDONE 是否正常 ↓ 4. RXRESETDONE 是否正常 ↓ 5. TX 是否有高速输出 ↓ 6. RX 是否真正收到高速输入 ↓ 7. CDR 是否 Lock ↓ 8. PRBS 是否通过 ↓ 9. BER 是否正常 ↓ 10. Eye Scan 是否正常 ↓ 11. PCS Alignment 是否完成 ↓ 12. Protocol Training 是否正常这套思路适用于PCIeEthernetAuroraJESD自定义 SerDes45. 一个完整高速链路模型可以用下面这张图理解整个系统TX CPU / FPGA / ASIC │ Parallel Data │ ▼ ┌──────────────┐ │ Encoder / PCS│ └──────┬───────┘ ▼ ┌──────────────┐ │ Serializer │ └──────┬───────┘ ▼ ┌──────────────┐ │ TX Equalizer │ │ TX Driver │ └──────┬───────┘ │ TX/TX- │ ══════════════════════════════ PCB / Cable / Backplane ══════════════════════════════ │ RX/RX- │ ▼ ┌──────────────┐ │ RX Equalizer │ │ CTLE / DFE │ └──────┬───────┘ ▼ ┌──────────────┐ │ CDR │ └──────┬───────┘ ▼ ┌──────────────┐ │Deserializer │ └──────┬───────┘ ▼ ┌──────────────┐ │ Decoder / PCS│ └──────┬───────┘ ▼ Parallel Data │ CPU / FPGA / ASIC46. 核心概念总结SerDesSerDes 是将低速宽位并行数据转换成高速窄位串行数据并在接收端恢复为并行数据的一套高速收发技术。现代高速 SerDes 通常包含Serializer Deserializer PLL CDR TX Equalization RX Equalization PCS PMA PRBS Eye ScanGTYGTY 是AMD / Xilinx FPGA 内部集成的一类高速 SerDes Transceiver 硬核。GTY 可以用于PCIe Ethernet Aurora JESD 高速板间通信 光模块一句话理解 GTY 和 SerDes 的关系SerDes 一种高速串并转换技术 GTY AMD / Xilinx FPGA 内部实现 SerDes 的一种高速收发器资源47. 面试回答模板如果面试官问什么是 SerDes可以回答SerDes 即 Serializer / Deserializer是高速串行通信中的核心技术。发送端通过 Serializer 将 FPGA、CPU 或 ASIC 内部的低速宽位并行数据转换为高速差分串行数据接收端通过 CDR 恢复时钟再经过均衡、解串和数据对齐恢复成并行数据。现代高速 SerDes 通常集成 PLL、CDR、TX 预加重、RX CTLE/DFE、PRBS 和眼图扫描等功能广泛应用于 PCIe、Ethernet、SATA、JESD 和高速板间通信。如果面试官问FPGA GTY 是什么可以回答GTY 是 AMD / Xilinx FPGA 中集成的高速串行收发器硬核本质上属于高速 SerDes PHY。它负责 FPGA 内部并行数据与外部高速差分串行数据之间的转换并集成 Serializer、Deserializer、PLL、CDR、TX Equalization、RX CTLE/DFE、PCS/PMA、PRBS 和 Eye Scan 等功能。多个 GTY Channel 通常组成一个 Quad并可以共享 QPLL 和参考时钟资源。48. 推荐学习顺序学习 GTY / SerDes 建议按以下顺序1. Parallel / Serial 基础 ↓ 2. Serializer / Deserializer ↓ 3. Line Rate / Data Width / User Clock ↓ 4. PLL / Reference Clock ↓ 5. CDR ↓ 6. PCS / PMA ↓ 7. CTLE / DFE / TX Equalization ↓ 8. Jitter / UI / BER / Eye Diagram ↓ 9. PRBS / Loopback ↓ 10. GT Wizard / IBERT ↓ 11. PCIe / Ethernet / JESD 实际协议掌握这套基础以后再看 PCIe PHY、Ethernet PHY、GT Wizard 和 IBERT 时会容易很多。
