“Check Timing”部分 - 2023.2 简体中文

Vivado Design Suite 用户指南: 设计分析与收敛技巧 (UG906)

Document ID
UG906
Release Date
2023-10-19
Version
2023.2 简体中文

“Timing Summary”(时序汇总)报告的“Check Timing”(检查时序)部分包含有关缺失时序约束或存在需审查的约束问题的路径的信息。要实现完整时序验收,所有路径端点都必须达成约束。

如需了解有关约束定义的更多信息,请参阅 Vivado Design Suite 用户指南:使用约束(UG903)

图 1. “Timing Summary”报告:“Check Timing”部分

要以独立报告形式生成“Check Timing”,请执行以下任一操作:

  • 运行Reports > Timing > Check Timing(报告 > 时序 > 检查时序)菜单命令。
  • 运行 Tcl check_timing 命令。

从 Tcl 控制台运行时,可使用 -cells 选项将 check_timing 报告限定于一个或多个层级单元。该选项在“Check Timing”GUI 中不可用。

如上图所示,默认情况下报告的检查列表包括:

  • pulse_width_clock:报告如下类型的时钟管脚:仅含与管脚关联的脉冲宽度检查、不含建立或保持时间检查、不含恢复、移除或 clk > Q 检查。
  • no_input_delay:不含任何输入延迟约束的非时钟输入端口数量。
  • no_clock:已定义的时序时钟无法到达的时钟管脚数量。此外还报告恒定时钟管脚。
  • constant_clock:检查连接到恒定信号 (gnd/vss/data) 的时钟信号。
  • unconstrained_internal_endpoints:无时序要求的路径端点(不包括输出端口)数量。此数值与缺失时钟定义数量存在直接关联,此定义数量同样可通过 no_clock 检查来报告。
  • no_output_delay:不含至少一个输出延迟约束的非时钟输出端口数量。
  • multiple_clock:多个时序时钟可到达的时钟管脚数量。如果在某一个时钟树中存在时钟多路复用器,则可能出现此情况。默认情况下,共享相同时钟树的时钟将一起定时,这无法反映真实的时序情况。在任意给定时间,任一时钟树上仅限存在 1 个时钟。

    如果您认为时钟树不应包含 MUX(多路复用器),请复查时钟树,了解有多个时钟到达特定时钟管脚的方式和原因。

  • generated_clocks:引用不属于相同时钟树的主时钟源的生成时钟的数量。当主时钟与生成时钟源点之间的逻辑路径上禁用时序弧时,可能出现此情况。使用 -edges 选项可指定将此项检查应用于生成时钟的各个时钟沿:逻辑路径单边性(反向/非反向)必须与主时钟和生成时钟之间的时钟沿关联相匹配。
  • loops:设计中发现的组合循环数量。Vivado IDE 时序引擎会自动断开循环以报告时序。
  • partial_input_delay:仅含最小输入延迟或最大输入延迟约束的非时钟输入端口数量。建立与保持时间分析均不报告这些端口。
  • partial_output_delay:仅含最小输出延迟或最大输出延迟约束的非时钟输出端口数量。建立与保持时间分析均不报告这些端口。
  • latch_loops:对穿越设计中的锁存器的循环进行检查并发出警告。报告的组合循环中将不包含这些循环,并且这些循环将影响相同路径上的锁存时间借用计算能力。