下图显示了定时器调整的时序图示例。
系统定时器覆盖
要覆盖系统定时器,请将 D_ptp_st_overwrite_N
断言有效,并将所期望的 54 位值驱动到输入信号 D_ptp_systemtimer_N
上。覆盖触发方式为触发 D_ptp_st_sync_N
信号。
图 1. 定时器覆盖
如上所述,如果 D_ptp_st_sync_N
转换采样到定时器时钟的下降沿,那么 DDR 相位补偿器会给系统定时器自动添加半个时钟周期(即,timer_increment
/ 2)以帮助改善定时器精度。
定时器频率设置粗粒度调整
在此示例中,system_timer
频率设置方法是给 timer_increment
提供粗粒度调整(调整接口 上的方法 2)。
图 2. 系统定时器 - 设置增量值
注释: 32 位
ptp_st_adjust
值以 2-8 ns 为单位来解读,这表示它映射到 increment_value
的粗粒度部分。increment_value
的亚纳秒部分设为 32’d0
。要调整增量值的亚纳秒部分,请使用“定时器频率细颗粒度调整”方法。定时器频率细颗粒度调整
以下提供了对 system_timer
频率进行微调的示例,方法是调整增量值的亚纳秒部分(调整接口 上的方法 3)。此调整指定为以 2-40 ns 为单位。提供的有符号调整值将添加到现有 increment_value
供后续使用。
图 3. 频率微调
相移
此图中显示了定时器值的相移(使用 调整接口 的方法 1)。
图 4. 相位调整
注释:
increment_value
仅在一次 system_timer
迭代内发生更改(它是一次性调整),随后即返回原值。允许的最大调整值为 18 位有符号值(2 的补码),以 2-8 ns 为单位。