TIMING-30 : 生成时钟所选主源管脚欠佳
生成时钟 <clock_name> 所选的主源管脚欠佳 , 时序可能处于消极状态。
描述
虽然 create_generated_clock 命令允许您指定任意参考时钟 , 但是生成时钟应引用在其直接扇入中传输的时钟。此 DRC 警告报告称生成时钟与已定义的主时钟相关联 , 但根据定义 , 该主时钟在上游比传入主时钟更远处的位置。在此情况下, 时序分析可能更消极 , 并对主时钟与生成时钟之间的路径应用额外的时钟不确定性。这可能导致时序收敛难度略有提升。建议将生成时钟与衍生出生成时钟的主时钟源管脚关联。
解决方案
修改 create_generated_clock 约束以引用主时钟源管脚 , 在设计中生成时钟是从该管脚直接衍生的。
TIMING-31 : 相移时钟上存在多周期路径
MMCM ( 或 PLL ) 生成时钟 <clock_name> 属于相移时钟 , 在一个或多个多周期路径约束内仅用于设置。由于MMCM( 或 PLL ) 属性 PHASESHIFT_MODE 设为 LATENCY , 因此 , 可能不再需要原有的多周期路径约束。
描述
在 7 系列和 UltraScale 中 , 默认 MMCM 或 PLL 的相移输出作为时钟波形中的更改 ( PHASESHIFT_MODE=WAVEFORM )来进行建模。这表示为了应对管脚相移, 对时钟波形边沿进行相移。在 UltraScale+ 中 , 默认管脚相移作为通过时钟修改块的时延传输延迟 ( PHASESHIFT_MODE=LATENCY ) 来进行建模 ,时钟波形则无更改。
在 WAVEFORM 模式下 , 由于在源和目标时钟波形之间引入的相移 , 可能需要借助多周期约束来调整时序路径要求。在LATENCY 模式下 , 则不再需要这些多周期路径约束。
解决方案
评估是否需要多周期约束。如果添加了多周期路径约束用于在 WAVEFORM 模式下调整路径要求 , 那么在 LATENCY 模式下很可能需要移除此约束。在时钟修改块上设置 PHASESHIFT_MODE=WAVEFORM 也可以反转管脚相移的行为。
TIMING-32 : 总线偏差约束已应用于过多信号
在过多信号 ( 针对 UltraScale/UltraScale+ 超过 2500 条路径 , 针对 7 系列超过 1000 路径 ) 上设置了总线偏差约束。
描述
Vivado 会尝试通过某些布线绕行来给个别信号添加额外延迟 , 以满足总线偏差约束。如果相同总线偏差约束中的信号数量过多, 那么可能需要添加大量布线绕行。这些绕行可能导致布线拥塞或者无法满足总线偏差约束。它也可能会给route_design 运行时造成严重影响。
解决方案
复查总线偏差约束 , 验证所有信号都包含在其中。确认后 , 考虑重新设计此 CDC 接口以减少信号数量。
TIMING-33 : 安全定时的路径上的总线偏差约束无效
在已安全定时的路径上设置了总线偏差约束 ( 请参阅 Vivado IDE 的时序约束窗口中的约束位置 <position> ) 。建议在异步路径上或者在同步时钟域之间的路径上使用 set_bus_skew 约束 , 但 set_false_path 例外。此约束所涵盖的第一个端点是 <object> 。
描述
总线偏差约束是在安全定时的交汇路径上设置的 , 此路径属于同步时钟域交汇路径或时钟域内部路径。 set_bus_skew 约束仅限在异步路径上使用。虽然通常建议将 set_bus_skew 与 set_max_delay - datapath_only 搭配使用 , 以控制源和目标寄存器之间的相对布局 , 但在伪路径例外所涵盖的同步路径上 , 也可以使用约束。
解决方案
复查总线偏差约束 , 确认约束已应用于异步时钟域交汇路径。如果路径应为异步路径 , 但 Vivado 报告路径为同步 , 请复查时序约束中是否缺少时钟组、伪路径或仅最大延迟数据路径。
TIMING-34 : 总线偏差约束含有不现实的值
某个总线偏差约束具有不现实的值 ( 小于最小值 , 即 , 不到源和目标时钟周期的一半 ), 或者该值 <1 ns 要求 。设置过于激进的值会导致运行时间增加。此约束所涵盖的第一个端点是 <object> 。
描述
总线偏差约束设为比源时钟或目标时钟周期的一半更低的值 , 或者小于 1 ns 。总线偏差时序可通过在 route_design期间添加布线延迟来满足。如果尝试满足较为激进的值, 则可能需要耗费大量运行时 , 并且可能导致不必要的布线拥塞。也可能导致 route_design 无法满足此类目标。
解决方案
复查设置的值。将其设置为至少高于源时钟或目标时钟的最小时钟周期的一半 , 或者设置为 1 ns 。