虽然分析和修复最差时序违例通常有助于提升总体 QoR,但您还必须复查其他关键路径,因为这些路径通常会增加时序收敛困难。您可使用以下命令来报告前 50 条最差的建立时序路径:
report_design_analysis -max_paths 50 -setup
下图显示了由此命令生成的“Setup Path Characteristics”(建立路径特性)表格示例。
图 1. 建立路径特性
在该表中,可明确识别导致每条路径产生时序违例的各项特性:
- 逻辑延迟百分比过高(逻辑延迟)
- 逻辑层次是否过多?(逻辑级数)
- 是否存在阻碍逻辑最优化的任何约束或属性?(勿触,标记调试)
- 路径是否包含具有高逻辑延迟的单元,例如 RAMB 或 DSP 等?
- 当前路径拓扑结构的路径要求是否过于苛刻?(要求)
- 高信号线延迟百分比(信号线延迟)
- 在路径中是否有任何高扇出信号线?(高扇出,累积扇出)
- 分配给多个 Pblock 的单元布局能否拉开距离?(Pblocks)
- 单元布局能否拉开距离?(边界框大小,时钟区域距离)
- 对于 SSI 器件,是否存在跨 SLR 边界的信号线?(SLR 交汇)
- 在布局看似正确的情况下,是否有 1 个或多个信号线延迟值远高于预期?请参阅 拥塞 部分。
- RAMB 或 DSP 单元中缺少流水线寄存器(而路径中存在此寄存器)
- 检查路径,确认针对 RAMB 或 DSP 单元是否已启用流水线寄存器
- 高偏差(建立 <-0.5 ns,保持 > 0.5 ns)(时钟偏差)
- 此路径是时钟域交汇路径吗?(起点时钟,端点时钟)
- 时钟是同步时钟还是异步时钟?(时钟关系)
- 此路径是否跨多个 I/O 列?(IO 交汇)
为了在 AMD Vivado™ IDE 中直观显示时序路径及其布局/布线的详细信息,您必须使用以下命令:
report_timing -max_paths 50 -setup -input_pins -name worstSetupPaths
这些路径按裕量排序,并按“Setup Path Characteristics”表中的相同顺序(如上图所示)显示。
report_design_analysis
还可为最差的 1000 条路径生成“Logic Level Distribution”(逻辑层次分布)表,以供您用于识别设计中存在的长路径。通常最长的路径首先由布局器加以最优化以满足时序要求,这可能导致较短的路径的布局质量劣化。您必须不断尝试消除较长的路径,以提高整体 QoR。下图显示了仅含 1 个时钟的设计的“Logic Level Distribution”示例。
图 2. “Logic Level Distribution”表
根据结果,可通过更改 RTL 或使用不同综合选项来改进网表,或者也可以修改时序约束和物理约束。