欢迎阅读 Vivado 时序收敛技巧系列博客。
在本系列中,我们将介绍可归类为脉冲宽度违例 (Pulse Width Violation) 的多种类型的时序违例。
本文将主要介绍“最大偏差违例”相关内容。
有多种类型的时序违例可归类为脉冲宽度违例。
- 最大偏差违例(本文详解之重点)
- 最小周期违例(详见此处)。
- 最大周期违例
- 低脉冲宽度违例
- 高脉冲宽度违例
如需了解脉冲宽度违例的详情,请参阅“时序汇总报告 (Report Timing Summary)”的“TPWS”部分。
最严重的脉冲宽度违例在报告中显示为最差脉冲宽度时序裕量 (WPWS)。
如需了解脉冲宽度违例的详情,请在 Vivado GUI 中打开脉冲宽度违例报告,方法是单击“报告 (Reports)”->“时序 (Timing)”->“脉冲宽度报告 (Report Pulse Width)”,或者也可使用以下 Tcl 命令打开此报告:
report_pulse_width
最大偏差违例
本文仅介绍“最大偏差违例”相关内容。
最大偏差违例示例:
以下截屏显示了含负裕量的最大偏差违例。
在上述示例中,实际最大偏差 (Actual Max Skew) 值即最大偏差 (Max Skew) 中工艺角 (process corner) 为 Fast 的 CLK 的到达时间与最小偏差 (Min Skew) 中工艺角为 Fast 的 CLKDIV 的到达时间之差。
您可通过时序报告来检查该值,以了解特定路径类型。
注意:应在同一工艺角 (Slow/Fast) 中报告时序,但必须在“Min/Max”中报告这两个管脚。
如需了解预期值 (Required) 与实际值 (Actual) 计算方式的详细说明,请参阅(赛灵思答复记录 72121)。
请根据以下检查表来解析最大偏差违例:
- 首先,检查报告时序收敛失败路径的时钟树路径的拓扑结构。
其中一条时钟路径将被称为“参考路径 (Reference Path)”,另一条路径的偏差将高于规格值。
- 检查您当前使用的是否是最优化时钟拓扑。用户可查阅 DRC 报告和方法报告,以查看是否存在有关次优时钟拓扑问题的消息。《时钟拓扑建议》(UG949) 对于了解赛灵思建议的时钟拓扑很有帮助。
- 请确保时钟缓冲器都布局在相同时钟区域内。时钟树同样应保持平衡。
最好避免时钟树跨多个 SLR。 - 您还可以添加 CLOCK_DELAY_GROUP 属性以查看能否避免此违例。
如需了解更多信息,请参阅(赛灵思答复记录 67885)。 - 请确保缓冲器中用于驱动管脚的时钟根同样分配至该时钟区域。
如需手动设置时钟根值,可使用 USER_CLOCK_ROOT 约束。