Xilinx HSSIO 解决方案中心 — 设计辅助调试 GTR 相关问题

发布时间:2018/3/8

描述



本答复记录包含有关 GTR 问题的调试技巧以及与 GTR 相关的协议问题。



注意:本答复记录是 Xilinx HSSIO 解决方案中心的一部分(Xilinx 答复 37181



Xilinx HSSIO 解决方案中心可解决所有与 HSSIO 相关的问题。



无论您是要启动新设计还是要调试问题,请访问HSSIO 解决方案中心来指导您获取相应的信息。



解决方案



1 部分,已知问题:



在转向调试指南之前,请先检查以下已知问题,看看您遇到的问题是否可以匹配。

















































答复记录编号



标题



(Xilinx Answer
65875)



Zynq UltraScale+ MPSoC — PS-GTRPCle 的多信道链路对齐可能需要一个以上的 SKP 顺序集



(Xilinx Answer
65880)



Zynq UltraScale+ MPSoC — 将流量过大错误地表示为 CRC 错误



(Xilinx Answer
65982)



Zynq UltraScale+ MPSoCVivado 2015.4 — 支持 PS DDR3/DDR4/LPDDR4 GTR 收发器的的补丁



(Xilinx Answer
66130)



Zynq UltraScale+ MPSoC PS-GTR:在 SGMII 工作模式下,传输随机抖动不符合 IEEE 规范。



(Xilinx Answer
66197)



Zynq UltraScale+ MPSoCVivado 2015.4 — 支持 MIO 以太网、PS GTR 和安全工作的 FSBL 补丁



(Xilinx Answer
66592)



Zynq UltraScale+ MPSoC — 使用 PS-GTR SGMII



(Xilinx Answer
66795)



Zynq UltraScale+ MPSoCPS-GTR 参考时钟相位噪声屏蔽



(Xilinx Answer
68272)



Zynq UltraScale+ MPSoC 系统监控器为什么 PS 系统监控器会在
VCC_PSINTFP
VCC_PSDDR 上显示所有的 0



(Xilinx Answer
68547)



Zynq UltraScale+ MPSoC — PS-GTR 忽略了奇数边界对齐的 PCIe SKP 顺序集



(Xilinx Answer
68866)



Zynq UltraScale+ MPSoC — 使用 PS-GTR SGMII — 为什么是 Zynq MP PHY 驱动程序,其可重新配置之前由 FSBL SGMII 设置的信道?










2 部分 — GTR 问题调试指南:



 



1) GTR 寄存器







所有 GTR 设置均由寄存器控制。我们可以通过访问以下链接并按关键字搜索串行解串器找到 GTR 的一部分。



https://china.xilinx.com/html_docs/registers/ug1087/ug1087-zynq-ultrascale-registers.html



如果您想访问以上链接中没有的其它寄存器,请咨询 Xilinx 技术支持。



GTR 寄存器大多以 SERDES 前缀命名。



基址是 0xFD400000



地址映射如下:



LANE0 特定空间:0xFD400000-0xFD403FFF



LANE1 特定空间:0xFD404000-0xFD407FFF



LANE2 特定空间:0xFD408000-0xFD40BFFF



LANE3 特定空间:0xFD40C000-0xFD40FFFF



公共空间:0xFD410000-0xFD41021F









2) 眼扫描



如果出现了链路不一致问题,建议执行眼扫描。



参考 (UG936)v2017.2 以后版本)实验 10,查看了解眼扫描步骤的教程。



如果使用较早版本的 Vivado,请咨询 Xilinx 技术支持。



有了眼扫描结果,就可以确定链路裕度。









3) 转储寄存器



如果您有一个成功的案例和失败的案例,请根据以上地址映射转储 GTR (SERDES) 寄存器,以便进行比较。



下面是 UART 端口转储 LANE1 特定空间的示例命令:



md 0xfd404000 0x1000



UART 端口转储公共空间的另一个示例



md 0xfd410000 0x20









4) 检查参考时钟



必须使用 AC 耦合。推荐的电容是 10 nF。据 (UG583) 5-32 所示,LVPECL
时钟输入需要两个下拉电阻器。



差分输入电压有效范围为 250mV 2000mV



有效频率列在 (DS925) 60 中。



占空比应处于 (DS925) 60 中规定的范围内。



相位噪声必须符合 (DS925) 61 中的掩模要求。对于本表中没有的参考时钟频率,请使用相位噪声掩模来表示最近的参考时钟频率。









5) 检查电源



有两个电源轨。将其命名为 PS_MGTRAVCC PS_MGTRAVTT



参考 (DS925) 2,查看 Xilinx 推荐的电压范围。这些电源轨上的电压可通过 PS 系统监控器进行监控。



10 kHz 80 MHz,噪声必须低于 10 mVPP



参考(Xilinx 答复 57737,了解 GT 电源调试。



查看 DS925 的电源排序部分,确保完全符合所有需求。









6) PCB 检查表



参考 (UG583) 5-38,查看 GTR PCB 设计检查表。









7) 信号完整性



