主题中讨论的其他器件:DP83869、
工具与软件:
大家好、
我是一名电子工程师、正在微调我们设计的 CPU 板、我们将按照以下配置集成一个 SoC AM6422和两个 TI DP83869以太网 PHY:

我们旨在优化 AM64和我们的以太网 PHY 之间的 RGMII 时序、我们依靠 TI 应用手册 SNLA243来指导我们的调整。
我们进行了一系列测试以了解和调整传输和接收延迟、我们希望在最终确定配置之前与您验证我们的分析。
该微调的目标是正确调整 RGMII 中的 RX 和 TX 延迟、以确保可靠的通信以及相对于数据信号的适当时钟边沿定位。
我们观察到:
- 在上 RX 侧 ,我们成功地将 RXC 边缘集中在数据眼图中,确保了稳健的计时。
- 在上 TX 端 ,调整似乎没有可见的效果,我们正在试图理解为什么。
为了分析这些现象,我们进行了几项详细的测试(见下文)。
️ μ A 测试和观察结果
Rx 调整和验证
通过调整设备树中的 Rx-internal-delay-ps、我们可以将 RXC 边沿置于数据眼图的中心。
下面是 RXC 和 RX_Dx 的测量值、其中最低密度曲线表示无延迟(0x00)、最密集曲线表示延迟(0x77):

此测量使我们能够实时观察、这确实会影响 RX 时序。
通过寄存器设置调整延迟后、得到了以下曲线:

通信是稳定的、边沿稍微位于眼图的开口部分内(白色虚线)、并且设置/保持裕度看起来是正确的。
从我们的角度来看、该配置是功能性的并经过验证。
️ μ A 测试和异常时的影响
设备树中的初始配置为:
tx-internal-delay-ps =<250>;
rx-internal-delay-ps =<2000>;
就目前情况而言、通信效果良好 Iperf (用于测试两台主机之间的带宽、吞吐量和延迟的网络性能测量工具)运行正确。
我们通过器件树和 PHY 寄存器(例如寄存器0x86)修改了 TX_DELAY 值、但在 TX 信号上观察不到可见的影响。
从 TX 眼图来看、情况似乎处于临界状态:

时钟边沿与眼图最开放的部分对齐、但它们太接近 TX_D 转换、接近设置/保持约束限制。 理想情况下、我们会将这些边沿向左移、以重新进入时序(这就像通过调整 TXC "时光倒流")。
降级测试:我们如何"中断"通信
为了更好地理解设置的影响,我们有意通过修改某些参数来干扰通信:
- 通过在 TX 上应用显式2ns 移位、我们观察到通信完全丢失。
- 通信变得不稳定、然后 Iperf 不再起作用。
- 我们试图找到中间状态(在正常运行和完全失败之间)、但没有观察到任何逐渐降级的情况、只是通信正常运行或完全失败。
这让我们不禁要问、某些设置是否得到了有效考虑、以及这种通信中断的确切原因是什么。
我们相信我们已经理解了什么
- RX 调优是有效的、我们可以对其进行控制。
- 尽管对器件树和 PHY 寄存器进行了修改、但 TX 调优似乎没有任何可见的效果。
- TX 中明确的2ns 移位会导致总通信丢失、不存在中间降级状态。
编辑: 根据我们从 TI FAE 获得的第一个反馈、我们知道 TX 延迟是一个内部延迟块、在测量中不会在物理上表现出来。 相反、它影响 PHY 芯片及其引脚之间的内部时序关系。
更新问题部分
- 根据我们的测量、您是否确认我们的 TX 时序裕度可接受?
- 由于 TX 延迟在测量中不会在物理上表现出来、是否有其他方法可以验证我们是否正确满足设置/保持要求?
- 我们是否应该仅依赖于基于已知内部 TX 延迟值的理论计算、或者是否有确认正确 TX 时序的实用方法?
- 我们观察到、应用2ns TX 移位会导致总通信损耗、而不会出现中间性能下降。 这在 RGMII 中是预期行为吗?
- 考虑到在测量中无法直接观察到 TX 延迟、是否有其他优秀实践可确保实现稳健的 TX 时序?
提前感谢您的帮助和见解!
Jamel