减少 MUXF 映射 - 2023.2 简体中文

适用于 FPGA 和 SoC 的 UltraFast 设计方法指南 (UG949)

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 简体中文
提示: 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。

图 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%。

图 2. report_design_analysis 拥塞表格中的南向短距离拥塞

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 估算的拥塞。

图 3. Vivado IDE 的Device窗口中高亮的 MUXF 拥塞

当高 MUXF* 使用率与高拥塞区域重叠时,AMD 建议通过将 MUXF* 的对应功能映射到具有更高的布局和布线灵活性的 LUT 以减少 MUXF* 的数量。您可在 XDC 综合约束中使用以下命令来修改网表:

set_property BLOCK_SYNTH.MUXF_MAPPING 0 [get_cells inst_name4]

重新运行综合、布局和布线后,“设计分析”报告中经过更新的拥塞表现在会显示“南”向“短”距离拥塞有所降低(等级 4),这通常表示时序结果质量已有所提高。

图 4. 降低模块的 MUXF 使用率后的初始布线器拥塞表