インクリメンタル合成 - 2023.2 日本語

Versal アダプティブ SoC ハードウェア、IP、およびプラットフォーム開発設計手法ガイド (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 日本語

インクリメンタル合成を使用すると、既存の合成結果を再利用できます。この機能を使用すると、通常合成コンパイル時間が 50% 短縮されます。インクリメンタル インプリメンテーション フローと共に使用すると、全体的なコンパイル時間およびタイミング クロージャの一貫性も向上します。

デザインは、合成されたときに複数の RTL パーティションに分割されます。インクリメンタル合成では、前回の合成 run からの RTL パーティションが再利用されます。RTL パーティションは通常、論理階層に基づいて作成されます。インクリメンタル合成は、50000 個以上のインスタンスを含む RTL パーティションが 4 個以上作成されたデザインに対してのみ実行されます。インスタンスには、論理階層と RTL プリミティブの両方が含まれます。

次に、synth_design -incremental_mode <value> コマンドを使用する場合の異なるモードを示します。

off
インクリメンタル合成は実行しません。
quick
実行時間は最短になりますが、境界を越える最適化は実行されません。ロジック動作周波数は制限されます。
default
境界を越える最適化を含む、ほとんどのロジック最適化がイネーブルになります。非インクリメンタル合成と比較すると、コンパイル時間は大幅に短縮されます。
aggressive
すべての最適化がイネーブルになります。非インクリメンタル合成と比較すると、コンパイル時間は大幅に短縮されます。

通常、quick モードは低パフォーマンス デザインにのみ推奨されます。一般的なデザインでは、境界を越える最適化を実行しない場合、クロック周波数が低下します。デザイン階層境界にレジスタを付けて適切に構築されている場合は、達成可能なクロック周波数に影響しないこともあります。境界を越える最適化の制限により、あるエリアの再合成は、そのエリア内で RTL が変更された場合にのみ実行されます。別の合成パーティションが変更されても、そのパーティション外の変更はトリガーされません。これにより、再利用が増加し、合成が高速化されます。ほかのモードではこのようにならず、RTL の変更により、セルが存在するパーティションだけではなく、より多くのパーティションが再合成される可能性があります。50% を超えるパーティションが変更されると、デザイン全体が再合成されます。

高パフォーマンス デザインでは、defaultaggressive、および off モードが推奨されます。aggressive および off モードではより多くの最適化がイネーブルになり、再合成が増加しますが、QoR が向上する可能性があります。

コンパイル時間を短縮することが重要な場合は、インクリメンタル合成と OOC 合成を比較してみます。OOC 合成は通常 IP に使用され、自動的に設定されます。インクリメンタル合成を使用したグローバル合成では、境界を越える最適化が実行され、コンパイル時間も短縮されます。次の点を考慮します。

  • コンパイル時間

    OOC 合成は、毎回エラボレートされるコードの量が削減されるので、高速に実行されます。RTL は、OOC モジュール内でその RTL が変更された場合にのみエラボレートされます。

  • パフォーマンス

    インクリメンタル合成は、OOC 境界を超える最適化を実行できるため、OOC 合成よりも最大クロック周波数の面で優れています。

  • セットアップ

    非 IP フローで OOC 合成 run を作成する際は、上位のモジュールからジェネリック/パラメーターを渡す場合にラッパーを作成する必要があります。また、OOC レベルのポートをターゲットとするには、個別のタイミング制約ファイルを作成する必要があります。インクリメンタル合成には、これらの要件はありません。

詳細は、 『Vivado Design Suite ユーザー ガイド: 合成』 (UG901) を参照してください。