减少控制集 - 2023.2 简体中文

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

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 简体中文
注释: report_qor_suggestions Tcl 命令可自动应用这种最优化技巧。

复位或时钟使能等控制信号经常会遭到忽视。很多设计人员在进行 HDL 编码时都以“if reset”语句作为开始,而不考虑是否需要复位。虽然所有寄存器都支持复位和时钟使能,但其使用会从最高时钟频率、使用率和功耗方面对最终实现产生显著影响。

首先需要考量的因素即控制集的数量。控制集是时序单元使用的时钟信号、使能信号和置位/复位信号的组合。例如,如果 2 个单元连接到同一个时钟,但只有其中 1 个单元具有复位或者只有其中 1 个单元具有时钟使能,这 2 个单元的控制集就不同。固定不变或不使用的使能和置位/复位寄存器管脚也会构成控制集。

第二个需要考量的因素是目标架构。能封装到一起的控制集数量取决于架构:

  • 7 系列器件 slice 或半 CLB 包含 8 个寄存器,这些寄存器全部共享同一个时钟、同一个置位/复位和同一个时钟使能。针对每 8 个一组的寄存器,只能使用 1 个控制集。
  • 每个 UltraScale 器件半 CLB 都包含两组寄存器,每组 4 个,并共享同一个时钟和同一个置位/复位。此外,每组 4 个寄存器包含 1 个时钟使能,可忽略置位/复位。固定的置位/复位信号不进行布线,因此可忽略。固定的使能信号作为动态使能信号来处理,需进行布线。在最优化状况下,针对每组 8 个寄存器最多可使用 2 个控制集。

由控制集导致的 CLB 封装限制会迫使布局器移动部分寄存器,包括其输入 LUT。在某些情况下,寄存器将迁移至非理想位置。由于逻辑扩散(信号线延迟更长)和互连资源使用率提高,距离的增加不仅会对使用率产生不利影响,而且还会对布局 QoR 和功耗产生负面影响。对于含大量低扇出控制信号(例如馈送单寄存器的时钟使能信号)的设计,这是需要考量的主要问题。

尽管 UltraScale 器件 CLB 控制集容量更高,但典型设计所显示的控制集使用率与 7 系列设计相近。因此,对于这两种架构,AMD 给予相同的建议。