时序分析期间,可通过设置 MMCM/PLL PHASESHIFT_MODE 属性以两种不同方式对时钟相移进行建模,如下表中所述。
PHASESHIFT_MODE 属性 | 相移建模 | 注释 |
---|---|---|
WAVEFORM | 时钟波形修改 | 通常,set_multicycle_path
–setup 约束用于在往来相移时钟的时钟域交汇路径上调整时序路径要求。 |
LATENCY | MMCM/PLL 插入延迟 | 无需额外多周期路径约束。 |
各 AMD FPGA 系列所采用的默认 MMCM/PLL 时钟相移模式不尽相同。但用户可基于 PLL/MMCM 覆盖默认模式。
技术 | 默认 MMCM/PLL 时钟相移处理方式 |
---|---|
7 系列 | 时钟波形修改 (WAVEFORM) |
AMD UltraScale™ | 时钟波形修改 (WAVEFORM) |
AMD UltraScale+™ | MMCM/PLL 插入延迟 (LATENCY) |
AMD Versal™ 自适应 SoC | MMCM/PLL 插入延迟 (LATENCY) |
重要: MMCM/PLL PHASESHIFT_MODE 属性不影响器件配置。它仅影响静态时序分析引擎的裕量计算。由于在 WAVEFORM/LATENCY 模式间可能需要调整时序约束,由此导致工具 QoR 也会受到影响。
重要: 在任意
CLKOUTx
管脚上定义管脚相移并有多个时钟到达 MMCM/PLL 的输入管脚时,PHASESHIFT_MODE=LATENCY 模式无效,并触发“Warning Timing 38-437”警告。在此类情况下,MMCM/PLL 应配置为使用 PHASESHIFT_MODE=WAVEFORM 模式。在两个时钟之间引入偏差以满足时序时,使用 PHASESHIFT_MODE=LATENCY 尤显便利。将时钟相移设置为负值、空值或正值时,调整时序路径要求无需额外的多周期路径约束。
对于从 7 系列或 UltraScale 移植到 UltraScale+ 的旧设计,如果在 MMCM/PLL 上未设置 PHASESHIFT_MODE 属性,则会应用默认行为,并且 MMCM/PLL 时钟相移作为延迟时延而不是时钟沿相移来进行建模。在此情况下,需审查旧设计中指定的适用于时钟相移的所有多周期路径约束,并且通常需移除这些约束。通过运行方法检查 (report_methodology
) 即可轻松识别这些约束。TIMING-31 用于标记时钟间的多周期路径,其中一个时钟为相移时钟,由 MMCM/PLL 生成(PHASESHIFT_MODE
设置为 LATENCY
)。
Clocking Wizard 和 High Speed SelectIO™ Wizard 都提供了在每个 MMCM/PLL 上强制执行时钟相移建模的选项。PHASESHIFT_MODE 属性自动保存在 IP XDC 内。