2. Zynq高速串行链路架构解析
在Zynq UltraScale+ MPSoC平台上,高速串行链路并不是一个孤立外设,而是由PS(Processing System)与PL(Programmable Logic)两侧资源协同构成的完整信号通路。理解这条通路的架构,是后续调试、误码定位和协议验证的前提。本节以一条典型的10.3125 Gbps GTY链路为例,梳理收发器、参考时钟、复位、电源与协议控制器之间的连接关系。
一、PS与PL的分工边界
Zynq的PS端集成GTR收发器(基于GTH/GTY同类SerDes技术),主要服务于PS侧的PCIe、SATA、DisplayPort和USB3.0等固定协议控制器。这些控制器由PS内部硬核实现,用户可配置空间有限,通常通过PetaLinux或裸机驱动完成初始化。PL端的GTH/GTY则是完全可编程的收发器资源,位于PL的收发器Bank中,可自由绑定到Aurora、JESD204B、10G Ethernet、SRIO或用户自定义协议。两者在物理上分属不同Bank,参考时钟、复位和电源域也相互独立,这是架构解析的第一条分界线。
需要特别注意的是,PS端GTR与PL端GTH/GTY虽然都叫“高速收发器”,但它们的时钟源、配置接口和可观测性完全不同。PS端GTR的参考时钟通常来自专用时钟引脚或内部PLL,调试时主要依赖PS寄存器;PL端GTH/GTY则通过IBUFDS_GTE4等原语接入外部参考时钟,并通过DRP(Dynamic Reconfiguration Port)或AXI4-Lite访问其内部寄存器。混淆两者会导致调试方向错误。
二、参考时钟的连接与约束
PL端GTH/GTY的参考时钟必须从专用时钟引脚(如MGTREFCLK0/1)差分输入,经IBUFDS_GTE4缓冲后送入Quad的PLL。一个Quad包含四个收发器通道,共享两对参考时钟。参考时钟频率由线速率和编码方式决定:例如10.3125 Gbps的64b/66b编码链路,参考时钟常选156.25 MHz,经PLL倍频后得到线速率时钟。参考时钟的抖动和相位噪声直接影响CDR(时钟数据恢复)的稳定性,因此PCB上要求参考时钟走线短、阻抗受控、远离噪声源。
PS端GTR的参考时钟则来自PS专用的时钟输入或内部时钟网络,其频率选择受PS配置约束。在Vivado中配置PS时,需要明确选择GTR的参考时钟来源,并确保与外部晶振或时钟芯片匹配。若参考时钟缺失或频率偏差过大,链路会停留在复位状态,无法进入正常收发。
三、复位与电源的层次关系
PL端GTH/GTY的复位分为多个层次:上电复位、Quad复位、通道复位和TX/RX复位。上电后,首先释放Quad的PLL复位,等待PLL锁定;然后释放通道复位,使CDR和均衡器开始工作;最后释放TX/RX数据路径复位。复位顺序错误会导致PLL未锁定就启动通道,链路无法建立。Vivado的GTH/GTY Wizard会自动生成复位状态机,但调试时仍需通过ILA观察复位完成信号(如gt_powergood、gt_pll_lock、gt_rx_reset_done)。
电源方面,GTH/GTY需要多路供电:VCCINT(核心电压)、VCCAUX(辅助电压)、VCCAUX_IO(I/O辅助电压)以及MGTAVCC和MGTAVTT(收发器模拟电源)。MGTAVCC通常为0.9V或1.0V,MGTAVTT为1.2V,要求低噪声、高精度。电源纹波过大会直接恶化眼图,表现为误码率上升。PS端GTR的电源由PS电源域统一管理,通常与PL端分开供电,调试时需分别测量。
四、协议控制器的连接关系
PL端GTH/GTY与协议控制器的连接通过AXI4-Stream或原生用户接口完成。以Aurora 64b/66b为例,收发器的TX数据接口接收来自协议控制器的AXI4-Stream数据,RX数据接口将恢复的数据送往协议控制器。协议控制器负责成帧、CRC校验、流控和重传。参考时钟和复位信号则通过专用端口接入收发器原语。在Vivado Block Design中,这些连接通常由IP Integrator自动完成,但调试时需要确认时钟域交叉和复位同步是否正确。
PS端GTR与协议控制器的连接是硬核内部固定的,用户无法更改。例如PS的PCIe控制器直接绑定到GTR通道,参考时钟和复位由PS内部管理。调试PS端链路时,主要关注PS寄存器中的链路状态、LTSSM状态机和错误计数器。
五、调试视角下的连接检查顺序
面对一条无法建立的高速串行链路,建议按以下顺序检查连接关系:第一步,用示波器或频谱仪确认参考时钟存在且频率正确,抖动在允许范围内;第二步,测量MGTAVCC和MGTAVTT电压及纹波,确保电源正常;第三步,通过ILA观察复位状态机是否走完,PLL锁定信号是否拉高;第四步,检查协议控制器的AXI4-Stream接口是否有数据活动,TX和RX是否同时使能;第五步,若链路仍不通,使用IBERT扫描眼图,判断是均衡器参数问题还是PCB通道损耗过大。
这个顺序体现了架构解析的核心价值:先确认物理层基础(时钟、电源),再确认复位和配置,最后检查协议层数据流。跳过任何一步都可能导致误判。例如,参考时钟频率偏差10 ppm,在10 Gbps链路上可能表现为偶发误码,而非完全不通,此时若直接怀疑协议控制器,就会浪费大量时间。
六、参数关系与典型配置示例
以10.3125 Gbps GTY链路为例,参考时钟156.25 MHz,PLL倍频系数为66,得到10.3125 GHz线速率时钟。TX均衡器通常配置为3抽头DFE,预加重和去加重参数根据PCB损耗调整。RX均衡器启用CTLE和DFE,CTLE增益约6 dB,DFE抽头数5。这些参数通过DRP写入收发器寄存器,调试时可用IBERT的扫描功能自动优化。
PS端GTR的配置则通过PS寄存器完成,例如PCIe的链路宽度、速率和参考时钟选择在Vivado的PS配置界面中设定,生成设备树后由Linux内核驱动加载。调试时可通过lspci和dmesg查看链路状态和错误计数。
总结来说,Zynq高速串行链路的架构解析需要同时关注PS和PL两侧的收发器、参考时钟、复位、电源和协议控制器。PS端以硬核固定绑定为主,调试依赖PS寄存器;PL端以可编程原语为主,调试依赖ILA、IBERT和DRP。理解两者的连接关系和差异,才能在链路不通或误码时快速定位问题层次。