时间戳逻辑的性能经过测试,如先前引用的图例所示。在 RX 侧,抖动测试电路会在帧起始进入测试电路的同时记录系统定时器。稍后,此时间戳将被 RX PCS 捕获,并最终在系统侧 AXI4-Stream 接口 (rx_ptp_tstamp_out[79:0]) 上输出。这 2 次时间捕获之差的变化量 dt 即定义为时间戳逻辑的“抖动”性能。对于 tx_ptp_tstamp_out[79:0],TX 测试与此类似。
理论上,40G/50G 子系统时间戳逻辑能判定的跨 SOP 捕获平面的时间应在 80 位系统定时器输入的粒度范围内。因此,如果系统定时器的时间段为 1 nsec,那么时间戳的精度将在 1 nsec 抖动范围内。1 nsec 同时也是 IEEE 1588 定义的 80 位字段的最低有效位的粒度。
实际上,还有其它因素会限制真实系统中可实现的精度。
时钟域
实际上,系统定时器输入的精度应与 SerDes 时钟粒度相同。因此,系统定时器输入的时钟域交汇也应一并纳入考量。例如,如果 SerDes 时钟频率为 390 MHz,那么系统定时器实际粒度为 2.56 ns,这也是捕获时间戳的时钟的粒度。因此,可预计存在额外的 2.56 ns 变化。
收发器
在数据路径中添加 SerDes 并不会影响 40G/50G 子系统的抖动性能,但可能导致不对称。
在 1588 时钟应用中,RX + TX SerDes 时延会成为回路延迟的一部分,因此由 1588 协议来执行测量。为了最大程度提升从时钟的精度,最好将回路不对称纳入考量(RX 与 TX SerDes 时延之差)。赛灵思可以为您的器件专用的各种 SerDes 设置提供收发器时延。如果要将非对称纳入您的 PTP 系统考量范围,则需要联系数据路径中其它收发器的供应商以了解其特性。
UltraScale™
和
UltraScale+™
收发器能够报告 RX 时延。RX 收发器变化主要源于其内部弹性缓冲器的填充级别。请参阅收发器指南以获取更多详细信息。
前向纠错
在时间戳捕获的线路侧会发生前向纠错(对应第 74 条和第 91 条)。因此,添加 FEC 将不会影响 40G/50G 子系统中的时间戳捕获的精度。与前述 SerDes 情况相似,FEC 的额外时延总量 (RX + TX) 也将由 1588 协议来进行测量。
(请注意,SOP 在发射的 FEC 帧中保持不可见状态,直至由 RX FEC 功能将其解码后才可见。)
为了最大程度提升 1588 从时钟的精度,最好明确 RX 和 TX 方向中 FEC 时延的非对称性。请联系赛灵思以了解特定 FEC 的 RX 和 TX 时延及其配置。如果 PTP 系统并非赛灵思 FEC 实现,那么您可能还需要从该系统中的链路伙伴供应商处获取此信息。
接收偏差纠正
在多通道系统(如 40G 和 50G)中,对应于 SOP 的包可能发生在任何通道内。此外,通道彼此间可能存在相对偏差。40G/50G 子系统能够通过报告 SOP 通道及其偏差,将 SOP 帧的到达通道纳入考量范围。可通过硬件或软件来执行纠正。建议步骤如下。
考虑以下 40G 和 50G 案例。对于这两者,过程是相同的,但 PMD 通道数量分别为 4 和 2。
图 1. 40G 填充级别纠正示例
图 2. 50G 填充级别纠正示例
图 3. 40G 偏差纠正示例
图 4. 50G 偏差纠正示例
图 5. 时间戳偏差纠正逻辑
第一步是计算对齐缓冲器填充级别的平均时间,因为这些信号的粒度为 1 个 SerDes 时钟周期。虽然偏差在一段时间(例如,几分钟或几小时)内保持相对不变,但由于采样量化,对齐缓冲器级别的 SerDes 时钟周期存在短期浮动。因此,通过计算每个填充级别的平均时间可以获得更高精度(例如,亚纳秒级)的实际偏差。
假定已按上述方式准确判定填充级别,可使用以下公式来执行偏差纠正:
correction = ((RX_LANE_ALIGNER_FILL_n) - (RX_LANE_ALIGNER_FILL_0)) * SerDes clock period
corrected timestamp = RX_PTP_TSTAMP_OUT + correction
其中:
corrected timestamp 即完成偏差纠正后的时间戳,必须与对应包数据保持同步
RX_PTP_TSTAMP_OUT 是捕获的时间戳。
RX_LANE_ALIGNER_FILL_0 是在其中采集时间戳的通道的对齐缓冲器填充级别,通常此通道为通道 0(请与赛灵思技术销售支持人员确认以了解更新信息)。
RX_LANE_ALIGNER_FILL_n 是包含 SOF 的通道的对齐缓冲器填充级别。
所有计算的单位需保持一致。由于填充级别是以时钟周期为单位来提供的,可能需将其转换为纳秒或与计算过程一致的任何单位。
如需了解其它信息,请参阅 IEEE 1588-2008 标准《IEEE 网络测量和控制系统的精密时钟同步协议标准》http://standards.ieee.org/findstds/standard/1588-2008.html。