インテルロゴ

intel AN 903 アクセラレーティング タイミング クロージャ

intel-AN-903-Accelerating-Timing-Closure-PRODUCT

AN 903: インテル® Quartus® Prime プロ・エディションでのタイミング・クロージャーの加速

組み込みシステム、IP、および高速インターフェイスを組み合わせた最新の FPGA デザインの密度と複雑さは、タイミング クロージャの課題を増大させます。 遅れたアーキテクチャの変更と検証の課題により、時間のかかる設計の反復が発生する可能性があります。 このドキュメントでは、インテル® Quartus® Prime プロ・エディション・ソフトウェアで検証済みの再現可能な方法論を使用してタイミング・クロージャーを加速するための XNUMX つのステップをまとめています。 この方法論には、最初の RTL 解析と最適化、および自動化された手法が含まれており、コンパイル時間を最小限に抑え、タイミング クロージャに必要な設計の複雑さと反復を削減します。

タイミング クロージャ アクセラレーションの手順

intel-AN-903-Accelerating-Timing-Closure-FIG-1

タイミング クロージャ アクセラレーションの手順

タイミング クロージャ ステップ タイミング クロージャ アクティビティ 詳細情報
ステップ 1: RTL の分析と最適化 •    Design Assistant の違反を修正する 4ページ

•    ロジックレベルを下げる 7ページ

•    ファンアウトの大きいネットを減らす 9ページ

•    インテル Quartus Prime プロ エディション ユーザー ガイド: デザイン 最適化

•    インテル Quartus Prime プロ エディション ユーザー ガイド: デザイン 提言

手順 2: コンパイラの最適化を適用する •    コンパイラ最適化モードの適用 と戦略 13ページ

•    高使用率のための輻輳の削減 16ページ

•    インテル Quartus Prime プロ エディション ユーザー ガイド: デザイン 編集

•    インテル Quartus Prime プロ エディション ユーザー ガイド: デザイン 最適化

ステップ 3: 満足のいく結果を維持する •    クロック、RAM、および DSP のロックダウン 20ページ

•    設計分割結果の保持 21ページ

•    インテル Quartus Prime プロ Edition ユーザー ガイド: Block- ベースデザイン

•    AN-899: コンパイルの削減 高速保存の時間

ステップ 1: デザイン RTL の解析と最適化

通常、デザインのソース コードを最適化することは、結果の品質を向上させるための最初の最も効果的な手法です。 インテル Quartus Prime デザイン・アシスタントは、基本的なデザイン・ルール違反を迅速に修正するのに役立ち、デザインの最適化とタイミング・クロージャーを簡素化する RTL の変更を推奨します。

タイミング クロージャの問題

  • 過剰な論理レベルは、Fitter の処理順序、期間、および結果の品質に影響を与えます。
  • ファンアウトの大きいネットは、リソースの輻輳を引き起こし、データ パスにさらなる緊張を加え、パスの重要度を不必要に高め、タイミング クロージャを複雑にします。 この張力は、パス (およびその高ファンアウト信号を共有するすべてのパス) を高ファンアウト ソースに引き寄せる引力です。

タイミング クロージャ ソリューション

  • 4 ページのデザイン アシスタント違反の修正—デザインに関連する基本的なデザイン ルール違反をすばやく特定して修正します。
  • ロジック レベルの削減 (7 ページ) — デザインのすべての要素が同じ Fitter 最適化を受けられるようにし、コンパイル時間を短縮します。
  • 9 ページの「ファンアウトの大きいネットを減らす」—リソースの輻輳を減らし、タイミング クロージャを簡素化します。

関連情報

  • 「デザイン・アシスタントによるデザイン・ルール・チェック」、 インテル Quartus Prime プロ・エディション ユーザーガイド: デザインの推奨事項
  • 「ソースコードの最適化」、 インテル Quartus Prime プロ・エディション ユーザーガイド: デザインの最適化
  • インテル Quartus Prime プロ・エディション・ユーザーガイド: デザイン最適化の「ファンアウト制御用の重複レジスター」

Design Assistant の違反を修正する

初期設計解析を実行して既知のタイミング クロージャの問題を排除すると、生産性が大幅に向上します。 デフォルト設定で初期コンパイルを実行した後、再コンパイルできます。view Design Assistant は初期分析用にレポートします。 有効にすると、Design Assistant は、インテル FPGA が推奨する設計ガイドラインの標準セットに対する違反を自動的に報告します。 コンパイル フロー モードで Design Assistant を実行できます。 view コンパイルに関連する違反tagあなたが実行します。 あるいは、デザイン アシスタントは、Timing Analyzer および Chip Planner の解析モードで使用できます。

  • コンパイル フロー モード- XNUMX つまたは複数の の間に自動的に実行されますtagコンパイルのes。 このモードでは、Design Assistant はコンパイル中にインフロー (一時的な) データを利用します。
  • 分析モード- Timing Analyzer および Chip Planner から Design Assistant を実行して、特定のコンパイルでの設計違反を分析します。tage、コンパイルフローを進める前。 解析モードでは、Design Assistant は静的コンパイル スナップショット データを使用します。

