仅对英特尔可见 — GUID: zhw1500497748546
Ixiasoft
仅对英特尔可见 — GUID: zhw1500497748546
Ixiasoft
2.4.3.1.2. FIFO延迟计算
通过FIFO(在PC模式下)的延迟可能因复位而异。您可以通过使用适当的FIFO延迟计算逻辑来确定这种变化。相位测量技术测量读写计数器之间的距离。相位测量电路旨在用于相位补偿FIFO的情况下,在此情况下读和写指针可能有精确的2:1比率。
要测量FIFO的满度,则要以不等于并行时钟的速率运行采样时钟。计算采样时钟的指导原则是采样时钟扫描相对于并行时钟的各种相位关系。通过使用一个简单的计数器,您可以确定结果脉冲是1还是0的频率。下面的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。
一旦置位result_ready,您就能够读取Total FIFO count总线上的数据,并使用下面公式计算延迟时间。
FIFO的延迟测量端口上的延迟脉冲如下所示。脉冲的占空比取决于特定时刻读指针和写指针之间的差异。随着读指针和写指针的移动,一个脉冲的占空比随时间而发生变化。为了通过FIFO找到实际延迟,IP模块计算相应时长的延迟脉冲占空比的平均值。
如下图所示,采样时钟(LATENCY_SCLK)对脉冲进行采样。采样周期过后, 所有1的样本被累加并出现在Total FIFO count输出总线上,然后用于图 86计算延迟(纳秒)。Number of pulses参数是延迟计算逻辑执行的实际延迟脉冲数。此参数定义了延迟计算逻辑的执行时间。下面的设计文件默认128个延迟脉冲来计算FIFO延迟。由于硬件限制,采样时钟不能高于260 MHz。
符号 | 输入/输出 | 说明 |
---|---|---|
latency_sclk | Input | 延迟计算逻辑所需的采样时钟 |
start_calc | Input | 启动延迟计算的控制信号 |
fifo_latency_pulse | Input | 延迟脉冲 |
total_fifo_count | Output | 延迟计算逻辑的结果 |
result_ready | Output | 表示延迟计算逻辑完成的状态信号 |

对于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。