Xilinx UltraScale+高速SerDes接口设计要点
在Kintex/ Virtex UltraScale+(US+) 系列FPGA中,集成GTY/GTH/GXP Transceiver可提供 16Gbps~32Gbps(GTY) 的高速串行链路,广泛用于PCIe Gen3/4、10/25/100G Ethernet、JESD204B/C等协议。SerDes设计成败常在参考时钟、复位序列、均衡与通道对齐四个环节。本文提炼US+ SerDes实战要点。
一、参考时钟:质量与路由是第一位
GT收发器对RefClk要求极严:
• 频率匹配:按协议选,如PCIe Gen3常用100MHz(GT RefClk=100MHz),10G Ethernet用156.25MHz或161.1328125MHz。
- 来源:优先使用专用Quad RefClk引脚(MGTREFCLK),禁止从FPGA内部逻辑生成。
• 抖动指标:典型Phase Jitter < 0.5ps RMS(156.25MHz)— 选SiTime/IDT低抖动XO。
- IBUFDS_GTHE3实例化:
IBUFDS_GTHE3 #(.REFCLK_HROW_CK_SEL(2'b00))
u_ibufds_refclk (
.I (refclk_p), .IB(refclk_n),
.ODIV2(), .O(gtrefclk_out)
);
• 同一Quad内多个Channel可共享RefClk,跨Quad需确认REFCLKSEL及时钟树延迟。
二、IP核配置关键选项(IBERT / UltraScale+ GT Wizard)
在 GT Wizard 中重点核对:
选项 推荐设置
Line Rate / RefClk 按协议填,勾选 "Use dedicated refclk pins"
TX/RX Termination Enabled(默认100Ω差分)
RX Equalization (DFE/CTLE) Enable DFE for >8Gbps背板;CTLE适合短链路
TX Pre/Post Emphasis 按PCB损耗设(通常Post-Cursor 0~3dB起步)
Loopback Mode 先设 Near-End Loopback 自检
COMMON/CHANNEL 分离 推荐单独例化 GTHE3_COMMON,便于跨通道共享
生成后先跑IBERT眼图扫描,确认开眼再接对端。
三、复位与初始化状态机(必须严格)
GT核对复位顺序敏感,不按流程易导致PLL未LOCK或PMA不就绪:
// 简化复位序列(在用户时钟域)
parameter LOCK_WAIT_CNT = 16'd5000;
reg [15:0] rst_cnt;
reg gt_pll_locked, gt_reset_done;
always @(posedge stable_clk or negedge rst_n) begin
if (!rst_n) begin
rst_cnt <= 0;
gt_reset_done <= 1'b0;
QPLLRESET <= 1'b1;
GTRXRESET <= 1'b1;
GTTXRESET <= 1'b1;
end else if (!gt_pll_locked) begin
QPLLRESET <= 1'b0; // 释放QPLL/CPLL复位等Lock
end else if (rst_cnt < LOCK_WAIT_CNT) begin
rst_cnt <= rst_cnt + 1;
end else begin
GTRXRESET <= 1'b0; // 先RX后TX
GTTXRESET <= 1'b0;
gt_reset_done <= 1'b1;
end
end
always @(posedge stable_clk)
gt_pll_locked <= CPLLLOCKDET || QPLLLOCKDET;
关键点:
• 等 CPLL_LOCK / QPLL_LOCK 为高再释放 RX/TX RESET
• 用 RXRESETDONE / TXRESETDONE 确认完成
• 若使用RX弹性缓冲,等 RXBUFSTATUS[2]=0(无overflow/underflow)
四、通道绑定与对齐(多-Lane应用)
JESD204B / 10G Ethernet等多Lane需Channel Bonding:
• 在Wizard中使能 RX SLIP 与 CHANNEL BONDING
- 所有Lane需连同一 RXCOMMADET 或对齐字符(如 K28.5 / /K/)
• 监控 RXCHBONDO / RXCHBONDI 确认Bonding完成
• 若Lane间Skew > Lane Bonding Window,需检查PCB等长(US+通常容忍≤10UI)
五、板级调试与眼图优化
1. IBERT扫眼图:在Vivado Hardware Manager中Insert IBERT Core,调节RX CTLE/DFE与TX Pre/Post,记录最佳Settings写入项目中。
2. 测量差分幅值:用高带宽差分探头测TX+/TX-,确认≥400mVpp(典型800mVpp)。
3. 检查Loss:>20dB@Nyquist时须开启TX De-emphasis与RX DFE。
4. 伪误码率:若IBERT BER > 1e-12 需查电源噪声(MGTAVCC纹波<30mV)及回流路径。
六、常见故障速查
现象 原因 对策
PLL不LOCK RefClk频率/电平错或未到专用脚 量测RefClk波形;确认IBUFDS_GTHE3例化
能LOCK但无数据 RX极性反(/P/N反接)或8b/10b禁用错配 尝试 RXPOLARITY=1;核对编码
偶发误码 PCB损耗大未开DFE或TX预加重不足 IBERT调CTLE/DFE+TX Post-Cursor
多Lane不对齐 未使能Channel Bond或COMMA字符不匹配 确认Alignment Char一致且Bonding使能
热插拔后死锁 复位未重触发 监测链路Down后重新拉GT??RESET
七、结语
UltraScale+ SerDes设计要诀:优质专用RefClk → 按Wizard配均衡 → 严格PLL→RX/TX复位顺序 → IBERT眼图验证 → 多Lane做Channel Bonding。把这四步做到位,GTY/GTH链路在PCIe、JESD204B/C及Ethernet应用中均可稳定跑至标称线速率。





