report_qor_suggestions
Tcl 命令可自动应用这种最优化技巧。使用 MUXF* 原语能为拥有大量逻辑层或苛刻时钟要求的关键路径提供帮助,同时还可以降低功耗。MUXF* 包括 MUXF7、MUXF8 和 MUXF9,这些均为位于 CLB 中的专用多路复用器资源。这些资源在布局阶段按最多 8 个 LUT 进行分组。这种分组方式会通过提高布线需求来强制提高 CLB 输入使用率,并在网表连接方式较为复杂时限制布局灵活性,从而潜在提高布线拥塞并导致时序劣化。
此外,opt_design
命令可提供可选 MUX 最优化阶段以将 MUXF* 结构重新映射至 LUT3 原语,从而提高可布线性。您可使用 -muxf_remap
选项以重新映射所有 MUXF* 单元。或者,在已发生拥塞的区域中选定数量的单元上将 MUXF_REMAP 属性设置为 TRUE,以限制 MUX 重新映射范围。在 opt_design
期间,MUXF_REMAP 属性设置为 TRUE 的任意 MUXF* 单元都会自动触发 MUX 最优化阶段并重新映射到 LUT3。
下图显示了 MUXF* 最优化前后的 16-1 MUX。
要在执行 MUX 最优化后对网表进行最优化,请使用 -remap
选项与 -muxf_remap
选项。如果可能,这将把 MUXF* 最优化所生成的 LUT3 原语与已连接的逻辑组合在一起。
布局或布线完成后,您可通过复查 log 日志文件或“Design Analysis”(设计分析)报告 (report_design_analysis
-congestion
) 中的“Router Initial Estimated Congestion”(布线器初始估算拥塞)表来确定时序收敛是否受布线拥塞影响。
在下图中,“Design Analysis”(设计分析)报告显示 7% 的器件受到方向为“South”(南方)的“Short”(短距离)拥塞等级 5 (32x32 CLB) 的影响,并且在对应的拥塞区域中 MUXF 使用率为 26%。
在 Vivado IDE 中,可选中“Design Analysis”(设计分析)拥塞表中的某一行以在Device(器件)窗口中高亮显示对应的拥塞区域。下图显示拥塞与 MUXF 密度较高区域存在重叠。在 Vivado IDE Tcl 控制台中使用以下命令以洋红色高亮显示 MUXF 单元:
highlight_objects -color magenta [get_cells -hier -filter REF_NAME=~MUXF*]
MUXF* 包含 MUXF7/MUXF8/MUXF9,这些均为位于 CLB 中的专用多路复用器资源。这些资源在布局阶段按最多 8 个 LUT 进行分组,通过提高布线需求强制提高 CLB 输入使用率并限制布局灵活性。使用 Vivado IDE 指标显示每个 CLB 估算的拥塞。
当高 MUXF* 使用率与高拥塞区域重叠时,AMD 建议通过将 MUXF* 的对应功能映射到具有更高的布局和布线灵活性的 LUT 以减少 MUXF* 的数量。您可在 XDC 综合约束中使用以下命令来修改网表:
set_property BLOCK_SYNTH.MUXF_MAPPING 0 [get_cells inst_name4]
重新运行综合、布局和布线后,“设计分析”报告中经过更新的拥塞表现在会显示“南”向“短”距离拥塞有所降低(等级 4),这通常表示时序结果质量已有所提高。