报告豁免 - 2023.2 简体中文

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

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

建议验证豁免的违例是否符合预期。必须在定义豁免后且最终比特流之前执行此操作。

“Report CDC”(CDC 报告)、“Report DRC”(DRC 报告)和“Report Methodology”(方法论报告)命令支持多种报告模式:

  • 默认情况下,report_cdcreport_drcreport_methodology 命令仅报告未豁免的违例。
  • 请使用 -waived 来强制 report_cdcreport_drcreport_methodology 命令仅报告已豁免的违例。必须复审报告,确认所有已豁免的违例都符合预期。
  • 使用 -no_waiver 可强制 report_cdcreport_drcreport_methodology 命令在不应用豁免的情况下运行。在此模式下,所有违例无论是否豁免都会包含在报告中。

在命令行和 GUI 的“Report”对话框窗口中提供了 3 种报告模式。下图来自“Report DRC”,显示了“Waivers”(豁免)部分下的报告模式选择。在“Report CDC”和“Report Methodology”小组件下同样包含此“Waivers”部分。

图 1. 豁免的报告模式

当 CDC、DRC 和 Methodology GUI 的结果窗口中包含已豁免的违例时,这些窗口存在显而易见的差异,每个违例前的图标都不同,且结果窗口的名称包含已豁免的违例数量。

注释: 已豁免的 CDC、DRC 和 Methodology 违例的结果窗口中无法创建豁免。

以下示例显示了已豁免的 DRC 的结果窗口,其中仅含 2 项豁免违例。

图 2. 已豁免的 DRC 违例

要获取所有豁免和已豁免的违例的汇总报告,请使用 report_waivers 命令。此报告只能从 Tcl 控制台使用。

report_waivers 仅报告由 report_cdcreport_drcreport_methodology 命令提取的统计数据。要获取准确的统计数据,需在运行 report_waivers 前以及对豁免进行任意修改(添加或删除)时运行 report_cdcreport_drcreport_methodology。无论是从命令行还是从 GUI 运行报告,都会更新统计数据。如果未能获得统计数据更新,report_waivers 会发出以下 1 条或多条消息,具体取决于哪些 CDC、DRC 或 Methodology 信息已过期:

WARNING: [Vivado_Tcl 4-972] Waiver counts for 'CDC' will be invalid because 
report_cdc has not been run since waivers were changed; please run the report_cdc 
command.
WARNING: [Vivado_Tcl 4-972] Waiver counts for 'DRC' will be invalid because 
report_drc has not been run since waivers were changed; please run the report_drc 
command.
WARNING: [Vivado_Tcl 4-972] Waiver counts for 'METHODOLOGY' will be invalid because 
report_methodology has not been run since waivers were changed; please run the 
report_methodology command.

来自 report_waivers 的报告包含汇总表格和对应每项 CDC、DRC 和 Methodology 豁免的详细表格。表格中包含以下列:

  • “Total Vios”(违例总数):应用豁免前的违例总数。将报告的违例数量(不含违例)。按端点数量计算多比特规则数量。
  • “Remaining Vios”(剩余违例数):应用豁免后的违例数。没有任何违例获得豁免时,此数值与“Total Vios”相同。按端点数量计算多比特规则数量。
  • “Waived Vios”(已豁免的违例数):已豁免的违例数。没有任何违例获得豁免时,此数值为 0。按端点数量计算多比特规则数量。
  • “Used Waivers”(已用豁免数):已豁免部分违例的豁免数。如果豁免包含某些模式或通配符,则每项豁免均可应用于多项违例。
  • “Set Waivers”(已落实的豁免数):已应用于设计的豁免数。理想情况下,“Used Waivers”与“Set Waivers”的数值应相同。当某些豁免已定义但不匹配任何违例时,这两者的数值不匹配。

默认情况下,在详细表格中仅报告已定义部分豁免的规则。但是,首个“Summary”(汇总)表会报告设计中的所有违例。

图 3. report_waivers 默认报告

通过使用命令行选项 -show_msgs_with_no_waivers,详细表格可报告含违例的所有检查,与此项特定规则是否存在豁免无关。

图 4. report_waivers -show_msgs_with_no_waivers

除上述报告外,report_waivers 还可导出具有匹配的 CDC、DRC 或 Methodology 违例的豁免列表以及不含任何匹配的违例的豁免列表。-write_valid_waivers 选项可用于导出含匹配的违例的豁免,而 -write_ignore_waivers 可用于导出不含任何匹配的违例的豁免。建议复查不匹配任何违例的豁免列表。如果不应出现不匹配的豁免,则请确保这些豁免的定义正确。

-write_valid_waivers-write_ignore_waivers 选项可根据最近执行的 report_cdcreport_drcreport_methodology 命令所报告的信息来对豁免进行筛选。当通过规则卡或少量检查运行 report_drcreport_methodology 时,对于尚未运行的检查可忽略部分豁免。建议在使用 -write_valid_waivers-write_ignore_waivers 前运行所有 DRC/Methodology 检查。例如:

report_cdc -all_checks_per_endpoint
report_drc -checks [get_drc_checks]
report_methodology -checks [get_methodology_checks]
report_waivers -write_valid_waivers -file waivers_valid.xdc
report_waivers -write_ignored_waivers -file waivers_ignored.xdc