Design Assistant は、次の重大度レベルのいずれかで各ルール違反を指定します。 デザイン アシスタントがデザインでチェックするルールを指定し、重大度レベルをカスタマイズして、デザインにとって重要ではないルール チェックを省略できます。

Design Assistant ルールの重大度レベル

カテゴリー 商品説明 重大度の色
クリティカル ハンドオフの問題に対処します。 レッド
ハイ 機能障害を引き起こす可能性があります。 設計データが欠落しているか正しくない可能性があります。 オレンジ
パージメディア f の結果の質に影響を与える可能性があるMAX またはリソースの使用率。 ブラウン
ロー ルールは、RTL コーディング ガイドラインのベスト プラクティスを反映しています。

デザイン アシスタントの設定
個々の設計特性とレポート要件に合わせて設計アシスタントを完全にカスタマイズできます。 [割り当て] ➤ [設定] ➤ [Design Assistant ルール設定] をクリックして、さまざまなオブジェクトに適用するルールとパラメータを制御するオプションを指定します。tagデザイン ルール チェックのためのデザイン コンパイルの ES。

デザイン アシスタントのルール設定intel-AN-903-Accelerating-Timing-Closure-FIG-2

デザイン アシスタントの実行
有効にすると、デザイン アシスタントがコンパイル中に自動的に実行され、有効なデザイン ルール違反がコンパイル レポートにレポートされます。 または、特定のコンパイル スナップショットで Design Assistant を分析モードで実行して、そのスナップショットのみに分析を集中させることもできます。tage. コンパイル中に Design Assistant の自動チェックを有効にするには:

  • Design Assistant ルール設定で、コンパイル中に Design Assistant の実行を有効にするをオンにします。 Design Assistant を分析モードで実行して、スナップショットに適用される設計ルールに対して特定のスナップショットを検証するには:
  • Timing Analyzer または Chip Planner Tasks パネルで Report DRC をクリックします。

ViewDesign Assistant の結果の作成と修正
Design Assistant は、さまざまな s で有効なデザイン ルール違反をレポートします。tagコンパイルレポートのes。

デザイン アシスタントによる合成、計画、配置、および最終レポートの結果intel-AN-903-Accelerating-Timing-Closure-FIG-3

に view 各ルールの結果を確認するには、[ルール] リストでルールをクリックします。 ルールの説明と修正のための設計上の推奨事項が表示されます。

Design Assistant ルール違反の推奨事項

intel-AN-903-Accelerating-Timing-Closure-FIG-4

RTL を変更して、デザイン ルール違反を修正します。

ロジックレベルを下げる

設計のクリティカル パスが Fitter の処理順序と期間に影響するため、過剰なロジック レベルは Fitter の結果の品質に影響を与える可能性があります。 Fitter は、タイミング スラックに基づいてデザインを配置および配線します。 Fitter は、スラックが最小の長いパスを最初に配置します。 通常、Fitter は、論理レベルの低いパスよりも論理レベルの高いパスを優先します。 通常、Fitter の後tage が完了しても、残りのクリティカル パスは最上位のロジック レベル パスではありません。 Fitter は、より高いレベルのロジックに優先配置、ルーティング、およびリタイミングを提供します。 ロジック レベルを下げると、デザインのすべての要素が同じ Fitter 優先度を確実に受け取るのに役立ちます。 Timing Analyzer で Reports ➤ Custom Reports ➤ Report Timing を実行して、パス内のロジックのレベルを示すレポートを生成します。 パスのタイミングに問題があり、ロジック レベルの数が多い場合は、デザインのその部分にパイプラインを追加してパフォーマンスを向上させることを検討してください。

パス レポートのロジックの深さ

intel-AN-903-Accelerating-Timing-Closure-FIG-5

レポート ロジック レベルの深さ
コンパイラの Plan の後tage、Timing Analyzer Tcl コンソールで report_logic_depth を実行して、 view クロック ドメイン内のロジック レベルの数。 report_logic_depth は、クリティカル パス間でのロジックの深さの分布を示し、RTL でロジック レベルを削減できる領域を特定できるようにします。

report_logic_depth -panel_name -[get_clocks から] \ -to [get_clocks ]

report_logic_depth 出力intel-AN-903-Accelerating-Timing-Closure-FIG-6

RTL を最適化するためのデータを取得するには、Compiler's Plan の後に report_logic_depth を実行します。tage、残りの Fitter を実行する前tagエス。 それ以外の場合、Fitter 後のレポートには、物理​​的な最適化 (リタイミングと再合成) の結果も含まれます。

近隣パスの報告
Fitter (Finalize) を実行した後tagたとえば、report_neighbor_paths を実行して、クリティカル パスの根本原因を特定できます (例:ampファイル、高いロジック レベル、リタイミングの制限、最適ではない配置、I/O 列の交差、ホールド修正など): report_neighbor_paths -to_clock -npaths -パネル名

