3. 高速接口协议与电气标准概览

在AMD FPGA上做高速接口集成,第一步不是打开Vivado去点IP,而是先判断“这条链路到底属于哪一类协议、跑在什么电气层、FPGA里由哪块硬核或软核来承担”。同一颗器件上,PCIe、Ethernet、JESD204、SATA、DisplayPort往往共用同一批高速收发器(GT)资源,但它们的参考时钟、编码方式、通道绑定、均衡需求和协议栈分层完全不同。理解这些差异,才能正确分配GT Quad、选择参考时钟、规划PCB走线,并在调试时知道该看哪个状态位。

一、五类协议在AMD FPGA中的承载方式

AMD 7系列及UltraScale/UltraScale+器件中,高速串行接口主要由GTH/GTY/GTM/GTP等收发器承载,协议支持分为“硬核”和“软核”两类:

  • PCIe:7系列有集成PCIe硬核(PCIE_2_1),UltraScale+有PCIe Gen3/Gen4硬核,配合XDMA或AXI Bridge IP使用。硬核负责物理层与数据链路层,用户只需接AXI接口。
  • Ethernet:1G/2.5G用GEM(硬核MAC)或AXI Ethernet IP;10G/25G用10G/25G Ethernet Subsystem,MAC+PCS由IP实现,PMA由GT承担。
  • JESD204:JESD204B/C Subsystem IP,物理层由GT实现,链路层、帧对齐、弹性缓冲由IP逻辑完成,需外部SYSREF和Device Clock。
  • SATA:通常用GTP/GTX加SATA协议IP(软核),或通过Aurora/自定义逻辑实现,AMD无通用SATA硬核。
  • DisplayPort:DisplayPort 1.4/2.0 IP,物理层由GT承载,支持视频流与辅助通道(AUX)分离。

关键点:GT是共享资源。一个Quad内四个通道可分别给不同协议,但参考时钟通常按Quad或Bank共享,必须提前规划。

二、电气规范与参考时钟

各协议的电气层差异直接决定参考时钟频率和GT配置:

协议典型速率参考时钟编码/均衡
PCIe Gen38 GT/s100 MHz128b/130b,DFE+CTLE
10G Ethernet10.3125 Gbps156.25 MHz64b/66b,DFE
JESD204B3.125~12.5 GbpsDevice Clock + SYSREF8b/10b或64b/66b
SATA 3.06 Gbps75 MHz或150 MHz8b/10b,OOB信号
DisplayPort 1.41.62~8.1 Gbps/lane27 MHz或135 MHz8b/10b,AUX独立

参考时钟必须满足协议规定的抖动容限。例如PCIe Gen3要求100 MHz参考时钟RMS抖动小于1 ps(典型值),而JESD204B对SYSREF的建立/保持时间有严格要求,SYSREF必须与Device Clock同源且相位对齐。实际设计中,若一个Quad内混用PCIe和Ethernet,需确认参考时钟能否同时满足两者抖动要求,否则应分Quad放置。

注意:SATA和DisplayPort的参考时钟频率与PCIe/Ethernet不同,不能简单共用同一路时钟。若必须共享,需使用可编程时钟芯片(如Si5341)输出多路独立时钟。

三、协议分层与FPGA内部映射

从FPGA视角看,每个协议都映射为“GT PMA/PCS + 协议逻辑 + 用户接口”三层。以PCIe Gen3 x4为例:GT负责串并转换、均衡、时钟恢复;硬核PCIe负责TLP包处理、流控、配置空间;用户侧通过AXI4或AXI-Stream访问。Ethernet 10G则不同:GT+PCS由IP完成,MAC层处理帧过滤、CRC,用户侧是AXI-Stream。JESD204B更特殊:GT只做SerDes,链路层需要处理多帧对齐、弹性缓冲、SYSREF采样,用户侧是ADC/DAC数据流。

AMD FPGA高速接口协议分层与GT资源映射 GT Quad(共享PMA/PLL) GT Channel 0 PCIe Gen3 x1 GT Channel 1 10G Ethernet GT Channel 2 JESD204B GT Channel 3 DisplayPort 参考时钟分配 100 MHz (PCIe) | 156.25 MHz (Ethernet) | Device Clock + SYSREF (JESD204B) | 27 MHz (DP) 协议逻辑层(硬核/软核IP) PCIe Hard Core 10G Eth MAC+PCS JESD204B Link DP Video+AUX 用户接口 AXI4 / AXI-Stream AXI-Stream ADC/DAC数据流 Video Stream

四、实际配置中的关键参数与判断依据

以JESD204B为例,配置时需确定以下参数:L(通道数)、M(转换器数)、F(每帧字节数)、K(每多帧帧数)、S(每帧采样数)。假设ADC采样率250 MSPS,14位,8b/10b编码,L=4,M=2,则线速率 = (M × S × N' × 10/8) / L。若N'=16,S=1,则线速率 = (2×1×16×1.25)/4 = 10 Gbps。此时GT需配置为10 Gbps,参考时钟选择Device Clock = 250 MHz,SYSREF = 250/4 = 62.5 MHz(需为整数倍关系)。

PCIe Gen3 x4的配置则关注:链路宽度、最大 payload 大小、参考时钟100 MHz、GT的DFE均衡设置。在Vivado中,通过PCIe IP核的“Board”标签选择正确的参考时钟来源,并在XDC中约束GTREFCLK的引脚位置。若链路训练失败,首先检查LTSSM状态机是否卡在Detect或Polling,通常与参考时钟缺失或极性反转有关。

调试建议:用IBERT(Integrated Bit Error Ratio Tester)先验证GT链路误码率。对PCIe,眼图扫描应满足Gen3模板;对JESD204B,需确认SYSREF采样窗口在数据眼图中央。IBERT的扫描结果可直接判断PCB走线损耗是否在均衡能力范围内。

五、协议选择与资源分配速查

实际项目中,若需要同时使用PCIe和JESD204B,建议将PCIe放在独立Quad,JESD204B放在相邻Quad但使用独立参考时钟。Ethernet和SATA可共用GT,但需注意SATA的OOB信号要求GT支持带外信令。DisplayPort的AUX通道是低速差分对,不占用GT,可接到普通LVDS引脚。

最后,所有协议的电气规范都要求关注:差分阻抗100Ω、AC耦合电容(PCIe/SATA/DP需AC耦合,Ethernet视PHY而定)、参考时钟抖动、以及GT的预加重/均衡设置。这些参数在Vivado的GT Wizard中均可配置,但必须与PCB设计和协议规范一致,否则链路无法稳定工作。