实现报告 - 2023.2 简体中文

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

“Implementation Report”(实现报告)包含已运行的综合和布局布线的结果。此报告包含以下几个部分:

“General Information”(常规信息)
提供与设计和实现相关的常规信息。
“Run Constraints and Options”(运行约束和选项)
用于报告为运行的 RTL 综合和/或布局布线所设置的约束和选项。它可为您显示针对运行所设置和/或修改的约束。
“Resource Usage”(资源使用)/“Final Timing”(最终时序)
“Resource Usage”部分和“Final Timing”部分可显示 RTL 综合运行或布局布线运行后实现的资源和时序的摘要信息。这两部分提供了有关是否满足时序目标的高层次资源使用情况和状态概述。后续章节中的信息将提供有关调试时序问题的实用详细信息。
“Resources”(资源)
该表中显示了按模块对资源进行拆分的详细信息。此外,该表还显示了来自源代码的原始变量和源码位置信息。如果用户指定的编译指示生成了特定资源,那么该表中也可显示该资源。这样您即可将自己的 C 语言代码关联到综合后的 RTL 实现内。检查此报告可谓一举多得,因为它是在 Vivado 完成设计综合后生成的,故而 DSP 之类的功能块和其他逻辑单元在电路内全都已完成例化。
“Fail Fast”(快速失败)
Vivado 提供的“Fail Fast”报告可指导您调查该工具遇到的特定问题。在“Fail Fast”报告中,您应关注状态为REVIEW(复查)的所有问题,以改善实现和时序收敛。“Fail Fast”报告的不同部分包括:
  • “Design Characteristics”(设计特性):默认利用率准则基于 SSI 技术器件,对非 SSI 技术器件可以放宽。有一项或多项 REVIEW 检查标记的设计虽可行但难以实现。
  • “Clocking Checks”(时钟设置检查):这些检查至关重要,必须解决。
  • “LUT and Net Budgeting”(LUT 和信号线预算):使用保守方法能更准确预测在器件利用率高的情况下布局后,哪些逻辑路径无法满足时序要求的可能性最高。
图 1. 设计特性


“Timing Paths”(时序路径)
“Timing Paths”报告可显示导致设计的最差裕量的时序关键路径。默认情况下,该工具会显示排名前 10 的最差负时序裕量路径。表中每条路径都包含详细信息,可显示各触发器之间的组合路径。要解决时序问题,就需要中断这些冗长的组合路径。因此,您需要分析这些路径,推理其来源,并将这些路径映射回用户的 C 语言代码。将这些路径和先前的资源表搭配使用有助于判定路径与源代码之间的关系,并将路径反向关联到源代码。

在下图中,可以看到Place & Route(布局布线)报告中排名前 10 的负时序裕量路径的实际逻辑级数 (9) 比完成RTL Synthesis(RTL 综合)后的逻辑级数 (5) 更高,最大扇出也更糟 (64 → 9366)。这明显表明设计中的拥堵导致逻辑级数和扇出增高,从而导致出现问题,无法满足时序。根据这些线索,您可修改自己的设计,通过重写 C 语言代码或者改变有关 BRAM/LUTRAM/URAM 资源选择的设计决策,从而消除其中部分拥塞。

图 2. RTL 综合时序路径