report_neighbor_paths は、関連するスラック、追加のパス サマリ情報、およびパス バウンディング ボックスを含む、デザインで最もタイミング クリティカルなパスをレポートします。

report_neighbor_paths 出力intel-AN-903-Accelerating-Timing-Closure-FIG-7

report_neighbor_paths は、各クリティカル パスの前と後の最もタイミング クリティカルなパスを示します。 パスに負のスラックがあり、Path Before または Path After に正のスラックがある場合、パスのリタイミングまたはロジック バランシングにより、タイミング クロージャを簡素化できます。

リタイミングを有効にするには、次のオプションがオンになっていることを確認してください。

  • レジスタの場合 - 割り当てを有効にする ➤ 設定 ➤ コンパイラ設定 ➤ レジスタの最適化 ➤ レジスタのリタイミングを許可
  • RAM エンドポイントの場合—割り当てを有効にする ➤ 設定 ➤ コンパイラ設定 ➤ フィッター設定 (詳細) ➤ RAM リタイミングを許可
  • DSP エンドポイントの場合—割り当てを有効にする ➤ 設定 ➤ コンパイラ設定 ➤ フィッタ設定 (詳細) ➤ DSP リタイミングを許可

注意

さらにロジック バランシングが必要な場合は、手動で RTL を変更してロジックをクリティカル パスからパス 前またはパス アフターに移動する必要があります。
レジスタの出力がその入力に接続されている場合、隣接パスの一方または両方が現在のパスと同一である可能性があります。 スラックが最悪の隣接パスを探す場合、メイン パス自体の動作条件だけでなく、すべての動作条件が考慮されます。

テクノロジー マップでロジック レベルを視覚化する Viewer
テクノロジーマップ Viewer はまた、デザイン ネットリストの回路図、テクノロジー マップされた表現を提供し、ロジック レベルの数を減らすことでメリットが得られるデザインの領域を確認するのに役立ちます。 Chip Planner では、パスの物理レイアウトを詳細に調査することもできます。 いずれかのタイミング パスを見つけるには viewタイミング レポートでパスを右クリックし、[Locate Path] をポイントして [Locate in Technology Map] を選択します。 Viewえー。

ファンアウトの大きいネットを減らす

ファンアウトの大きいネットはリソースの輻輳を引き起こし、タイミング クロージャを複雑にする可能性があります。 一般に、コンパイラは、クロックに関連するファンアウトの大きいネットを自動的に管理します。 Compiler は、認識された高ファンアウト ネットを自動的にグローバル クロック ネットワークにプロモートします。 コンパイラは、Place and Route s 中に高度な最適化作業を行います。tagこれにより、有益なレジスターの複製が行われます。 次のコーナー ケースでは、デザイン RTL に次の手動変更を加えることで、さらに密集を減らすことができます。

ハイ ファンアウト ネット コーナー ケース

デザインの特徴 手動 RTL 最適化
多くの階層または物理的に離れた宛先に到達する高ファンアウト ネット パイプラインの最後のレジスターに duplicate_hierarchy_depth 割り当てを指定して、階層間でファンアウトの大きいネットワークを手動で複製します。 配置時に複製レジスタへの duplicate_register 割り当てを指定します。
組み合わせロジックから DSP または M20K メモリ ブロックへの制御信号を使用する設計 制御信号をレジスタから DSP または M20K メモリにドライブします。

階層間で重複を登録する
パイプラインの最後のレジスターに duplicate_hierarchy_depth 割り当てを指定して、レジスターの複製とファンアウトの作成をガイドできます。 次の図は、次の duplicate_hierarchy_depth 割り当ての影響を示しています。

set_instance_assignment -name duplicate_hierarchy_depth -to \

どこ:

  • register_name - 複数の階層に展開するチェーンの最後のレジスタ。
  • level_number—複製するチェーン内のレジスタの数。

図 9. レジスタ複製前
duplicate_hierarchy_depth 割り当てを設定して、階層全体でレジスタの複製を実装し、チェーンの最後のレジスタに続くレジスタのツリーを作成します。 次の例では、レジスタ名と M で表される重複の数を指定しますampル。 赤い矢印は、重複するレジスタの潜在的な場所を示しています。

  • set_instance_assignment –name DUPLICATE_HIERARCHY_DEPTH –to regZ Mintel-AN-903-Accelerating-Timing-Closure-FIG-8

レジスタの複製 = 1
次の単一レベルのレジスター複製 (M=1) を指定すると、デザイン階層の XNUMX レベル下に XNUMX つのレジスター (regZ) が複製されます。

  • set_instance_assignment –name DUPLICATE_HIERARCHY_DEPTH –to regZ 1intel-AN-903-Accelerating-Timing-Closure-FIG-9

