跨 Vitis 版本或目标平台进行移植时,设计性能和时序收敛可能不尽相同,满足以下任一条件时差异尤为明显:
- 需通过布局规划约束来收敛时序。
- 器件或 SLR 资源使用率高于典型指标:
- LUT 使用率高于 70%
- DSP、RAMB 和 UltraRAM 使用率高于 80%
- FD 使用率高于 50%
- 需要大量编译策略才能收敛时序。
使用率指标提供了一个阈值,如果高于该阈值,则设计编译耗时更长,或者性能可能低于初始估算值。对于通常需要使用多个 SLR 的大型设计,在验证任何布局规划约束的同时指定内核或 DDR 与
v++ --config
选项的关联(如 将内核端口映射到存储器 中所述)即可确保: - 每个 SLR 的使用率都低于建议的指标。
- 如果某一种类型的硬件资源需高于指标,则在各 SLR 之间平衡使用率。
对于整体使用率较高的设计,以更高的时延为代价增加内核中的流水打拍量可以极大帮助实现时序收敛并实现更高的性能。
为便于快速复查以上列出的所有方面,请使用快速失败 (fail-fast) 报告,此报告是在整个 Vitis 应用加速开发流程中使用 -R
选项生成的,如下所述(欲知详情,请参阅 控制报告生成):
-
v++ –R 1
-
report_failfast
在每个内核综合步骤结束时运行 -
report_failfast
在对整个设计执行opt_design
之后运行 -
opt_design
DCP 已保存
-
-
v++ –R 2
- 所生成的报告与使用
-R 1
时相同,并且: -
report_failfast
是每个 SLR 的后布局操作 - 生成其他报告和中间 DCP
- 所生成的报告与使用
所有报告和 DCP 均可在实现目录中找到,包括内核综合报告:
<runDir>/_x/link/vivado/prj/prj.runs/impl_1
如需了解有关时序收敛和快速失败报告的更多信息,请参阅 适用于 FPGA 和 SoC 的 UltraFast 设计方法指南(UG949)。