文档目录

1.10.3.1. 按层次Fast Forward编译

启用后,默认Fast Forward编译将在整个设计层次上运行。您也可以指定Enable Hyper-Retimer Fast Forward Hierarchy analysis during compilation约束以便在Fast Forward编译期间包含或不包含特定设计子层次和实例。此技术允许您将Fast Forward报告和优化工作效力集中在设计的特定区域。按层次结构进行Fast Forward编译生成的报告与对整个层次结构进行的Fast Forward编译生成的报告相同。

按照以下步骤以在Fast Forward编译期间包含或不包含特定设计子层次结构和实例:

  1. 要在完整编译过程中启用可选的Fast Forward Compilation,请在Compilation Dashboard上打开Fast Forward Timing Closure Recommendations或者将以下任务添加到工程.qsf中:
    set_global_assignment -name FLOW_ENABLE_HYPER_RETIMER_FAST_FORWARD ON
    图 103. 使能Fast Forward Timing Closure Recommendations
  2. 要从Fast Forward Compilation中排除特定层次结构或实体,请在Assignment Editor中,将Enable Hyper-Retimer Fast Forward Hierarchy analysis during compilation约束设置为Off,或者将以下约束添加到您需要排除的每个层次或实体的工程.qsf中:
    set_global_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY OFF \
        <INSTANCE MODULE NAME>
  3. 要将特定层次或实体包含到Fast Forward Compilation中,请在Assignment Editor中,将Enable Hyper-Retimer Fast Forward Hierarchy analysis during compilation约束设置为On,或者将以下约束添加到您需要包含的每个层次结构或实体的工程.qsf中:
    set_global_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY ON \
         <INSTANCE MODULE NAME>
  4. 在Compilation Dashboard上点击Fast Forward Timing Closure Recommendations,阶段,或单击Processing > Start Compilation来运行包含Fast Forward Compile的完整编译。

您可以在单个.qsf内部对同一实例混合使用ONOFF约束。如果您将混合的ONOFF约束分配给同一实例,则.qsf中排在最后的约束优先运行。

如果要对设计中的层次结构子集执行Fast Forward分析,请关闭要从分析中省略的所有层次结构的Fast Forward分析。否则,请从根层次结构关闭Fast Forward分析,并打开要分析的层次结构的Fast Forward分析。以下示例显示了其中一些约束组合,请参阅设计层次结构实例

图 104. 设计层次结构实例
# This runs Fast Forward Compile on the entire hierarchy: A,B,C,D,E,F
# This produces the same result as if FAST_FORWARD_HIERARCHY was not set in the QSF

set_global_assignment -name FLOW_ENABLE_HYPER_RETIMER_FAST_FORWARD ON
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY ON -to |
# Runs Fast Forward Compile on B and E only, ignores A,C,D,F

set_global_assignment -name FLOW_ENABLE_HYPER_RETIMER_FAST_FORWARD ON
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY OFF -to |
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY ON -to B
# Runs  Fast Forward Compile on C only, ignores A,B,D,E,F

set_global_assignment -name FLOW_ENABLE_HYPER_RETIMER_FAST_FORWARD ON
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY OFF -to |
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY ON -to C
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY OFF -to F
# ON instance HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY takes precedence
# Fast Forward Compile runs on only C and F
# If the assignments were reversed then FFC would not run

set_global_assignment -name FLOW_ENABLE_HYPER_RETIMER_FAST_FORWARD ON
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY OFF -to |
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY OFF -to C
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY ON -to C
# This runs on A,B,C,F

set_global_assignment -name FLOW_ENABLE_HYPER_RETIMER_FAST_FORWARD ON
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY OFF -to D
set_instance_assignment -name HYPER_RETIMER_FAST_FORWARD_ON_HIERARCHY OFF -to E
注: 实例约束适用于布局布线后网表。因此,您可能需要定义设计分区。否则,实例名称可能会在综合期间发生变化,从而导致意外的约束结果。请参阅创建设计分区