レジスタの複製 = 3
3 レベルのレジスター複製 (M=XNUMX) を指定すると、XNUMX つのレジスター (regZ、regY、regX) がそれぞれ階層の XNUMX、XNUMX、および XNUMX レベル下に複製されます。

  • set_instance_assignment –name DUPLICATE_HIERARCHY_DEPTH –to regZ 3intel-AN-903-Accelerating-Timing-Closure-FIG-10

レジスターを複製して階層にプッシュすることにより、デザインはすべてのデスティネーションに対して同じ数のサイクルを保持しながら、これらのパスのパフォーマンスを大幅に加速します。

配置時の登録重複
12 ページの図 11 は、チップの広範囲に広がる領域への高いファンアウトを持つレジスターを示しています。 このレジスターを 50 回複製することで、レジスターとデスティネーションの間の距離を縮めることができ、最終的にクロックのパフォーマンスが向上します。 duplicate_register を割り当てると、コンパイラは物理的な近接性を利用して、ファンアウトのサブセットに供給する新しいレジスタの配置をガイドできます。

図 12. 配置中のレジスタの複製intel-AN-903-Accelerating-Timing-Closure-FIG-11

注意: チップ全体に信号をブロードキャストするには、マルチを使用しますtagパイプライン。 パイプライン内の各レジスターに duplicate_register 割り当てを適用します。 この手法は、チップ全体に信号をブロードキャストするツリー構造を作成します。

View複製結果の取得
デザイン合成に続いて、 view 重複すると、Compilation Report の Synthesis フォルダーに Hierarchical Tree Duplication Summary レポートが表示されます。 このレポートでは、次の情報が提供されます。

  • duplicate_hierarchy_depth が割り当てられているレジスタに関する情報。
  • 割り当てをさらに改善するための出発点として使用できるチェーンの長さの理由。
  • 実装された複製の構造をよりよく理解するために使用できる、チェーン内の個々のレジスターに関する情報。

Fitter レポートには、 duplicate_register 設定を持つレジスターに関するセクションも含まれています。

コンパイラー最適化手法の適用

非常に高い割合を使用する設計tagFPGA デバイスのリソースが不足すると、リソースの輻輳が発生し、fMAX が低下し、タイミング クロージャがより複雑になる可能性があります。 Compiler の Optimization Mode 設定を使用すると、合成中の Compiler の作業の焦点を指定できます。 例えばampつまり、リソースの輻輳に対処するときに、エリアまたは配線可能性のために合成を最適化します。 インテル Quartus Prime Design Space Explorer II で、これらの最適化モード設定の組み合わせを試すことができます。 これらの設定およびその他の手動手法は、使用率の高いデザインの密集を減らすのに役立ちます。

タイミング クロージャの問題

  • デバイス リソースの使用率が非常に高いデザインでは、タイミング クロージャが複雑になります。

タイミング クロージャ ソリューション

  • コンパイラー最適化モードと戦略の適用 (13 ページ) — デザイン合成の主要な最適化モードの目標を指定します。
  • 16 ページのエリアとルーティング可能性のオプションを試してください。追加の設定コレクションを適用して、輻輳を減らし、エリアとルーティング可能性の目標を満たします。
  • 16 ページの算術集約型デザインのフラクタル合成の検討—高スループットで算術集約型デザインの場合、フラクタル合成は、乗数の正則化、リタイミング、および連続算術パッキングによってデバイス リソースの使用を削減します。

関連情報

  • インテル Quartus Prime プロ・エディション・ユーザーガイド: デザインの最適化の「タイミング・クロージャーと最適化」の章
  • インテル Quartus Prime プロ・エディション ユーザーガイド: デザインのコンパイル

コンパイラの最適化モードと戦略を適用する

次の情報を使用して、コンパイラー最適化モードと Design Space Explorer II (DSE II) コンパイル戦略を適用します。

コンパイラ最適化モード設定の実験
次の手順に従って、コンパイラの最適化モード設定を試してください。

  1. インテル Quartus Prime プロジェクトを作成または開きます。
  2. コンパイラの高レベルの最適化戦略を指定するには、[割り当て] ➤ [設定] ➤ [コンパイラ設定] をクリックします。 4 ページの表 14 で説明されているように、次のモード設定のいずれかを試してください。
  3. これらの設定でデザインをコンパイルするには、Compilation Dashboard で Start Compilation をクリックします。
  4. View コンパイル結果は Compilation Report に表示されます。
  5. [ツール] ➤ [タイミング アナライザー] をクリックして、 view パフォーマンスの最適化設定の結果。

コンパイラ最適化モードの設定

intel-AN-903-Accelerating-Timing-Closure-FIG-22

最適化モード (コンパイラ設定ページ)

