Challenging Timing Paths
“ Challenging Timing Paths ” ( 时序收敛困难的路径 ) 部分列出了“ Assessment Details ” ( 评估详情 ) 部分中未能通过检查的时序路径的关键属性。默认情况下, 该命令会对每个时钟组中的 100 条失败的路径进行评估。它会分析下列 因素:
• 信号线预算
• LUT 预算
• 时钟偏差
下图显示了“ Net/LUT Budget ” ( 信号线 /LUT 预算)报告的示例。
对于这些检查 , 估算的信号线或 LUT 延迟会被替换为设计所期望的典型值 , 并对新预算进行计算。如果路径始于或者止于块 RAM 、 DSP 或其他硬核块 , 则会给这些路径添加惩罚。如果无法利用时钟树偏差来改善裕度 , 则会有其他惩罚。在“LUT Check Slack ” ( LUT 检查裕量 ) 列和“ Net Check Slack ” ( 信号线检查裕量 ) 列中 , 会显示基于受惩罚的路径所得的新裕量。
在“ SuggestionsID ” ( 建议 ID ) 列中 , 会显示路径相关的 QoR 建议。对于不存在建议的项 , 应进行调查并且可能需要重新编码。如果存在建议, 应用这些建议可能即可解决问题 , 而无需进行代码编辑。“Clock Skew ” ( 时钟偏差 ) 部分用于报告与时钟偏差相关的项 , 如下图所示 :
• 偏差值
• 源时钟和目标时钟名称
• 源时钟和目标时钟上的时钟根
• 不确定性
含 DONT_TOUCH 属性的网表对象
含 DONT_TOUCH 属性的网表对象可能阻止执行有助于改善设计性能的最优化。 RQA 报告的以下部分显示了设有DONT_TOUCH 属性的对象 :
RQA 报告显示了以下对象及其原因 :
• 层级单元
• 叶节点单元
• 信号线
非 FD 高扇出信号线 > 10K
本节中报告的信号所含扇出大于 10K 但不受触发器驱动。驱动高扇出的信号线具有的驱动程序剖析信息应允许在不影响路径前时序的前提下执行复制。这样即可支持将复制的单元更自由地布局在负载旁。如有源约束, 那么复制的单元的布局将聚集在一起, 从而降低此技巧的有效性。
在详情部分中会捕获更多详细信息 , 如负载类型、驱动程序剖析信息和信号线名称等。但不捕获有关此信号的时序信息。如果该路径是伪路径, 或者具有极低的要求 , 则可忽略。
生成 QoR 评估报告
在 Vivado IDE 中打开设计并单击“ Reports ” → “ Report QoR Assessment ” ( 报告 > QoR 评估报告 ) 即可访问report_qor_assessment 命令。
Tcl 控制台中的等效命令如下 :
report_qor_assessment -name report_qor_assessment
要更改时序路径限制的默认值 100 , 请更改“ Number of paths for suggestion analysis ” ( 建议分析的路径数 ) 。等效 Tcl 命令使用 -max_paths <N> 开关 , 其中 N 是整数 :
report_qor_assessment -max_paths <N>
“ Report passing metrics ” ( 报告合格指标 ) 选项会展开详情表 , 以显示已检查但合格的所有指标。等效 Tcl 命令使用-full_assessment_details 开关 :
report_qor_assessment -full_assessment_details 相比于文本报告, 生成支持性 CSV 文件的选项有助于改善浏览大量数据的能力。要生成支持性 CSV 文件 , 请选中该框 并指定目录。CSV 文件用于 :
• 显示 RQA 评分中涉及的时序路径 , 以及是否有建议可用于帮助解决相关问题
• 显示包含 DONT_TOUCH 属性 ( 可能阻碍最优化 ) 的单元和信号线
等效 Tcl 命令使用 -csv_output_dir 开关 : report_qor_assessment -csv_output_dir <directory>
其他命令选项
• -exclude_methodology_checks : 默认情况下 , 方法论检查是必需的 ( 或者 , 如果先前已运行此命令 , 则会从内部高速缓存中捕获其检查结果) 。该选项允许完全省略方法论检查。如果先前未曾运行此命令 , 那么该选项可以节省编译时间。由于方法论检查在整个实现运行过程中大部分情况下处于静态, 因此建议在实现运行的多个阶段中调用 report_qor_assessment 时使用该选项。
自动终止运行
在基于工程的实现运行中运行 QoR 评估功能时 , 会生成 1 到 5 之间的评分 , 用于指示设计达成时序收敛的可能性是较低还是较高。对于预测发现质量较低的运行, 也可以提前终止 , 相较于继续运行直至结束 , 这样可以提前清空服务器资源。在以下情况下会提前终止运行:
• 当 MIN_RQA_SCORE 运行属性置位时。例如 , 此项设为 3 时 , 所含 RQA 评分为 1 或 2 的设计将被终止。
• 完成 opt_design 后 , 在“ Timing Closure Report Strategy ” ( 时序收敛报告策略 ) 中调用 report_qor_assessment 命令时。如需额外增加调用, 建议采用定制报告策略。
在运行 impl_1 时将 MIN_RQA_SCORE 属性设置为 1 的示例如下所示 :
set_property MIN_RQA_SCORE 3 [get_runs impl_1]