合成設定 - 2023.2 日本語

Vivado Design Suite ユーザー ガイド: 合成 (UG901)

Document ID
UG901
Release Date
2023-11-01
Version
2023.2 日本語
  1. Flow NavigatorSettings をクリックするか、Synthesis をクリックするか、Flow >Settings > Synthesis Settings をクリックします。

    次の図に示す [Settings] ダイアログ ボックスが開きます。



  2. Constraints エリアの Default Constraint Set で、デフォルトでアクティブな制約セットとする制約セットを選択します。制約セットは、ザイリンクス デザイン制約 (XDC) で記述されたデザイン制約を含む複数の制約ファイルのセットです。デザイン制約には、次の 2 種類があります。
    物理制約
    ピン配置、ブロック RAM、LUT、フリップフロップなどのセルの相対/絶対配置、およびデバイス コンフィギュレーション設定を定義します。
    タイミング制約
    デザインの周波数要件を定義します。タイミング制約を設定しない場合、Vivado Design Suite ではデザインがワイヤの長さおよび配線の密集度にのみ基づいて最適化されます。

    制約管理に関する詳細は、 『Vivado Design Suite ユーザー ガイド: 制約の使用』 (UG903) を参照してください。

    選択した制約セットが新しい run に使用されると、Vivado 合成でこの制約セットにデザインの変更が保存されます。

  3. Options エリアで、Strategy ドロップダウン リストから合成 run に使用する合成ストラテジを選択します。次の図に示す定義済みストラテジがあります。


    あらかじめ定義されたストラテジから選択するか、または独自のストラテジを定義できます。合成ストラテジを選択すると、使用可能な Vivado ストラテジがダイアログ ボックスに表示されます。オプションの値を変更すると、run ストラテジの作成 に説明されているように、合成ストラテジの設定を変更できます。

    すべてのストラテジおよびその設定は、次の -directive オプションのリストおよび Vivado であらかじめ定義されている合成ストラテジ を参照してください。

  4. 表で次の合成オプションを設定します。
    flatten_hierarchy
    Vivado 合成での階層の制御方法を指定します。
    なし
    階層をフラット化しません。合成の出力には、元の RTL と同じ階層が含まれます。
    full
    最上位以外の階層をすべてフラット化します。
    rebuilt
    この設定の場合、階層がフラットになり、合成が実行された後、元の RTL に基づいて階層が再構築されます。この設定を使用すると、境界を越えた最適化を実行できるので QoR が向上し、最終的な階層は RTL と似たものになるので解析しやすくなります。
    gated_clock_conversion
    ゲーテッド クロックをイネーブルに変換する機能をオン/オフにします。

    ゲーテッド クロックの変換を使用するには、RTL 属性も必要です。詳細は、GATED_CLOCKを参照してください。

    bufg
    デザインで推論可能な BUFG の最大数を指定します。Vivado ツールでは、このオプションは、デザイン ネットリストのほかの BUFG が合成プロセスで認識されない場合に使用します。

    RTL にインスタンシエートされている BUFG の数が検出され、指定された数までの BUFG が推論されます。たとえば、-bufg オプションが 12 に設定されており、RTL に 3 つの BUFG がインスタンシエートされている場合、Vivado 合成でさらに 9 個までの BUFG を推論可能です。

    directive
    -effort_level オプションを置き換えます。Vivado 合成の最適化方法を指定します。すべてのストラテジとその設定は、Vivado であらかじめ定義されている合成ストラテジ を参照してください。値は次のとおりです。
    デフォルト
    デフォルト設定。詳細は、Vivado であらかじめ定義されている合成ストラテジ を参照してください。
    RuntimeOptimized
    実行するタイミング最適化の回数を少なくし、いくつかの RTL 最適化を取り除いて、合成の実行時間を短縮します。
    AreaOptimized_high
    三項加算インプリメンテーションの強制、コンパレータのキャリー チェーンの使用に対する新しいしきい値の適用、エリアで最適化されたマルチプレクサーのインプリメントを含む、全般的なエリア最適化を実行します。
    AreaOptimized_medium
    制御セット最適化しきい値の変更、三項加算インプリメンテーションの強制、専用 DSP ブロック推論のしきい値の低減、シフト レジスタのブロック RAM 内への移動、コンパレータのキャリー チェーンの使用に対するしきい値の低減、エリアで最適化されたマルチプレクサーの操作を含む、全般的なエリア最適化を実行します。
    AlternateRoutability
    配線性を向上するアルゴリズムを実行します。MUXF および CARRY の使用数が削減します。
    AreaMapLargeShiftRegToBRAM
    大型のシフト レジスタを検出し、専用ブロック RAM を使用してインプリメントします。
    AreaMultThresholdDSP
    専用 DSP ブロック推論のしきい値を低くします。
    FewerCarryChains
    オペランド サイズのしきい値を高くし、キャリー チェーンの代わりに LUT を使用します。
    LogicCompaction
    より少ないスライスを使用してロジックがコンパクトになるように CARRY チェーンと LUT を並べ替えます。これはタイミング QoR に悪影響を及ぼす可能性があります。
    PerformanceOptimized
    ロジック段数の削減を含む全般的なタイミング最適化を実行します。エリアが増加する可能性があります。
    PowerOptimized_high
    ロジック段数の増加を含む全般的なタイミング最適化を実行します。エリアが増加する可能性があります。
    PowerOptimized_medium
    ロジック段数を削減して全般的なタイミング最適化を実行します。エリアが増加する可能性があります。
    retiming
    AMD Versal™ 以外のデバイスのみ。Versal でリタイミングを制御するには、-no_retiming オプションを選択します。ブール値オプションは <on|off> で、組み合わせゲートまたは LUT の反対側にレジスタを自動的に移動することにより、クロック間のシーケンシャル パスのパフォーマンスを向上します。元の動作および回路のレイテンシは保持され、RTL ソースを変更する必要はありません。デフォルト値は off です。
    注記: OOC モードでリタイミングを実行する場合、ポートで駆動されるレジスタおよびポートを駆動するレジスタはリタイミングされません。
    no_retiming
    このフローは Versal デバイス専用です。Versal では、リタイミングはデフォルトでオンになっています。リタイミングをオフにするには、このブール値オプションを off にします。Versal 以外のデバイスには効果ありません。
    fsm_extraction
    有限ステート マシンの抽出およびマップ方法を指定します。オプションについては、FSM_ENCODINGを参照してください。
    keep_equivalent_registers
    同じ入力ロジックを使用するレジスタが統合されないようにします。
    resource_sharing
    異なる信号間での算術演算子の共有を設定します。設定可能な値は auto、on、off です。auto に設定すると、リソースの共有はデザインのタイミングに応じて実行されます。
    control_set_opt_threshold
    クロック イネーブル最適化のしきい値を設定し、制御セットの数を削減します。デフォルトは auto で、ターゲット デバイスに基づいてツールにより値が選択されます。有効な値は正の整数です。

    制御セットをレジスタの D ロジックに移動するために必要なファンアウトの数を指定します。ファンアウトがこの指定値より大きい場合は、その信号でレジスタの control_set_pin が駆動されるよう試みられます。

    no_lc
    オンにすると、LUT の組み合わせがオフになります。
    no_srlextract
    オンにするとデザイン全体で SRL の抽出がオフになり、SRL は単純なレジスタとしてインプリメントされます。
    shreg_min_size
    SRL の推論のしきい値を設定します。デフォルト値は 3 です。この値は、遅延が固定されたチェーンの SRL (スタティック SRL) が推論される順次エレメントの数を設定します。ストラテジによって、5 および 10 に設定されることもあります。すべてのストラテジとその設定は、Vivado であらかじめ定義されている合成ストラテジ を参照してください。
    max_bram
    デザインで使用可能なブロック RAM の最大数を指定します。このオプションは通常、デザインにブラック ボックスまたはサードパーティ ネットリストが含まれており、それらのネットリスト用にエリアを確保するために使用します。
    注記: デフォルト設定は -1 で、指定のパーツで使用可能な最大数に設定されます。
    max_uram
    デザインで使用可能な UltraRAM (AMD UltraScale+™ デバイスのブロック RAM) ブロックの最大数を指定します。デフォルト設定は -1 で、指定のパーツで使用可能な最大数に設定されます。
    max_dsp
    デザインで使用可能なブロック DSP の最大数を指定します。このオプションは通常、デザインにブラック ボックスまたはサードパーティ ネットリストが含まれており、これらのネットリスト用にエリアを確保するために使用します。デフォルト設定は -1 で、指定のパーツで使用可能な最大数に設定されます。
    max_bram_cascade_height
    ツールでカスケード接続可能なブロック RAM の最大数を指定します。デフォルト設定は -1 で、指定のパーツで使用可能な最大数に設定されます。
    max_uram_cascade_height
    ツールでカスケード接続可能な UltraScale+ デバイスの UltraRAM ブロックの最大数を指定します。デフォルト設定は -1 で、指定のパーツで使用可能な最大数に設定されます。
    cascade_dsp
    DSP ブロック出力の合計の加算をインプリメントする方法を制御します。デフォルトでは、DSP 出力の合計はブロックのビルトイン加算チェーンを使用して算出されます。tree に設定すると、合計はファブリックにインプリメントされます。設定可能な値は auto、tree、force で、デフォルトは auto です。
    no_timing_driven
    (オプション): デフォルトのタイミング ドリブン合成アルゴリズムをディスエーブルにします。これにより合成の実行時間が短縮されますが、合成に対するタイミングの影響は無視されます。
    sfcu
    合成をシングル ファイル コンパイル ユニット モードで実行します。
    assert
    VHDL アサート文の評価をイネーブルにします。エラーの場合は合成フローが停止してエラー メッセージが表示され、警告の場合は警告メッセージが表示されます。
    debug_log
    合成ロジック ファイルにデバッグ用の追加情報を表示します。-debug_log は、[More Options] フィールドに追加する必要があります。
    • tcl.pre および tcl.post オプションでは、合成の前後に実行する Tcl ファイルのフックです。
      注記: tcl.pre および tcl.post スクリプト内のパスは、現在のプロジェクトに関連付けられている run ディレクトリ <project>/<project.runs>/<run_name> を基準としています。

      Tcl スクリプトに関する詳細は、 『Vivado Design Suite ユーザー ガイド: Tcl スクリプト機能の使用』 (UG894) を参照してください。

      スクリプト内の相対パスを定義するには、現在のプロジェクトまたは現在の run の DIRECTORY プロパティを使用します。

  5. Finish をクリックします。