最適化モード 商品説明
バランス(正常な流れ) Compiler は、タイミング制約を考慮したバランスのとれた実装のために合成を最適化します。
ハイパフォーマンスの取り組み Compiler は、配置配線中のタイミング最適化作業を増やし、タイミング関連の物理合成の最適化 (レジスター最適化設定ごと) を有効にします。 最適化を追加するたびに、コンパイル時間が長くなる可能性があります。
配置の労力を最大限に高めた高性能 と同じコンパイラ最適化を有効にします。 ハイパフォーマンスの取り組み、追加の配置最適化作業を伴います。
優れた性能 と同じコンパイラ最適化を有効にします。 ハイパフォーマンスの取り組み、および解析と合成中にさらに最適化を追加して、ロジック領域を潜在的に増加させてデザインのパフォーマンスを最大化します。 設計の使用率がすでに非常に高い場合、このオプションを使用するとフィッティングが困難になり、全体的な最適化の品質に悪影響を及ぼす可能性があります。
最大限の配置労力で優れたパフォーマンス と同じコンパイラ最適化を有効にします。 優れた性能、追加の配置最適化作業を伴います。
アグレッシブエリア Compiler は、デザインのパフォーマンスを潜在的に犠牲にして、デザインを実装するために必要なデバイス領域を削減するために積極的な努力をします。
高い配置配線可能性への取り組み Compiler は、設計領域、パフォーマンス、およびコンパイル時間を犠牲にして設計をルーティングするために多大な労力を費やします。 Compiler は、ルーティングの使用率を下げるために追加の時間を費やします。これにより、ルーティング可能性が向上し、動的消費電力も節約できます。
ハイ パッキング ルータビリティの取り組み Compiler は、設計領域、パフォーマンス、およびコンパイル時間を犠牲にして設計をルーティングするために多大な労力を費やします。 Compiler は、レジスターのパッキングに追加の時間を費やすため、ルーティング可能性が向上し、動的消費電力も節約できます。
配線可能性のためのネットリストの最適化 Compiler はネットリストの変更を実装して、パフォーマンスを犠牲にして配線可能性を高めます。
続く…
最適化モード 商品説明
ハイパワーエフォート Compiler は、合成を低消費電力に最適化するために多大な努力を払います。 ハイパワーエフォート 合成実行時間が増加します。
アグレッシブパワー 低電力のために合成を最適化するために積極的な努力をします。 Compiler は、指定または推定トグル レートが最も高い信号の配線使用をさらに削減し、追加のダイナミック消費電力を節約しますが、パフォーマンスに影響を与える可能性があります。
アグレッシブなコンパイル時間 手間とパフォーマンスの最適化を減らして、デザインの実装に必要なコンパイル時間を短縮します。 このオプションは、一部の詳細なレポート機能も無効にします。

注意: 電源を)いれる、(電気・テレビなどを)つける アグレッシブなコンパイル時間 インテル Quartus Prime 設定を有効にします File (.qsf) 設定であり、他の .qsf 設定によって上書きすることはできません。

Design Space Explorer II のコンパイル方法
DSE II を使用すると、リソース、パフォーマンス、または電力の最適化の目標に最適なプロジェクト設定を見つけることができます。 DSE II を使用すると、特定の目標を達成するために、設定と制約のさまざまなプリセットの組み合わせを使用してデザインを繰り返しコンパイルできます。 次に、DSE II は、目標を達成するための最適な設定の組み合わせを報告します。 DSE II もアドバンを取ることができますtag複数のコンピューターでシードをコンパイルする並列化機能。 DSE II Compilation Strategy 設定は、4 ページの表 14 の最適化モード設定を反映します。

デザイン スペース エクスプローラー IIintel-AN-903-Accelerating-Timing-Closure-FIG-12

以下の手順に従って、DSE II のコンパイル方法を指定します。

  1. DSE II を起動する (そして インテル Quartus Prime ソフトウェアを閉じる) には、Tools ➤ Launch Design Space Explorer II をクリックします。 インテル Quartus Prime ソフトウェアが閉じた後、DSE II が開きます。
  2. DSE II ツールバーで、探索アイコンをクリックします。
  3. 探索ポイントを展開します。
  4. 設計探索を選択します。 コンパイル ストラテジのいずれかを有効にして、それらのストラテジを対象とする設計調査を実行します。

高使用率のための輻輳の削減

通常、デバイス リソースの 80% 以上を使用するデザインでは、タイミング クロージャが最も困難になります。 次の手動および自動化された手法を適用して、密集をさらに減らし、タイミング クロージャを簡素化できます。

  • 16 ページのエリアと配線可能性のオプションを試す
  • 16 ページの算数を多用する設計のためのフラクタル合成の検討

エリアと配線可能性のオプションを試す

デバイス使用率が原因で配線の輻輳が発生した場合は、エリアおよび配線可能性の最適化設定を試して、デザインのリソース使用率と輻輳を減らすことができます。 Assignments ➤ Settings ➤ Compiler Settings ➤ Optimization Mode をクリックして、これらの設定にアクセスします。

エリアと配線オプション

intel-AN-903-Accelerating-Timing-Closure-FIG-13

演算を多用する設計のためのフラクタル合成の検討

