含 MMCM ZHOLD/BUF_IN 补偿的 I/O 时序 - 2023.2 简体中文

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

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

ZHOLD 补偿表示 MMCM 配置为针对整个 I/O 列中的所有 I/O 寄存器提供负保持时间。当支持时钟功能的 I/O (CCIO) 驱动 ZHOLD 补偿模式中配置的单个 MMCM 时,布局器将尝试把 MMCM 与 CCIO 一起布局在相同时钟区域内。在此情况下,CCIO 可直接驱动 MMCM,无需通过 BUFG。这样即可支持 MMCM 的 ZHOLD 补偿保持有效。

但如果 CCIO 同时驱动 ZHOLD 模式下配置的 MMCM 以及另一个 MMCM,那么逻辑最优化将尝试通过在 CCIO 之后插入 BUFG 来使进入 MMCM 的时钟布线合规。由于具有 ZHOLD 补偿的 MMCM 不再由 CCIO 直接驱动,补偿将更改为 BUF_IN。为避免出现此情况,请确保 CCIO 直接驱动 ZHOLD 模式下配置的 MMCM,并通过 BUFG 驱动另一个 MMCM。此外,请将 BUFG 驱动的信号线的 CLOCK_DEDICATED_ROUTE 属性设置为 ANY_CMT_COLUMN。

由于时钟插入延迟因时钟根位置而异,而时钟根布局取决于负载的布局,因此不同运行轮次之间可能存在变化。这种变化会影响器件中的时序以及 I/O 时序。

处理高频率 I/O 时,可能需要细化对 I/O 时序的控制并减少不同运行轮次之间的变化。实现此目标的方法之一是强制执行时钟根布局。您可以自动模式运行工具并观察时钟根区域。如果 I/O 时序得到满足,您可在与 I/O 时序关联的缓冲器信号线上强制时钟根布局。要确定时钟根的布局,请使用 report_clock_utilization [-clock_roots_only] Tcl 命令。

在以下示例中,I/O 端口位于 X0Y0 区域中。Vivado 布局器根据 I/O 布局以及其他负载的布局来判定 X1Y2 中时钟根的布局。

图 1. 含未约束的时钟根的时钟使用情况汇总

以下汇总显示了当时钟根不受约束时的 I/O 约束。

图 2. 含未约束的时钟根的时序汇总

在以下示例中,时钟根移至 X0Y0 中的 I/O 寄存器旁,导致降低时钟插入延迟并减少时序消极因素,从而改进 I/O 时序。

图 3. 含用户约束的时钟根的时钟使用情况汇总

以下汇总显示了迁移时钟根时的 I/O 时序。

图 4. 含用户约束的时钟根的时序汇总