减少控制集的数量 - 2023.2 简体中文

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

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 简体中文

如果控制集的数量过高,请使用以下任一策略来减少其数量:

  • 移除 HDL 源或约束文件中的控制信号上设置的 MAX_FANOUT 属性。复制控制信号会显著增加独立控制集的数量。AMD 建议采用 place_design 来执行大颗粒度复制,并在布局器后使用 phys_opt_design -directive Explore 来实现更精细的复制。这样即可避免非必要的复制以及等效控制集彼此交汇而导致布线拥塞。
  • 增大 Vivado 综合(或其他综合工具)的控制集阈值。复查 report_control_sets -verbose 中的控制集扇出分布表,以判定更合适在综合期间使用的控制集阈值。请注意,增大 contol_set_opt 可能对功耗产生负面影响,因为这样会消除可积极降低功耗的时钟使能。例如:
    synth_design -control_set_opt_threshold 16 
    提示: 使用 BLOCK_SYNTH 综合约束来更改受布局扩散或拥塞影响最大的模块上的控制集阈值。
  • 在综合后,使用 opt_design -control_set_mergeopt_design -merge_equivalent_drivers 来合并等效控制集。
  • 使用 CONTROL_SET_REMAP 属性将驱动同步置位/复位和/或寄存器的 CE 管脚的低扇出控制信号映射到 D 输入。欲知详情,请访问此链接以参阅 Vivado Design Suite 用户指南:实现(UG904) 中的相应内容。
  • 请避免低扇出异步置位/复位(预置/清除),因为它们只能连接到专用异步管脚,而无法通过综合迁移到数据路径。因此,综合控制集阈值选项不适用于异步置位/复位。
  • 请避免针对不同时序单元同时使用高电平有效和低电平有效控制信号。
  • 仅在必要时使用时钟使能和置位/复位。通常,数据路径包含大量寄存器,这些寄存器会自动刷新未初始化的值,其中仅限第一个阶段和最后一个阶段才需要置位/复位或使能信号。