ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

GTY_IP核使用教程

GTY_IP核使用教程 FPGA 开发中 GTY IP 核使用教程适用平台Vivado 17.4目标器件Xilinx Virtex UltraScale xcvu9pGTYE4 原语参考手册UG578UltraScale Architecture GTY Transceivers User Guide、PG182UltraScale FPGAs Transceivers Wizard目录GTY 收发器概述硬件架构原理时钟架构详解Vivado 17.4 中 GTY Wizard 使用步骤核心参数含义详解接口信号说明复位与初始化流程典型应用配置示例调试方法与常见问题注意事项与最佳实践1. GTY 收发器概述1.1 什么是 GTYGTYGigabit Transceiver Y 系列是 Xilinx UltraScale / UltraScale 架构 FPGA 中的高性能高速串行收发器属于 RocketIO 系列。在 UltraScale 器件如 xcvu9p中GTY 原语名为GTYE4_CHANNEL和GTYE4_COMMON。关键性能指标xcvu9p-2 速度等级参数指标线速率范围500 Mb/s ~ 32.75 Gb/s单芯片通道数最高 76 个 GTY 通道支持编码8B/10B、64B/66B、64B/67B、Raw无编码前向纠错可选集成 RS-FEC部分速率PLL 类型CPLL通道级、QPLL0/QPLL1Quad 级共享1.2 GTY 在系统中的位置GTY 位于 FPGA 物理层PHY负责将 FPGA 内部的并行数据转换为高速串行信号通过差分引脚发送出去同时将接收到的高速串行信号恢复为并行数据。典型应用包括10G/25G/100G 以太网CAUI-4、10GBASE-RPCIe Gen3/Gen4Aurora 协议CPRI / eCPRIJESD204B/CInterlaken自定义高速串行链路2. 硬件架构原理2.1 Quad 组织结构GTY 以Quad四通道组为基本组织单元┌─────────────────────────────────────────────┐ │ GTYE4_COMMON │ │ ┌──────────┐ ┌──────────┐ │ │ │ QPLL0 │ │ QPLL1 │ │ │ └──────────┘ └──────────┘ │ ├──────────┬──────────┬──────────┬────────────┤ │ Channel 0│ Channel 1│ Channel 2│ Channel 3 │ │ ┌──────┐ │ ┌──────┐ │ ┌──────┐ │ ┌──────┐ │ │ │ CPLL │ │ │ CPLL │ │ │ CPLL │ │ │ CPLL │ │ │ │ TX │ │ │ TX │ │ │ TX │ │ │ TX │ │ │ │ RX │ │ │ RX │ │ │ RX │ │ │ RX │ │ │ └──────┘ │ └──────┘ │ └──────┘ │ └──────┘ │ └──────────┴──────────┴──────────┴────────────┘1 个 GTYE4_COMMON包含 2 个 Quad 级 PLLQPLL0、QPLL1供同一 Quad 内 4 个通道共享。4 个 GTYE4_CHANNEL每个通道包含独立的 CPLL、发送器TX和接收器RX。一个 Quad 有 2 对专用参考时钟引脚GTREFCLK0、GTREFCLK1。2.2 PMA 与 PCS 分层架构每个通道的 TX 和 RX 均由PMAPhysical Media Attachment物理媒介适配层和PCSPhysical Coding Sublayer物理编码子层两部分组成。2.2.1 PMA 子层模拟/混合信号部分PMA 负责高速模拟信号处理是决定线速率和信号完整性的关键模块功能SERDES串并转换TX 侧并行→串行PISORX 侧串行→并行SIPOTX 驱动器Driver差分输出驱动可配置输出摆幅、预加重Pre-emphasisRX 均衡器EQ补偿传输线高频衰减包含 CTLE连续时间线性均衡和 DFE判决反馈均衡CDR时钟数据恢复从接收数据流中恢复时钟无需单独传输时钟CPLL通道级锁相环由参考时钟产生串行位时钟RX 端接Termination可编程片上端接电阻匹配传输线阻抗数据流方向TXFPGA 逻辑 → PCS → PMA并→串→ 差分引脚输出RX差分引脚输入 → PMA串→并CDR→ PCS → FPGA 逻辑2.2.2 PCS 子层数字逻辑部分PCS 负责并行数据的编码处理和链路管理模块功能8B/10B 编/解码器将 8bit 数据编码为 10bit保证直流平衡和足够跳变沿支持 K 码控制字符64B/66B 编/解码器更高编码效率97% vs 80%用于 10G/25G 以太网等弹性缓冲Elastic Buffer补偿恢复时钟RXUSRCLK与本地并行时钟RXUSRCLK2之间的频率差通道绑定Channel Bonding多通道间通过 K 码对齐实现宽并行接口时钟修正Clock Correction通过插入/删除特定 K 码如 IDLE补偿时钟偏差Comma 检测与对齐检测特定序列如 K28.5实现字节边界对齐Gearbox变速箱在内部数据位宽和用户接口位宽之间进行转换CRC 校验部分协议支持的帧校验3. 时钟架构详解3.1 时钟整体结构外部差分参考时钟 (GTREFCLK) │ ▼ ┌─────────────┐ │ IBUFDS_GTE4 │ → 单端参考时钟 └─────────────┘ │ ┌────┴────┐ ▼ ▼ ┌──────┐ ┌──────┐ │ CPLL │ │ QPLL │ → 产生高速串行时钟 └──────┘ └──────┘ │ │ ▼ ▼ TX/RX 串行位时钟 │ ▼ OUT_DIV输出分频器 │ ▼ TXUSRCLK / RXUSRCLKPCS 内部并行时钟 │ ▼ TXUSRCLK2 / RXUSRCLK2用户接口时钟3.2 CPLL vs QPLL 选择特性CPLLQPLL位置每个 Channel 独立Quad 内 4 通道共享QPLL0/QPLL1支持线速率较低一般 ≤ 16.375 Gb/s较高可达 32.75 Gb/s抖动性能一般更好LC 谐振回路资源占用每通道 1 个每 Quad 仅 2 个适用场景中低速率、各通道独立时钟高速率、多通道同速率选择原则线速率≤ 6.5 Gb/s优先 CPLL节省 QPLL 资源线速率 6.5 Gb/s推荐 QPLL线速率 16.375 Gb/s必须使用 QPLL同一 Quad 内多通道需要相同高速时钟使用 QPLL 共享3.3 参考时钟方案每个 GTY 通道有 6 个可选参考时钟源GTREFCLK0本 Quad 的参考时钟引脚 0GTREFCLK1本 Quad 的参考时钟引脚 1GTSOUTHREFCLK0/1来自南侧上方相邻 Quad 的参考时钟GTNORTHREFCLK0/1来自北侧下方相邻 Quad 的参考时钟共享参考时钟规则参考时钟可向北/向南路由最多跨越2 个 Quad一个外部参考时钟源最多驱动5 个 Quad20 个通道优先使用本地本 Quad参考时钟减少抖动3.4 用户时钟计算用户侧使用的时钟是TXUSRCLK2和RXUSRCLK2其频率计算公式TXUSRCLK 频率 线速率 / 内部数据位宽 TXUSRCLK2 频率 线速率 / (用户数据位宽 / 编码效率系数)示例8B/10B 编码线速率 10 Gbps用户数据位宽 32bit内部数据位宽 40bit32bit 数据 8bit 控制TXUSRCLK 10 Gbps / 40 250 MHzTXUSRCLK2 TXUSRCLK / (32 / 0.8) 250 MHz注意TXUSRCLK 是 PCS 内部工作时钟TXUSRCLK2 是用户逻辑接口时钟。两者频率关系由TX_INT_DATAWIDTH和TX_DATA_WIDTH决定。IP 核生成时会自动例化 BUFG_GT 缓冲并输出这些时钟。4. Vivado 17.4 中 GTY Wizard 使用步骤4.1 创建 IP 核在 Vivado 工程的Flow Navigator中点击IP Catalog搜索“GTY”或“Transceiver Wizard”找到“UltraScale FPGAs Transceivers Wizard”版本对应 Vivado 17.4 为 v1.7双击打开配置界面设置组件名称如gty_example4.2 配置页面总览Wizard 共有 4 个选项卡选项卡内容Basic线速率、参考时钟、PLL 选择、编码方式、数据位宽Physical Resources通道选择、参考时钟源选择、自由运行时钟Optional Features逗号检测、通道绑定、时钟修正、环路测试、均衡等Structural Options共享逻辑包含方式、调试端口等5. 核心参数含义详解5.1 Basic 选项卡5.1.1 Transmitter / Receiver 基础参数参数含义配置建议Line Rate (Gb/s)串行线速率即每通道每秒传输的比特数根据协议要求设置如 10.312510G以太网、25.7812525GPLL Selection选择 CPLL 或 QPLL0/QPLL1见 3.2 节选择原则Reference Clock (MHz)外部参考时钟频率必须与硬件原理图一致常用 100、125、156.25 MHzEncoding编码方式None / 8B/10B / 64B/66B / 64B/67B根据协议选择自定义链路常用 8B/10BUser Data Width用户侧并行数据位宽8B/10B 时可选 16/32/64影响用户时钟频率Internal Data WidthPCS 内部数据位宽由编码和用户位宽自动推算一般无需手动改5.1.2 QPLL Fractional-N 选项使用 QPLL 时出现参数含义Requested fractional partQPLL 分数分频的小数部分用于精确匹配非标准线速率Resulting fractional part实际计算得到的分数部分QPLL feedback dividerQPLL 反馈分频器值N决定 VCO 频率QPLL 支持Fractional-N分频可以产生更精确的线速率CPLL 仅支持整数分频。5.1.3 TX 高级参数参数含义配置建议TXOUT_DIVTX 输出分频器可选 1、2、4、8由线速率和 PLL 输出自动计算一般保持 AutoTX Diff swing差分输出摆幅mV控制发送信号幅度根据传输介质和对端要求调整默认即可TX Pre-emphasis / Post-cursor发送预加重补偿高频衰减长距离/高损耗通道时增大短距离可减小以降功耗TX Polarity发送极性翻转PCB 走线 P/N 反接时使用TX Buffer发送缓冲器使能一般启用EnableBypass 模式需要精确相位对齐5.1.4 RX 高级参数参数含义配置建议RXOUT_DIVRX 输出分频器同 TXOUT_DIVRX Termination接收端接模式Internal / External / Disable一般使用 Internal片内 100Ω 差分端接RX Equalization接收均衡模式Auto / Manual / LPM / DFE高速率长距离用 DFE中低速率用 LPM新手推荐 AutoInsertion loss at Nyquist (dB)通道在奈奎斯特频率的插入损耗配合 Auto 均衡使用根据 PCB/SFP 通道损耗估算RX Polarity接收极性翻转同 TX PolarityRX Buffer接收弹性缓冲一般启用用于时钟域交叉5.2 Physical Resources 选项卡参数含义Free-running and DRP clock frequency (MHz)自由运行时钟频率用于复位状态机和 DRP动态重配置端口接口。必须是稳定的、不受 GT 复位影响的时钟TX Master channel / RX Master channel主通道选择多通道绑定配置时用于指定主通道Channel table通道使能与物理位置分配•Enable勾选使用该通道•TX REFCLK source该通道 TX 的参考时钟源如 MGTREFCLK0•RX REFCLK source该通道 RX 的参考时钟源•RXRECCLKOUT buffer是否将恢复时钟输出到引脚xcvu9p 通道命名格式为GTYE4_CHANNEL_X0Y44其中 X 表示列号Y 表示通道序号。一个 Quad 包含连续 4 个 Y 号通道。5.3 Optional Features 选项卡5.3.1 逗号检测与对齐8B/10B 时参数含义Valid comma values选择检测所有 8B/10B 逗号或仅 IEEE 802.3 标准逗号Plus comma / Minus comma正/负逗号的 10bit 值默认 K28.50101111100 / 1010000011Mask逗号检测掩码1 表示该位参与比较Alignment boundary对齐边界Any byte boundary / 2-byte / 4-byte。决定逗号在用户数据字中的允许位置Show realign comma显示重新对齐状态输出Manual alignment (RXSLIDE) mode手动滑动对齐模式一般 Off逗号对齐边界选择参考用户数据位宽内部位宽可选对齐边界16 (2-byte)201, 232 (4-byte)401, 2, 464 (8-byte)801, 2, 45.3.2 通道绑定Channel Bonding参数含义Channel Bonding使能多通道绑定实现多 lane 同步传输Bonding Sequence用于绑定的 K 码序列如 K28.5 重复Master/Slave指定主从通道从通道跟随主通道对齐5.3.3 时钟修正Clock Correction参数含义Clock Correction使能时钟修正通过插入/删除 IDLE 字符补偿收发时钟偏差Correction Sublist用于修正的字符通常是 IDLE K28.5Buffer Level弹性缓冲水位阈值决定何时插入/删除5.3.4 其他可选功能参数含义Loopback内部环回模式None / Near-End PCS / Near-End PMA / Far-End PMA / Far-End PCS。用于调试RX PRBS / TX PRBS伪随机码生成/检测用于眼图和误码率测试TX Pattern Generator发送测试图案生成器5.4 Structural Options 选项卡参数含义Shared Logic in Core共享逻辑如复位模块、时钟缓冲包含在 IP 核内部还是 Example Design 中Include Shared Logic in Example Design将共享逻辑放在示例设计中便于用户修改复位逻辑Debug Ports使能调试端口如 DRP、状态监控便于在线调试6. 接口信号说明6.1 系统接口信号方向含义gt_refclk0_p / gt_refclk0_n输入差分参考时钟对应所选参考时钟源gtwiz_userclk_tx_reset输入用户发送时钟域复位高有效gtwiz_userclk_rx_reset输入用户接收时钟域复位高有效gtwiz_reset_clk_freerun输入自由运行时钟驱动复位状态机和 DRPgtwiz_reset_all输入全局复位高有效触发完整 GT 复位序列6.2 时钟输出信号方向含义gtwiz_userclk_tx_usrclk2输出TX 用户接口时钟TXUSRCLK2用户逻辑用此时钟发送数据gtwiz_userclk_tx_usrclk输出TX PCS 内部时钟TXUSRCLKgtwiz_userclk_rx_usrclk2输出RX 用户接口时钟RXUSRCLK2gtwiz_userclk_rx_usrclk输出RX PCS 内部时钟RXUSRCLK6.3 发送数据接口8B/10B32bit 数据为例信号方向位宽含义gtwiz_userdata_tx_data输入32发送数据在 tx_usrclk2 上升沿采样gtwiz_userdata_tx_charisk输入4每字节对应 1bit1 表示该字节为 K 码控制字符6.4 接收数据接口8B/10B32bit 数据为例信号方向位宽含义gtwiz_userdata_rx_data输出32接收数据gtwiz_userdata_rx_charisk输出41 表示对应字节为 K 码gtwiz_userdata_rx_disperr输出41 表示对应字节存在极性错误gtwiz_userdata_rx_notintable输出41 表示对应字节不在 8B/10B 有效码表中6.5 状态信号信号方向含义gtwiz_reset_tx_done输出TX 复位完成标志高表示 TX 已就绪gtwiz_reset_rx_done输出RX 复位完成标志gtwiz_reset_all_done输出全部复位完成rxpmaresetdone/txpmaresetdone输出PMA 复位完成原始通道信号rxprgdivresetdone/txprgdivresetdone输出可编程分频器复位完成6.6 串行接口信号方向含义gtxn[0] / gtxp[0]输出TX 差分串行数据输出每通道一对grxn[0] / grxp[0]输入RX 差分串行数据输入每通道一对7. 复位与初始化流程7.1 复位层次GTY 复位分为三个层次必须按顺序执行1. GT COMMON 复位QPLL 复位 │ ▼ 2. TX CHANNEL 复位CPLL TX PMA TX PCS │ ▼ 3. RX CHANNEL 复位RX PMA RX PCS CDR7.2 初始化时序上电/配置完成 │ ▼ gtwiz_reset_all 1至少保持几个自由时钟周期 │ ▼ 释放复位IP 内部状态机自动执行 ├── QPLL/CPLL 复位 → 等待锁定 ├── TX PMA 复位 → TX 初始化 ├── RX PMA 复位 → CDR 锁定 └── PCS 复位 → 弹性缓冲初始化 │ ▼ gtwiz_reset_tx_done 1 → TX 可发送数据 gtwiz_reset_rx_done 1 → RX 可接收数据关键时间参数PLL 锁定时间典型几微秒 ~ 几十微秒TX 初始化完成约 30 μs参考值具体取决于速率RX 初始化完成需等待对端发送有效数据后 CDR 才能锁定7.3 复位注意事项自由运行时钟必须稳定复位状态机由gtwiz_reset_clk_freerun驱动该时钟不能来自 GT 本身复位顺序不可乱必须先 COMMON 后 CHANNEL先 TX 后 RX或同时热复位运行中重新复位时建议先拉低gtwiz_reset_all等待所有 done 信号变低后再释放用户逻辑复位gtwiz_userclk_tx_reset和gtwiz_userclk_rx_reset用于复位用户侧逻辑应在 GT 复位完成后释放8. 典型应用配置示例8.1 示例一10Gbps 8B/10B 自定义链路单通道回环应用场景板间高速数据传输使用 8B/10B 编码SFP 光模块。参数值Line Rate10.0 Gb/sPLL SelectionQPLL0Reference Clock156.25 MHzEncoding8B/10BUser Data Width32 bitInternal Data Width40 bitTX/RX PolarityNormalRX EqualizationAutoComma DetectionEnableK28.5Alignment BoundaryAny byte boundaryFree-running Clock100 MHz用户时钟计算TXUSRCLK2 10 Gbps / 40 250 MHz用户逻辑在 250 MHz 时钟域下每时钟周期传输 32bit 数据 4bit K 码标志8.2 示例二25Gbps 64B/66B 以太网CAUI-4 四通道应用场景100G 以太网4 通道 × 25.78125 Gbps。参数值Line Rate25.78125 Gb/sPLL SelectionQPLL0四通道共享Reference Clock156.25 MHzEncoding64B/66BUser Data Width64 bitChannel BondingEnable4 通道绑定Clock CorrectionEnableTX/RX CRCEnable8.3 示例三低速率 Aurora 风格链路CPLL应用场景3.125 Gbps 板内互连使用 CPLL。参数值Line Rate3.125 Gb/sPLL SelectionCPLLReference Clock156.25 MHzEncoding8B/10BUser Data Width16 bitTX Pre-emphasis较低值短距离RX EqualizationLPM低功耗9. 调试方法与常见问题9.1 常用调试手段9.1.1 内部环回测试在 Optional Features 中设置 Loopback 模式环回模式路径用途Near-End PMATX PMA → RX PMA不经过引脚验证 PMA 和 PLL 配置Near-End PCSTX PCS → RX PCS验证 PCS 编码/解码逻辑Far-End PMARX PMA → TX PMA经过引脚外部连线验证外部通道调试步骤先配置 Near-End PMA 环回确认 GT 本身工作正常再配置外部物理环回SFP 环回头或 PCB 连线验证通道完整性最后连接对端设备进行真实通信9.1.2 PRBS 测试使能 TX/RX PRBS 生成和检测支持 PRBS-7、PRBS-15、PRBS-23、PRBS-31 等标准多项式rxprbserr信号计数误码用于评估信号质量配合 Vivado 在线逻辑分析仪ILA观察误码率9.1.3 IBERT IP 核对于更专业的眼图和抖动分析使用IBERT for UltraScale GTYIP 核可实时观察眼图测量浴盆曲线Bathtub Curve调整 TX 摆幅/预加重和 RX 均衡参数支持多通道批量测试9.1.4 DRP 动态重配置通过 DRPDynamic Reconfiguration Port接口在运行时读写 GT 内部寄存器动态调整 TX 摆幅、预加重动态切换线速率需重新配置 PLL读取 RX 均衡状态、CDR 锁定状态9.2 常见问题排查问题 1复位 done 信号不拉高可能原因参考时钟未接入或频率错误PLL 参数配置不当无法锁定自由运行时钟未连接通道物理位置选择错误排查方法用示波器测量参考时钟引脚确认频率和幅度检查qplllock/cplllock信号是否拉高确认自由运行时钟正常且频率在 3.125~250 MHz 范围问题 2RX 接收数据乱码可能原因逗号未对齐rxbyteisaligned未拉高8B/10B 解码错误notintable/disperr持续为高信号质量差CDR 未正确锁定TX/RX 极性设置错误排查方法检查rxbyteisaligned信号观察rxdisperr和rxnotintable确认是否有持续误码尝试翻转 RX Polarity增大 RX 均衡或 TX 预加重问题 3链路时通时断可能原因信号质量裕量不足弹性缓冲溢出/下溢时钟修正未使能或参数不当参考时钟抖动过大排查方法使用 PRBS 测试长时间误码率检查弹性缓冲水位通过 DRP 读取确认收发两端参考时钟同源或频率偏差在允许范围问题 4多通道绑定失败可能原因通道未在同一 Quad 或相邻 Quad绑定序列配置不一致主从通道设置错误排查方法确认绑定通道使用相同的 QPLL 和参考时钟检查rxchanbondseq检测状态确认各通道复位时序一致10. 注意事项与最佳实践10.1 硬件设计相关参考时钟源使用低抖动晶振如 Si570抖动性能直接影响链路质量差分对走线TX/RX 差分对严格等长、阻抗控制100Ω 差分、避免过孔电源完整性GTY 模拟电源MGTAVTT、MGTAVCC需良好滤波推荐使用磁珠隔离端接优先使用片内端接减少外部元件和寄生参数10.2 逻辑设计相关时钟域划分TX 用户逻辑在tx_usrclk2域RX 在rx_usrclk2域两者可能不同频跨域需异步 FIFO数据有效控制8B/10B 模式下无有效数据时应发送 IDLEK28.5保持 CDR 锁定K 码使用K28.5BC最常用作逗号/IDLEK28.0~K28.7 中 K28.3/K28.7 也常用作流程控制复位同步用户逻辑复位应在对应时钟域做同步释放处理10.3 IP 核使用相关Shared Logic 选择初学建议 “Include Shared Logic in Core”需要自定义复位时选 Example Design版本匹配Vivado 17.4 对应 Wizard v1.7升级 Vivado 后 IP 可能需要升级不要手动例化 GTYE4 原语除非非常熟悉否则使用 Wizard 生成避免遗漏关键属性保留 Example Design生成 IP 后可打开 Example Design 作为参考包含完整的复位和数据通路示例10.4 资源与功耗QPLL 资源有限每 Quad 仅 2 个 QPLL规划通道时注意速率分组未使用通道可通过 Wizard 禁用节省功耗均衡功耗DFE 模式功耗高于 LPM中低速率优先 LPMTX 预加重过大的预加重增加功耗和 EMI满足眼图即可附录 A8B/10B 常用 K 码K 码8bit 值10bit 编码正/负常用用途K28.00x1C0011111100 / 1100000011流程控制K28.10x3C0011111010 / 1100000101流程控制K28.20x5C0011110100 / 1100001011流程控制K28.30x7C0011110010 / 1100001101流程控制K28.50xBC0101111100 / 1010000011逗号/IDLE最常用K28.60xDC0011110110 / 1100001001流程控制K28.70xFC0011111000 / 1100000111流程控制附录 B关键公式速查线速率 用户时钟频率 × 用户数据位宽 × 编码系数 8B/10B 编码系数 10/8 1.25 64B/66B 编码系数 66/64 ≈ 1.03125 TXUSRCLK 线速率 / 内部数据位宽 TXUSRCLK2 TXUSRCLK / (用户位宽/内部位宽对应的分频比) VCO 频率 参考时钟频率 × (FBDIV / REFCLK_DIV) 线速率 VCO 频率 / OUT_DIV × 2DDR 模式附录 Cxcvu9p GTY 资源速查器件xcvu9p-flga2104-2L-eVCU118 开发板所用GTY 通道数76 个19 个 Quad最高线速率-2 等级支持 26.0 Gb/s-3 等级支持 32.75 Gb/s参考时钟引脚每 Quad 2 对GTREFCLK0、GTREFCLK1Bank 编号GTY Bank 通常为 132~139 等具体见器件封装手册文档说明本教程基于 Vivado 17.4 和 xcvu9p 编写GTY 架构在 UltraScale 全系列通用。具体参数取值请以 Xilinx 官方文档 UG578 和 PG182 为准并结合实际硬件原理图进行配置。
返回列表