报告时序例外覆盖范围 - 2023.2 简体中文

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

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

Vivado 工具可生成已应用于设计的每个有效时序例外的详细覆盖范围。报告中包含所有时序例外,包括已完全覆盖的时序例外或起点和端点间不含路径的时序例外。

例外覆盖范围报告是使用 -coverage 命令行选项生成的:

report_exceptions -coverage

对于每个有效的时序例外,此报告都包括以下信息:

  • 约束位置编号。
  • 通过 -from/-through/-to 命令行选项所选的对象数。
  • 将时序例外应用到的管脚数量与通过 -from/-through/-to 命令行选项指定的管脚数量进行比较所得的覆盖范围(以百分比来表示)。
    注释: 指定单元对象时,Vivado 工具会将单元扩展到有效的管脚对象中。此单元到管脚转换可能导致覆盖率下降,因为通常时序例外仅到达小部分管脚。

下图显示了例外覆盖范围报告。

图 1. 例外覆盖范围报告

当时序例外的起点和端点之间不存在路径时,覆盖范围报告显示 0.0。在上述示例中,时序例外位置 15 不存在时序路径。这与 report_exceptions -ignored 结果(约束位置 15 报告为不存在的路径)不匹配。

覆盖率报告有助于编写有效的时序例外。下图显示了以下 set_multicycle_path 约束的覆盖范围报告的另一个示例:

set_multicycle_path -setup 2 -from [all_registers] -to [get_cells 
cpuEngine/or1200_cpu/or1200_ctrl/ex_insn_reg[*]]
图 2. 多周期路径覆盖范围

在上图所示示例中,-from 选项的覆盖范围针对 all_registers 返回的 15901 个单元对象仅为 0.95%。可通过优化 -from 选项指定的对象列表,使其中对象仅包含指向单元 cpuEngine/or1200_cpu/or1200_ctrl/ex_insn_reg[*] 的路径,即可提高约束效率。