控制集表示时钟信号、时钟使能信号和置位/复位信号的唯一组合。每个 slice 都支持有限数量的控制集,以供位于其中的触发器组合使用。根据所使用的架构,部分控制集允许在 slice 内共享。用户应熟悉目标系列的“Configurable Logic Block”(可配置逻辑块架构)才能理解兼容性规则。
报告主要包含以下 2 部分:
- 控制集的绝对数量。任意给定器件中控制集的有限数量。超出建议的控制集数量可能对 QoR 造成不利影响。
- 控制器的负载剖析。需减少控制集时,减少包含少量负载的控制集数量最有效,因为这给设计增加的逻辑量最少。
以下是“Control Sets Report Summary”(控制集报告汇总)示例。请遵循 适用于 FPGA 和 SoC 的 UltraFast 设计方法指南(UG949) 中有关控制集数量的建议进行操作。
图 1. 控制集汇总表
通常在综合时复制的信号线很可能出现重叠,从而给布线资源施加较大的压力。通常由物理综合所复制的信号线重叠较少,计算控制集最大数量时可忽略。
当控制集计数超过建议数量时,用户应使用 BEL 计数最少的负载来最优化控制集以减少其数量。以下提供了直方图汇总报告以供概览:
图 2. 控制集直方图表
如果需要更多目标信息,-hierarchical
和 -hierarchical_depth
开关将有助于突出显示特定目标层级。综合 BLOCK_SYNTH.CONTROL_SET_THRESHOLD 属性可用于在特定层级重新设置控制集目标。
控制集报告还可提供设计中使用的“Flip Flop Distribution”(触发器分布)类型的详细信息。Vivado 无法重新设置异步复位的复位控制目标。
图 3. 控制集触发器分布
要获取设计中的所有控制集的综合列表,请使用 -verbose
开关。它可列出每个控制集的如下信息:
- “Clock Signal”(时钟信号):逻辑时钟信号名称
- “Enable Signal”(使能信号):逻辑时钟使能信号名称
- “Set/Reset Signal”(置位/复位信号):逻辑置位/复位信号名称
- “Slice Load Count”(分片负载计数):包含连接到控制集的单元的唯一 slice 数量
- “BEL Load Count”(BEL 负载计数):连接到控制集的单元数量