L-Tile和H-Tile收发器PHY用户指南

ID 683621
日期 3/29/2021
Public
文档目录

2.4.3.1.2. FIFO延迟计算

通过FIFO(在PC模式下)的延迟可能因复位而异。您可以通过使用适当的FIFO延迟计算逻辑来确定这种变化。相位测量技术测量读写计数器之间的距离。相位测量电路旨在用于相位补偿FIFO的情况下,在此情况下读和写指针可能有精确的2:1比率。

要测量FIFO的满度,则要以不等于并行时钟的速率运行采样时钟。计算采样时钟的指导原则是采样时钟扫描相对于并行时钟的各种相位关系。通过使用一个简单的计数器,您可以确定结果脉冲是1还是0的频率。下面的FIFO延迟计算逻辑中包含此实现。

图 84. 相位测量FIFO

以下是一个FIFO延迟计算逻辑的实现示例。相位补偿模式下的每个FIFO在PCS-Core接口上都有一个延迟测量端口(只读)。每个延迟测量端口均提供延迟脉冲,其占空比取决于FIFO延迟。该延迟脉冲在FPGA架构中进一步处理以计算FIFO延迟。有四个类似的脉冲用于四个FIFO,您必须分别对所有这些脉冲执行延迟计算。下图中的IP表示FPGA架构中执行延迟计算的逻辑。此IP不是Native PHY IP core的一部分,因此必须专门进行例化。此IP的输出是Total FIFO count总线。该总线产生FIFO延迟计算的结果。该结果只能在计算完成时读取,并由来自IP的result_ready信号表示。请参考图 88

图 85. FIFO延迟计算

一旦置位result_ready,您就能够读取Total FIFO count总线上的数据,并使用下面公式计算延迟时间。

图 86. FIFO延迟公式

FIFO的延迟测量端口上的延迟脉冲如下所示。脉冲的占空比取决于特定时刻读指针和写指针之间的差异。随着读指针和写指针的移动,一个脉冲的占空比随时间而发生变化。为了通过FIFO找到实际延迟,IP模块计算相应时长的延迟脉冲占空比的平均值。

如下图所示,采样时钟(LATENCY_SCLK)对脉冲进行采样。采样周期过后, 所有1的样本被累加并出现在Total FIFO count输出总线上,然后用于图 86计算延迟(纳秒)。Number of pulses参数是延迟计算逻辑执行的实际延迟脉冲数。此参数定义了延迟计算逻辑的执行时间。下面的设计文件默认128个延迟脉冲来计算FIFO延迟。由于硬件限制,采样时钟不能高于260 MHz。

图 87. FIFO延迟测量端口: Number of pulsesLATENCY_SCLK根据特定实现而异。
图 88. FIFO延迟计算逻辑
表 90.  FIFO延迟计算IP信号
符号 输入/输出 说明
latency_sclk Input 延迟计算逻辑所需的采样时钟
start_calc Input 启动延迟计算的控制信号
fifo_latency_pulse Input 延迟脉冲
total_fifo_count Output 延迟计算逻辑的结果
result_ready Output 表示延迟计算逻辑完成的状态信号
图 89. 四个FIFO的FIFO延迟计算逻辑A点是start_calc信号的置位,B点是result_ready信号的置位。total_fifo_count信号在result_ready置位后有效。
图 90. 所有FIFO的FIFO延迟公式

对于latency_sclk的首选频率,请遵循以下指南:

  • latency_sclk必须≤ 260 MHz。
  • 并行时钟与latency_sclk的比率(当以最简分数表示时),分母应至少为50,但最好大于100。所得的理想latency_sclk应在200 MHz到260 MHz之间。
  • 如果latency_sclk频率是tx_clkout的倍数,则不要使用。
  • 示例:
    表 91.  并行时钟与latency_sclk比率示例
    tx_clkout频率 正确的latency_sclk频率 错误的latency_sclk频率
    150 MHz 209 MHz 160 MHz
    245 MHz 247 MHz 250 MHz
    300 MHz 247 MHz 260 MHz

您可以使用IOPLL或外部参考时钟来创建latency_sclk