在电路板布局前运行 IBIS-AMI 仿真,以确保良好的信号完整性。



下载链接如下:



https://www.xilinx.com/member/ultrascale_plus_ibis_ami.html









8) 用于调试的回路



GTR 不支持 PMA 回路。该回路可在协议 IP 中完成。



例如,在 SGMII 模式下的 GEM 上,请参考在下一个协议相关调试部分的 GEM PCS 层中设置的回路。









9) 有些寄存器是否可反映 8b10b 解码器错误?



GTR 中没有寄存器,但是一些协议层寄存器可以反映同等错误。



例如,GEM 中有一个 rx_symbol_errors (GEM)
寄存器、frames_rxed_ok (GEM) 寄存器和
fcs_errors (GEM)
寄存器,可反映帧错误是否已被检测到。



 



10) 检查串行数据



不可能在 GTR 中检查实时并行 TX/RX 数据,就像我们通过 ILA 使用 PL GTH/GTY 执行的操作一样。



有时检查串行数据有助于研究问题。



例如,在 SGMII 链路发生故障时,如果该链路掉线,高速范围就会捕捉到以下波形。这可从 GTR 接收端捕获。



说明: https://china.xilinx.com/Image/20170809-soc0-link%E5%A4%B1%E8%B4%A5(%E6%9C%AA%E5%8F%91PRBS)-(closed%20%20AN)_rx_sgmii_2_201709282017500894.jpg



 



 



在该波形中,我们可以获得以下信息。



发送器(远程配套设备,通常是一个开关)正在发送 K28.5/D21.5/D0.0/D0.0 K28.5/D2.2/D0.0/D0.0



根据协议,可从远程配套设备启用自动协商,因为配置 1 及配置 2 有序集可发送。



如果禁用了自动协商,则只能发送闲置的有序集 (K28.5/D16.2)。请看下图。因此,如果从 PS SGMII 禁用自动协商,而从远程配套设备启用,链路就会发生故障。



如果两边都启用了自动协商,另一件事是 Config Reg 总是为
D0.0/D0.0
,这表明远程配套设备处于 1000BaseX 模式,而不是 SGMII 模式,因为最后一位是 0



此外,这也会导致链路故障,因为在启用自动协商时,两者间的模式是不同的。





说明: https://china.xilinx.com/content/dam/xilinx/Image/20170810-soc3-link%E6%AD%A3%E5%B8%B8-rx-sgmii-1_201709282032161696.jpg













 



3 部分协议相关调试指南:









1) SGMII 模式:



请先参考第 1 部分,了解已知问题。



查看 pcs_status (GEM) Register Bit2(链路状态),确定链路是否连上。



通过设置 pcs_control (GEM) Register Bit14 (loopback_mode) 尝试 PCS 层中的环路,以便旁路 GTR 并查看链路是否联通。



确保正确选择了 GEM*_REF_SRC_SEL。使用 GTR 时,这些寄存器应该设置为 1,以选择外部专用参考时钟输入。如果设置为 0,则选择内部 PS PLL 时钟。 

这可能会降低性能或链路裕度。可能会出现链路不一致问题或数据包丢失情况。



自动协商的设置必须与远程配套设备相同。如果远程配套设备启用了 AN,则 GEM 必须启用。反过来也是一样的。 

查看 pcs_status (GEM) Register bit3,看看 PCS 是否有自动协商能力。 

设置或清除 pcs_control (GEM) Register bit 12
(enable_auto_neg)
,以启用或禁用 GEM 中的自动协商能力。 

如果启用 AN,请查看 pcs_status (GEM)
Register bit5 auto_neg_complete
,确定是否完成自动协商。



查看 pcs_control (GEM) Register Bit 15 中的 pcs_software_reset 是否被断言。 

当该位为高时,链路无法在 GEM 中联通。设置
network_config (GEM) Register Bit27 (sgmii_mode_enable)
Bit11 (pcs_select),可发布 pcs_software_reset(它变为低)。



参考 (Xilinx 答复 66592,了解通过 GTR 使用 SGMII 的问题与解答。



 



2) PCI Express 模式:



参考第 1 部分,了解已知问题。



不要忘记为 PCIe 指定正确的分类代码,尤其是在根模式下。如果
Linux
枚举驱动程序发现不正确的分类代码,就会导致 BAR 分配失败。

以下快照展示了如何在 PCW 中定位分类代码设置。



说明: https://china.xilinx.com/content/dam/xilinx/Image/ps_pcie.png



 



MSI 可能无法跟英特尔 Mini PCIe WiFi 卡连用。 

该桥接器丢弃了由 Intel 发布的不足 2 字节的 MSI MWrMSI TLP 等不兼容。 

查看下列从 PCIe 协议分析仪捕获的快照。



说明: https://china.xilinx.com/content/dam/xilinx/Image/non_compliant_msi_201709180225541986.png



 



3) USB 模式:



参考第 1 部分,了解已知问题



4) SATA 模式:



参考第 1 部分,了解已知问题



5) 显示端口模式:



参考第 1 部分,了解已知问题