インテル® Quartus® Primeプロ・エディションのユーザーガイド: デザインのコンパイル

ID 683236
日付 6/26/2023
Public
ドキュメント目次

1.7.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 Dashboardで Fast Forward Timing Closure Recommendations をオンにする、もしくは次の割り当てをプロジェクトの .qsf に追加します。
    set_global_assignment -name FLOW_ENABLE_HYPER_RETIMER_FAST_FORWARD ON
    図 85. Fast Forward Timing Closure Recommendationsの有効化
  2. 特定の階層またはエンティティーをFast Forwardコンパイルから除外するには、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コンパイルに含めるには、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コンパイルを含むフルコンパイルを実行します。

単一の .qsf 内の同じインスタンスに対して、ON および OFF の割り当てを混在させることができます。ON および OFF の割り当てを同じインスタンスで混在させる場合は、.qsf で最後に表示される割り当てが優先されます。

デザイン内の階層のサブセットに対してFast Forward解析を実行する場合は、解析から除外するすべての階層でFast Forward解析をオフにします。そうでない場合は、ルート階層でFast Forward解析をオフにし、解析する階層のFast Forward解析をオンにします。次に示す例は、デザイン階層例におけるこれらの割り当ての組み合わせの一部です。

図 86. デザイン階層例
# 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
注: インスタンスの割り当ては、フィット後のネットリストに適用されます。したがって、場合によってはデザイン・パーティションを定義する必要があります。これを行わないと、合成時にインスタンス名が変化し、予期しない割り当て結果が発生する可能性があります。デザイン・パーティションの作成 を参照してください。