高スループットの演算集約型設計の場合、フラクタル合成の自動最適化を有効にして、デバイス リソースの使用を改善できます。 フラクタル合成の最適化には、乗算器の正則化とリタイミング、および連続算術パッキングが含まれます。 最適化は、精度の低い算術演算 (加算や乗算など) を多数含む設計を対象としています。 フラクタル合成をグローバルに有効にすることも、特定の乗数のみに対して有効にすることもできます。 理想的な条件下では、フラクタル合成の最適化により、20 ~ 45% の面積削減を達成できます。

乗数の正則化とリタイミング
乗算器の正則化とリタイミングは、高度に最適化されたソフト乗算器の実装の推論を実行します。 コンパイラは、XNUMX つ以上のパイプラインに逆方向のリタイミングを適用する場合がありますtages 必要に応じて。 フラクタル合成を有効にすると、Compiler は乗数の正則化とリタイミングを符号付きおよび符号なし乗数に適用します。

図 16. 乗算器のリタイミングintel-AN-903-Accelerating-Timing-Closure-FIG-14

注意

  • 乗算器の正則化では、ロジック リソースのみが使用され、DSP ブロックは使用されません。
  • 乗算器の正則化とリタイミングは、FRACTAL_SYNTHESIS QSF 割り当てが設定されているモジュールの符号付き乗算器と符号なし乗算器の両方に適用されます。

連続算術パッキング
連続算術パッキングは、インテル® FPGA LAB に収まるように最適なサイズの論理ブロックに算術ゲートを再合成します。 この最適化により、算術ブロックの LAB リソースを最大 100% 使用できます。 フラクタル合成を有効にすると、コンパイラはこの最適化をすべてのキャリー チェーンと XNUMX 入力論理ゲートに適用します。 この最適化により、加算器ツリー、乗算器、およびその他の算術関連ロジックをパックできます。

連続算術パッキング

intel-AN-903-Accelerating-Timing-Closure-FIG-15

注意

連続算術パッキングは、乗数の正則化とは無関係に機能することに注意してください。 したがって、正則化されていない乗数を使用している場合 (独自の乗数を作成するなど) は、連続算術パッキングを引き続き実行できます。 フラクタル合成の最適化は、ディープ ラーニング アクセラレータや、すべての DSP リソースを超える高スループットの演算集約型関数を使用する設計に最適です。 プロジェクト全体でフラクタル合成を有効にすると、フラクタル最適化に適していないモジュールで不要な膨張が発生する可能性があります。

フラクタル合成の有効化または無効化

インテル Stratix® 10 およびインテル Agilex™ デバイスの場合、フラクタル合成の最適化は小さな乗数 (オペランドのビット幅が 7 以下の Verilog HDL または VHDL の A*B ステートメント) に対して自動的に実行されます。 次のいずれかの方法を使用して、これらのデバイスの小さな乗算器の自動フラクタル合成を無効にすることもできます。

  • RTL では、「Multstyle Verilog HDL 合成属性」で説明されているように、DSP multstyle を設定します。 例えばample: (* multstyle = “dsp” *) モジュール foo(…); module foo(..) /* 合成 multstyle = “dsp” */;
  • .qsf で file、次のように割り当てとして追加します。 set_instance_assignment -name DSP_BLOCK_BALANCING_IMPLEMENTATION \DSP_BLOCKS -to r

さらに、インテル Stratix 10、インテル Agilex、インテル Arria® 10、インテル Cyclone® 10 GX デバイスでは、フラクタル合成 GUI オプションまたは対応する FRACTAL_SYNTHESIS .qsf 割り当てを使用して、フラクタル合成をグローバルに、または特定の乗数に対して有効にすることができます。

  • RTL では、次のように altera_attribute を使用します。 (* altera_attribute = “-name FRACTAL_SYNTHESIS ON” *)
  • .qsf で file、次のように割り当てとして追加します。 set_global_assignment -name FRACTAL_SYNTHESIS ON -entity

ユーザー インターフェイスで、次の手順に従います。

  1. [割り当て] ➤ [割り当てエディター] をクリックします。
  2. Assignment Name に Fractal Synthesis を選択し、Value に On を選択し、Entity に算術集約型のエンティティ名を選択し、To 列にインスタンス名を選択します。 To にワイルドカード (*) を入力して、エンティティのすべてのインスタンスを割り当てることができます。

図 18. Assignment Editor でのフラクタル合成の割り当て

intel-AN-903-Accelerating-Timing-Closure-FIG-16

関連情報

  • Multstyle Verilog HDL 合成属性
    • インテル Quartus Prime ヘルプ。

満足のいく結果を維持する

