块级综合策略 - 2023.2 简体中文

Versal 自适应 SoC 硬件、IP 和平台开发方法指南 (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 简体中文

借助 Vivado 综合,您可使用各种策略和全局设置来自定义设计的综合方式。大多数情况下,这些选项均为全局选项并且影响整个设计。您可使用块级综合策略,通过自上而下的流程采用不同全局选项来对不同层级进行综合。相比于自下而上编译,此流程更快且更易于执行。您可以为整个设计设置约束,而不必先为较低层级设置约束然后再针对顶层进行重新设置。

在 XDC 文件中使用以下语法设置块级综合策略:

set_property BLOCK_SYNTH.<option_name> <value> [get_cells <instance_name>]

其中:

  • <option_name> 为要设置的选项。
  • <value> 为要分配给该选项的值。
  • <instance_name> 为要在其中设置该选项的层级实例。
注释: 这些属性始终在层级实例上进行设置。这样即可通过不同选项对已多次例化的模块或实体进行综合。

例如,您可以在 XDC 文件中设置以下策略:

set_property BLOCK_SYNTH.RETIMING 1                 [get_cells U1]
set_property BLOCK_SYNTH.STRATEGY {AREA_OPTIMIZED}  [get_cells U2]
set_property BLOCK_SYNTH.STRATEGY {AREA_OPTIMIZED}  [get_cells U3]
set_property BLOCK_SYNTH.STRATEGY {DEFAULT}          [get_cells U3/inst1]

Vivado 综合的执行方式如下图所示。

图 1. 块级综合策略示例

为了尝试不同的选项,您可以在同一实例上设置多种 BLOCK_SYNTH 属性。例如:

set_property BLOCK_SYNTH.STRATEGY {ALTERNATE_ROUTABILITY} [get_cells inst]
set_property BLOCK_SYNTH.FSM_EXTRACTION {OFF} [get_cells inst]

当使用 IP 时,您可以使用下列块级综合策略:

  • 如果 IP 采用全局编译,那么您可在 IP 顶层使用该策略。
  • 对于非关联 IP,则不能使用该策略,因为此 IP 是 1 个黑盒。应改为在编译 IP 时使用全局设置。
注释: 如需了解有关该功能以及受支持的策略和选项的更多信息,请参阅 Vivado Design Suite 用户指南:综合(UG901)