使用虚拟时钟 - 2023.2 简体中文

适用于 FPGA 和 SoC 的 UltraFast 设计方法指南 (UG949)

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 简体中文

当板载时钟遍历某一时钟修改块以对波形进行变换并补偿整体插入延迟时,建议使用虚拟时钟代替开发板时钟作为输入和输出延迟的参考时钟。虚拟时钟的使用场景主要有以下 3 种:

  • 内部时钟与板载时钟具有不同周期:虚拟时钟必须定义为:具有与内部时钟相同的周期和波形。其结果是要求 I/O 路径为常规的单周期路径。
  • 对于输入路径来说,内部时钟相比于板载时钟拥有正向移位波形:虚拟时钟的定义类似板载时钟,针对建立时间定义一条从虚拟时钟到内部时钟的多周期路径(双周期)约束。上述约束导致强制执行建立时间时序分析,并且分析要求为 1 个时钟周期加相位移动量。
  • 对于输出路径来说,内部时钟相比于板载时钟拥有负向移位波形:虚拟时钟的定义类似板载时钟,针对建立时间定义一条从内部时钟到虚拟时钟的多周期路径(双周期)约束。上述约束导致强制执行建立时间时序分析,并且分析要求为 1 个时钟周期加相位移动量。

综上,使用虚拟时钟需调整默认时序分析,以避免将 I/O 路径作为具有苛刻而又不切实际的要求的时钟域交汇路径来处理。

重要: 当相移导致时钟波形发生修改时,针对具有相移时钟的 I/O 路径只需使用多周期路径即可。将相移添加到时钟修改块的插入延迟并保留时钟波形时,无需使用多周期路径。欲知详情,请访问此链接以参阅 Vivado Design Suite 用户指南:设计分析与收敛技巧(UG906) 中的相应内容。

例如,假设 sysClk 板载时钟频率为 100 MHz,与 MMCM 相乘后生成运行频率为 266 MHz 的 clk266。由 clk266 生成的输出应使用 clk266 作为参考时钟。如果试图使用 sysClk 作为参考时钟(对应 set_output_delay 规格),那么它将显示为异步时钟,并且该路径无法再作为单周期路径进行时序约束。