満足のいくコンパイル結果にバックアノテーションを付けて、クロック、RAM、および DSP に関連する大きなブロックの配置を固定することで、タイミング クロージャを簡素化できます。 同様に、デザイン ブロックの再利用手法を使用すると、特定の FPGA ペリフェラルまたはコア ロジック デザイン ブロック (階層デザイン インスタンスを構成するロジック) の満足のいくコンパイル結果を保持し、その後のコンパイルでそれらのブロックを再利用できます。 デザイン ブロックの再利用では、階層インスタンスをデザイン パーティションとして割り当て、コンパイルが成功した後にパーティションを保持してエクスポートします。 満足のいく結果を保存して再利用することで、タイミングが閉じていないデザインの部分のみにコンパイラの労力と時間を集中させることができます。

タイミング クロージャの問題

  • ロックダウンされていない限り、コンパイラは、さまざまな要因に応じて、コンパイルごとに異なる方法でデザイン ブロック、クロック、RAM、および DSP を実装する場合があります。

タイミング クロージャ ソリューション

  • クロック、RAM、および DSP のロックダウン (20 ページ) — 満足のいくコンパイル結果にバック アノテーションを付けて、クロック、RAM、および DSP に関連する大きなブロックの配置をロックダウンします。
  • デザイン パーティション結果の保持 (21 ページ) — タイミングを満たすブロックのパーティションを保持し、他のデザイン ブロックに最適化を集中させます。

関連情報

  • バックアノテーション代入ダイアログボックスのヘルプ
  • AN-899: 高速保存によるコンパイル時間の短縮
  • インテル Quartus Prime プロ・エディション ユーザーガイド: ブロックベースのデザイン

クロック、RAM、および DSP のロックダウン

満足のいくコンパイル結果にバックアノテーションを付けて、クロック、RAM、および DSP に関連する大きなブロックの配置を固定することで、タイミング クロージャを簡素化できます。 大きなブロックの配置を固定することで、より少ないノイズでより高い fMAX を生成できます。 RAM や DSP などの大きなブロックをロックダウンすると効果的です。これらのブロックは通常の LAB よりも接続性が高く、配置中の移動が複雑になるためです。 シードが適切な RAM と DSP の配置から良い結果を生み出す場合、バックアノテーションでその配置をキャプチャできます。 後続のコンパイルは、適切なシードからの高品質の RAM および DSP 配置の恩恵を受けることができます。 この手法は、RAM または DSP の数が非常に少ないデザインではあまりメリットがありません。 Assignments ➤ Back-Annotate Assignments をクリックして、デバイス リソースの割り当てを最後のコンパイルから .qsf にコピーし、次のコンパイルで使用できるようにします。 [バックアノテーション タイプ] リストでバックアノテーション タイプを選択します。

バックアノテーション代入ダイアログボックス

intel-AN-903-Accelerating-Timing-Closure-FIG-17

または、次の quartus_cdb 実行可能ファイルでバックアノテーションを実行できます。 quartus_cdb –back_annotate [–dsp] [–ram] [–clock]

注意

  • 実行可能ファイルは、Back-Annotate Assignments ダイアログ ボックスがまだサポートしていない追加の [–dsp]、[–ram]、および [–clock] 変数をサポートします。

設計分割結果の保持

注意

  • デザインを分割した後、タイミングを満たすブロックの分割を保持し、他のデザイン ブロックに集中して最適化できます。 さらに、Fast Preserve オプションを使用すると、コンパイル時に保存パーティションのロジックがインターフェイス ロジックのみに簡素化されるため、パーティションのコンパイル時間が短縮されます。 Fast Preserve は、ルート パーティションの再利用と部分的な再構成の設計のみをサポートします。 タイミング クロージャが困難なサブモジュールを含むデザインの場合、モジュールのパーティションのスタンドアロン最適化とコンパイルを実行してから、タイミング クロージャ モジュールをエクスポートして、後続のコンパイルで実装を保持できます。

設計分割結果の保持

intel-AN-903-Accelerating-Timing-Closure-FIG-18

ブロック ベースのデザインには、デザインの分割が必要です。 デザインのパーティショニングにより、デザイン内の個々のロジック ブロックを保持できますが、パーティションの交差やフロアプランの影響によりパフォーマンスが低下する可能性もあります。 ブロックベースの設計手法を使用する場合、これらの要素のバランスを取る必要があります。 次の高レベルの手順では、ルート パーティションの再利用設計のパーティション保持フローについて説明します。

  1. [処理] ➤ [開始] ➤ [分析と精緻化の開始] をクリックします。
  2. Project Navigator で、タイミング クローズド デザイン インスタンスを右クリックし、Design Partition をポイントして、23 ページの Design Partition Settings で説明されているように、パーティション タイプを選択します。

デザイン パーティションの作成

intel-AN-903-Accelerating-Timing-Closure-FIG-19

  1. パーティションの Logic Lock フロアプラン制約を定義します。 [Design Partitions] ウィンドウでパーティションを右クリックし、[Logic Lock Region] > [Create New Logic Lock Region] をクリックします。 領域が、パーティション内のすべてのロジックを囲むのに十分な大きさであることを確認してください。
  2. コンパイル後にパーティションの結果をエクスポートするには、Design Partitions ウィンドウで、パーティション .qdb を Post Final Export として指定します。 File.

最終エクスポート後 File

intel-AN-903-Accelerating-Timing-Closure-FIG-20

  1. 設計をコンパイルしてパーティションをエクスポートするには、Compilation Dashboard で Compile Design をクリックします。
  2. インテル Quartus Prime ソフトウェアでトップレベルのプロジェクトを開きます。
  3. Assignments ➤ Settings ➤ Compiler Settings ➤ Incremental Compile をクリックします。 高速保存オプションをオンにします。

高速保存オプション

intel-AN-903-Accelerating-Timing-Closure-FIG-21

  1. [OK]をクリックします。
  2. [パーティションの設計] ウィンドウで、エクスポートされた .qdb をパーティション データベースとして指定します。 File 問題のパーティションに対して。 この .qdb は、プロジェクト内のこのパーティションのソースになりました。 Fast Preserve オプションを有効にすると、Compiler はインポートされたパーティションのロジックをインターフェイス ロジックのみに減らし、パーティションに必要なコンパイル時間を短縮します。

デザイン パーティションの設定

デザイン パーティションの設定

オプション 商品説明
パーティション名 パーティション名を指定します。 各パーティション名は一意で、英数字のみで構成されている必要があります。 インテル Quartus Prime ソフトウェアは、各プロジェクトのリビジョンに対してトップレベル (|) の「root_partition」を自動的に作成します。
階層パス パーティションに割り当てるエンティティ インスタンスの階層パスを指定します。 この値は 新しいパーティションを作成 ダイアログボックス。 ルート パーティション階層パスは | です。
種類 ダブルクリックして、コンパイラがパーティションを処理および実装する方法を制御する次のパーティション タイプのいずれかを指定します。
続く…
オプション 商品説明
•    デフォルト— 標準パーティションを識別します。 Compiler は、関連するデザイン ソースを使用してパーティションを処理します。 files.

•    再構成可能—部分的な再構成フローで再構成可能なパーティションを識別します。 指定する 再構成可能 PR フローでのパーティションの再調整を可能にしながら、合成結果を保持するように入力します。

•    予約コア— コンシューマーがデバイス周辺を再利用することによるコア開発用に予約されている、ブロックベースの設計フロー内のパーティションを識別します。

保存レベル パーティションに対して次の保存レベルのいずれかを指定します。

•    設定されていません— 保存レベルを指定しません。 パーティションはソースからコンパイルされます files.

•    合成された— パーティションは、合成されたスナップショットを使用してコンパイルされます。

•    ファイナル— パーティションは最終スナップショットを使用してコンパイルされます。

保存レベル of 合成された or ファイナル、ソース コードへの変更は合成に表示されません。

空の コンパイラがスキップする空のパーティションを指定します。 この設定は、 予約コア および パーティション データベース File 同じパーティションの設定。 の 保存レベル 設定されていません. 空のパーティションに子パーティションを含めることはできません。
パーティション データベース File パーティション データベースを指定します File (.qdb) パーティションのコンパイル中にコンパイラが使用します。 s の .qdb をエクスポートします。tag再利用するコンパイルの e (合成または最終)。 .qdb をパーティションに割り当てて、それらの結果を別のコンテキストで再利用します。
エンティティの再バインド • PR フロー — 各実装リビジョンでデフォルトのペルソナを置き換えるエンティティを指定します。

• ルート パーティション再利用フロー — コンシューマー プロジェクトで予約済みのコア ロジックを置き換えるエンティティを指定します。

Chip Planner および Design Partition Planner 表示でのパーティションの色分けを指定します。
合成後のエクスポート File Analysis & Synthesis が実行されるたびに、パーティションの合成後のコンパイル結果を、指定した .qdb に自動的にエクスポートします。 root_partition を含む、保持された親パーティションを持たないデザイン パーティションを自動的にエクスポートできます。
最終エクスポート後 File パーティションの最終コンパイル後の結果を、指定した .qdb に自動的にエクスポートします。tagFitter の e が実行されます。 root_partition を含む、保持された親パーティションを持たないデザイン パーティションを自動的にエクスポートできます。

AN 903 文書改訂履歴

このドキュメントには、次の改訂履歴があります。

ドキュメントバージョン インテル Quartus Prime バージョン 変更
2021.02.25 19.3 の「引っ張る」を「引っ張る」に置き換えた デザイン RTL の解析と最適化 トピック。
2020.03.23 19.3 コード s の構文エラーを修正amp「クロック、RAM、および DSP のロックダウン」トピックのファイル。
2019.12.03 19.3 • 最初の公開リリース。

ドキュメント/リソース

intel AN 903 アクセラレーティング タイミング クロージャ [pdf]ユーザーガイド
AN 903 アクセラレーティング タイミング クロージャー、AN 903、アクセラレーティング タイミング クロージャー、タイミング クロージャー

コメントを書く

あなたのメールアドレスは公開されません。 必須フィールドは、マークされています *