インテル Quartus Prime プロ・エディションのユーザーガイド: デザイン最適化
バージョン情報
更新対象: |
---|
インテル® Quartus® Prime デザインスイート 19.3 |
この翻訳版は参照用であり、翻訳版と英語版の内容に相違がある場合は、英語版が優先されるものとします。翻訳版は、資料によっては英語版の更新に対応していない場合があります。最新情報につきまし ては、必ず英語版の最新資料をご確認ください。 |
1. デザインフローの概要
FPGAデザインを最適化するには、面積、クリティカル・パス遅延、消費電力、および実行時間を削減しながら、デザイン目標を達成する多次元アプローチが必要です。 インテル® Quartus® Primeソフトウェアには、これらの問題のそれぞれに対処するためのアドバイザーが含まれています。 アドバイザーの提案を実装することで、デザイン反復に要する時間を短縮できます。
1.1. デバイスに関する考慮事項
1.1.1. デバイス選択の検討事項
インテル® Quartus® Primeソフトウェアでデザインのターゲットデバイスを選択すると、DeviceダイアログボックスのMigration Devicesボタンをクリックすると、互換性のあるデバイスのリストが表示されます。
1.2. 初期コンパイルに必要な設定
1.2.1. I/O割り当てのガイドライン
- I/O割り当てを指定するときは、タイミング解析とフィッターの最適化に インテル® Quartus® Primeソフトウェアが正確なI/Oタイミング遅延を使用していることを確認してください。
1.2.2. 時間制約のガイドライン
1.3. トレードオフと制限
トレードオフ | 注記 |
---|---|
リソースの使用とクリティカル・パスのタイミング | 論理重複などの特定の手法では、領域の増加を犠牲にしてタイミング性能を向上させることができます。 |
電力要件によって、エリアとタイミングのトレードオフが発生する可能性があります。 | 例えば、使用可能な高速タイルの数を減らすか、クリティカル・パス・ネットを犠牲にしてハイ・パワー・ネットを短くしようとすることです。 |
システムコストと市場投入までの考慮事項は、デバイスの選択に影響する可能性があります。 | 例えば、高速グレード以上のクロック・ネットワークを持つデバイスは、より高い消費電力とシステム・コストを犠牲にしてタイミング・クロージャーを容易にすることができます。 |
最後に、過酷な制約は、選択されたデバイスにとって可能な解決策ではない限りデザインの実現可能性を制限します。 Fitterがリソースの制限、タイミング制約、または電源制約のためにデザインを解決できない場合、HDLコードの一部を書き換えることを検討してください。
1.3.1. エリアの削減
1.3.2. クリティカル・パス遅延の削減
1.3.3. 消費電力の削減
1.3.4. ランタイムの短縮
インテル® Quartus® Primeソフトウェアは、複数のプロセッサーを搭載したコンピューターで並列コンパイルをサポートしています。 これにより、コンパイル時間を最大15%短縮できます。
1.4. 新しいツールにより容易にデザインを最適化
1.4.1. デザイン・ビジュアライゼーション・ツール
インテル® Quartus® Primeソフトウェアは、デザインのグラフィカル表現を表示するツールを提供します。
ツール | 説明 |
---|---|
RTL Viewer | デザインの完全なリコンパイルは合成と配置配線から成ります。 |
Technology Map Viewer | 合成および配置配線後の選択されたデバイス・アーキテクチャーにおけるデザイン実装の略図を提供します。 必要に応じて、タイミング情報を含めることができます。 |
Design Partition Planner | パーティションとエンティティー・レベルでデザインを表示し、エンティティー間の接続性を表示できます。 |
Design Partition Planner and Chip Planner | パーティションとエンティティー・レベルでデザインを表示し、エンティティー間の接続性を表示できます。 |
Chip Planner | フロアプランの割り当てを行い、電力解析を実行し、クリティカル・パスとルーティング輻輳を視覚化することができます。 |
1.4.2. アドバイザー
- Timing Optimization Advisor
- Power Optimization Advisor
- Compilation Time Advisor
1.4.3. Design Exploration
1.5. Design Space Explorer II
デザインがタイミングまたはエリア要件を満たしている場合は、DSE IIを使用してさまざまなシードを試し、タイミングまたはエリア要件を満たすシードを1つ見つけることができます。
DSE IIは、デザインプロセスのどの段階でも実行できます。ただし、デザインに大きな変更を加えると、設定を最適化することで得られる利益を無力化できるため、 Intel® FPGAでは、デザインサイクルの後半でDSE IIを実行することを推奨します。
1.5.1. DSE IIの仕組み
DSE IIでは、exploration pointはAnalysis&Synthesis、Fitter、および配置設定の集まりであり、探索ポイントのグループはdesign explorationです。 デザインの探索には、異なる種の種を含めることもできます。
DSE IIは、各探査ポイントに対応する設定を使用してデザインをコンパイルします。 コンパイルが完了すると、DSE IIは指定した最適化目標と比較してパフォーマンス・データを評価します。 タイミング、エリア、またはパワーを最適化するようにDSE IIに指示できます。
1.5.1.1. コンピューティング・リソースの使用
ラップトップまたは標準のコンピューターを使用している場合、単一のコンパイル機能を使用して、より高いコンピューティング・パフォーマンスとメモリー容量を備えたワークステーションでデザインをコンパイルできます。
コンピューティング・ファームで実行している場合、コンパイルが完了するまで実行を続けながら、すべてのジョブを送信した後、DSE IIを安全に終了するように指示できます。オプションで、コンパイルが完了したときに電子メールを受信できます。
SSHを使用してジョブを起動する場合、リモートホストは公開鍵認証と秘密鍵認証を有効にする必要があります。パスフレーズで暗号化された秘密鍵の場合、 quartus_dse実行可能ファイルが鍵にアクセスできるように、リモートホストはssh鍵エージェントを実行して秘密鍵を復号化する必要があります。
1.5.1.2. 最適化パラメーター
DSE IIは、最適化したい焦点を絞った一連の定義済み探査スペースを提供します。 さらに、一連のコンパイルシードを定義できます。 探索点数は、シードの数に探索モードの数を掛けたものです。
DSE GUIでは、Explorationページでこれらの設定を指定します。
1.5.1.3. 結果管理
DSE IIはコンパイル結果を比較して、デザインに最適な インテル® Quartus® Primeソフトウェア設定を決定します。Reportページに結果の概要が表示されます。
探索では、DSE IIはすべての探索ポイントのすべてのタイミングコーナーの中から、最悪のスラック値を選択します。ワーストケースのセットアップスラックまたはホールドスラックを最適化する場合は、 インテル® Quartus® Primeソフトウェアでタイミング制約を指定します。
ディスクスペース
デフォルトでは、DSE IIはすべてのコンパイルデータを保存します。コンパイルの完了後に保存するファイルのタイプを制限することにより、ディスク容量を節約できます。これらの設定は、ExplorationページのResultsセクションにあります。
レポート
DSE IIには、すべての探索ポイントにわたって、最悪の場合のスラックなどの重要な設計指標をすばやく決定するのに役立つレポートツールがあります。
DSE IIは、探索したすべてのポイントのパフォーマンス・データ・レポートを提供し、プロジェク・トディレクトリーのproject-name.dse.rptファイルに情報を保存します。 DSE IIは、 インテル® Quartus® Primeアーカイブファイル(.qar)での探索ポイントの設定をアーカイブします。
1.5.2. DSE IIユーティリティーを使用したデザイン探索の実行
この説明では、デザイン探索を実行するときに定義する必要がある設定の種類について説明します。 GUIで使用可能なすべてのオプションの詳細については、 インテル® Quartus® Primeのヘルプを参照してください。
DSE IIツールを使用してデザイン探索を実行するには、
-
DSE
IIツールを起動します。
インテル® Quartus® Primeソフトウェアで開いているプロジェクトがあり、DSE IIを起動すると、 インテル® Quartus® Primeソフトウェアを閉じるかどうかを尋ねるダイアログボックスが表示されます。Yesをクリックします。
- Projectページで、探索したいプロジェクトとリビジョンを指定します。
- Setupページで、ローカルまたはリモートのどちらの閲覧を実行するかを指定し、ジョブの起動を設定します。
- Explorationページで、最適化設定と目標を指定します。
- ファイルがインポートされたら、Nextをクリックします。
1.6. デザイン最適化の概要改訂履歴
この章には、次の改訂履歴が適用されます。
ドキュメント・バージョン | インテル® Quartus® Primeバージョン | 変更内容 |
---|---|---|
2018.05.07 | 18.0.0 |
|
2017.11.06 | 17.1.0 |
|
2016.10.31 | 16.1.0 |
|
2016.05.03 | 16.0.0 | 複数のプロセッサを使用する場合のシリアル等価に関するステートメントを削除。 |
2015.11.02 | 15.1.0 | Quartus IIをQuartus Primeに変更。 |
2014.12.15 | 14.1.0 |
|
2014年6月 | 14.0.0 | フォーマットを更新。 |
2013年11月 | 13.1.0 | HardCopyのマイナー変更。 |
2013年5月 | 13.0.0 | 初期コンパイル要件に関する情報を追加。このセクションは、 インテル® Quartus® Primeハンドブックの領域最適化の章から移動されました。 タイミングとエリア最適化の章の区分を示すためのマイナーアップデート。 |
2012年6月 | 12.0.0 | サーベイ・リンクを削除。 |
2011年11月 | 10.0.3 | テンプレートを更新。 |
2010年12月 | 10.0.2 | 新しいドキュメント・テンプレートに変更。内容に変更は無い。 |
2010年8月 | 10.0.1 | リンクを修正。 |
2010年7月 | 10.0.0 | 初回リリース。 第2巻のセクションIIIのトピックとテキストに基づく章。 |
2. デザイン・ネットリストの最適化
この章では、 インテル® Quartus® Prime Netlist Viewerを使用してデザインを解析およびデバッグする方法について説明します。
FPGAデザインのサイズと複雑さが増すにつれて、デザインを解析、デバッグ、最適化、制約する能力は非常に重要になります。 今日の高度なデザインでは、何人かのデザイン・エンジニアがさまざまなデザイン・ブロックのコーディングと合成に関与しているため、デザインの分析とデバッグが困難になっています。 インテル® Quartus® Prime RTL ViewerおよびTechnology Map Viewerは、デバッグ、最適化、制約入力の各プロセス中に、初期および完全にマッピングされた合成結果を表示するための強力な方法を提供します。
2.1. デザイン問題の分析のためにNetlist Viewersを使用する場合
Netlist Viewersを使用して、デザインを解析およびデバッグすることができます。次の簡単な例は、RTL ViewerとTechnology Map Viewerを使用してデザインプロセスで発生した問題を分析する方法を示しています。
RTL Viewerを使用すると、最初の合成結果を表示して、必要なロジックが作成されているかどうか、およびロジックと接続がソフトウェアによって正しく解釈されているかどうかを判断できます。RTL Viewerを使用して、シミュレーションやその他の検証プロセスの前にデザインを視覚的に確認することができます。デザインプロセスのこの初期段階でデザインエラーを捉えると、貴重な時間を節約できます。
検証中に予期しない動作が発生した場合、RTL Viewerを使用してネットリストをトレースし、デザイン内の接続とロジックが予想通りであることを確認してください。 デザインを表示すると、デザインの問題の原因を見つけて分析するのに役立ちます。 RTLビューアでデザインが正しいと思われる場合、デザインプロセスの後半の段階に分析を集中させ、検証フロー自体の潜在的なタイミング違反や問題を調査することを推奨します。
Technology Map Viewerを使用して、Analysis and Synthesisの最後に結果を確認できます。 Fitterステージでデザインをコンパイルした場合、マッピング後ネットリストをTechnology Map Viewer(Post-Mapping)に表示し、フィット後ネットリストをTechnology Map Viewerに表示できます。 解析と合成のみを実行した場合、両方のNetlist Viewersに同じマッピング後ネットリストが表示されます。
さらに、RTL ViewerまたはTechnology Map Viewerを使用して特定の信号の発生源を見つけることができるため、デザインのデバッグに役立ちます。 この章で説明されているナビゲーション手法を使用して、デザインを簡単に検索できます。 関心のある地点からさかのぼって信号の発信元を見つけ、接続が予想どおりであることを確認できます。
Technology Map Viewerを使用すると、ネットリストで合成後のノードを見つけ、デザインを最適化するときに割り当てを行うことができます。 この機能は、デザイン内の2つのレジスター間でマルチサイクル・クロック・タイミングを割り当てるときに便利です。 I/Oポートから開始し、デザインおよび階層レベルを順方向または逆方向にトレースして目的のノードを見つけるか、または回路図を視覚的に調べて特定のレジスターを見つけます。
FPGAのデザイン、デバッグ、および最適化の各段階で、さまざまな方法ですべてのネットリスト・ビューアを使用して、デザインを分析しながら生産性を高めることができます。
2.2. Netlist Viewersによる インテル Quartus Primeデザインフロー
プリプロセッサーのプロセスボックスのリンクをクリックしてSettings > Compilation Process Settingsページに移動し、Run Netlist Viewers preprocessing during compilationオプションをオンにすることができます。 このオプションをオンにすると、前処理はプロジェクト全体のコンパイルフローの一部になり、前処理ダイアログボックスを表示せずにNetlist Viewerがすぐに開きます。
この図は、Netlist Viewersが基本的な インテル® Quartus® Primeデザインフローにどのように適合するかを示しています。
Netlist Viewerでプリプロセッサステージを実行する前に、デザインをコンパイルする必要があります。
- RTL Viewerを開くには、まず分析とエラボレーションを実行します。
- Technology Map Viewer(フィッティング後)またはTechnology Map Viewer(マッピング後)を開くには、まず解析と合成を実行します。
- そのため、解析およびエラボレーション中にエラーを引き起こすデザイン変更を行った場合、新しいデザインファイルのネットリストは表示できませんが、最後に正常にコンパイルされたデザインファイルの結果は表示できます。
- コンパイル中にエラーが発生し、プロジェクトに適切なコンパイルステージをまだ正常に実行していない場合、Netlist Viewerは表示できません。この場合、 インテル® Quartus® Primeソフトウェアは、ネットリストビューアを開こうとするとエラーメッセージを発行します。
2.3. RTL Viewerの概要
Verilog HDL Design Files (.v)、SystemVerilog Design Files (.sv)、VHDL Design Files (.vhd)、AHDL Text Design Files (.tdf)、または回路図Block Design Files (.bdf)を含むサポートされている インテル® Quartus® Primeデザイン入力方法を使用するデザインの分析とエラボレーション後の結果を表示できます。
合成ツールを介してVerilog Quartus Mapping File(.vqm)またはElectronic Design Interchange Format(.edf)ファイルを生成するデザインのアトムプリミティブ(デバイス・ロジック・セルやI/Oポートなど)の階層を表示することもできます。
- インテル® Quartus® Prime プロ・エディション 統合合成で合成されたデザインの場合、このビューには、 インテル® Quartus® Primeのソフトウェアがデザインファイルを解釈する方法が表示されます。
- サードパーティの合成ツールで合成されたデザインの場合、このビューには合成ツールで生成されたネットリストが表示されます。
RTL Viewerを実行する インテル® Quartus® Primeプロジェクトでは、最初にデザインを分析してRTLネットリストを生成します。デザインを解析してRTLネットリストを生成するには、Processing > Start > Start Analysis & Elaborationをクリックします。また、コンパイルフローの最初の分析と詳細化の段階を含む任意のプロセスで完全なコンパイルを実行できます。
RTL Viewerを開くには、Tools > Netlist Viewers > RTL Viewerをクリックします 。
2.3.1. RTL Viewerでの可読性の最大化
RTL Viewerはデザインを表示している間、ネットリストを最適化して読みやすくします。
- ファンアウト(未接続の出力)またはファンイン(未接続の入力)がないロジックをディスプレイから削除します。
- VCCやGNDなどのデフォルト接続を非表示にします。
- ピン、ネット、ワイヤ、モジュールポート、および特定のロジックを、必要に応じてバスにグループ化します。
- 一定のバス接続をグループ化します。
- 値を16進形式で表示します。
- NOTゲートを回路図のバブル反転シンボルに変換します。
- 同等の組み合わせゲートのチェーンを1つのゲートにマージします。たとえば、2入力ANDゲートに給電する2入力ANDゲートは、1つの3入力ANDゲートに変換されます。
2.3.2. RTL Viewerの実行
インテル® Quartus® Primeプロジェクトに対してRTL Viewerを実行するには:
-
Processing > Start > Start Analysis & Elaborationをクリックしてデザインを解析し、RTLネットリストを生成します。
インテル® Quartus® Primeのコンパイル・フローの最初のAnalysis & Elaborationステージを含む任意のプロセスを実行することもできます。
- Tools > Netlist Viewers > RTL ViewerをクリックしてRTL Viewerを開きます。
2.4. Technology Map Viewerの概要
Technology Map Viewerは、デザイン内のアトムプリミティブ(デバイス・ロジック・セルやI/Oポートなど)の階層を表示します。サポートされているデバイスファミリーの場合、ロジックセル(LCELL)内の内部レジスターとルック・アップ・テーブル(LUT)、およびI Oアトムプリミティブのレジスターも表示できます。
可能な場合、 インテル® Quartus® Primeソフトウェアは、合成全体を通じて各階層のポート名を維持します。ただし、ソフトウェアによってポート名が変更またはデザインから削除される場合があります。たとえば、ソフトウェアは、合成中に未接続またはGNDまたはVCCによって駆動されているポートを削除します。ポート名が変更されると、ソフトウェアはデザイン内の関連するユーザーロジック名、またはIN1やOUT1などの汎用ポート名を割り当てます。
合成、フィッティング、またはタイミング解析の後に、 インテル® Quartus® Primeテクノロジーにマップされた結果を表示できます。Technology Map Viewerを実行するには Startの インテル® Quartus® Primeプロジェクト、Processingメニューで、ポイントとターゲット・テクノロジにデザインを合成し、マッピングするためにStart Analysis & Synthesisをクリックします。この段階で、Technology Map Viewerには、Technology Map Viewer(Post‑Mapping)と同じポスト・マッピング・ネットリストが表示されます。完全なコンパイル、またはコンパイルフローに合成段階を含むプロセスを実行することもできます。
Fitterステージを完了したデザインの場合、Technology Map ViewerはFitterが物理合成の最適化を通じてネットリストを変更した方法を示し、Technology Map Viewer(Post‑Mapping)はマッピング後のネットリストを示します。 Timing Analysisステージを完了すると、Technology Map ViewerのTiming Analyzerレポートからタイミングパスを見つけることができます。
Technology Map Viewerを開くには、Tools > Netlist Viewers > Technology Map Viewer (Post-Fitting)またはTechnology Map Viewer (Post Mapping)をクリックします。
2.5. Netlist Viewerのユーザー・インターフェイス
RTL ViewerとTechnology Map Viewerは、それぞれ次の主要部分で構成されています。
- Netlist Navigatorペイン—プロジェクト階層の表現を表示します。
- Findペイン—回路図ビューで特定のデザイン要素を見つけて見つけることができます。
- Propertiesペイン—ショートカット・メニューからPropertiesを選択すると、選択したブロックのプロパティーが表示されます。
- 概略図—デザインの内部構造をグラフィカルに表示します。

Netlist Viewersには、スケマティック・ビューで使用するツールを提供するツールバーも含まれています。
- スケマティック・ビューを切り替えるには、BackボタンとForwardボタンを使用します。 バックからビューに変更を加えていない場合にのみ先に進むことができます。 これらのコマンドは、ノードの選択などの操作を元に戻すことはありません。 Netlist Viewerは、フィルタリング、階層ナビゲーション、ネットリスト・ナビゲーション、ズームアクションなど、最大10個のアクションをキャッシュします。
- スケマティック・ビューを復元してレイアウトを最適化するには、Refreshボタンをクリックします。 デザインを変更して再コンパイルしても、Refreshはデータベースをリロードしません。
- Findボタンをクリックすると、Findパネルが開閉します。
- Selection ToolとZoom Toolボタンをクリックして、選択モードとズームモードを切り替えます。
- Fit in Pageボタンをクリックすると、回路図ビューがリセットされ、デザイン全体が表示されます。
- 遠近感を変えずにビューアの焦点を変えるには、Hand Toolを使用します。
- Area Selection Toolをクリックして、エリア内のポート、ピン、およびノードの周囲に選択ボックスをドラッグします。
- Netlist Navigatorボタンをクリックして、Netlist Navigatorペインを開閉します。
- Color SettingsボタンをクリックしてColorsペインを開き、Netlist Viewerの配色をカスタマイズできます。
-
Display SettingsボタンをクリックしてDisplayペインを開くと、次の設定を指定できます。
- Show full nameまたはShow only <n> characters。Node name、Port name、Pin name、またはBus nameに対して個別に指定できます。
- Show timing infoをオンまたはオフにします。
- Show node typeをオンまたはオフにします。
- Show constant valueをオンまたはオフにします。
- Show flat netsをオンまたはオフにします。
図 4. ディスプレイの設定 - Bird's Eye Viewボタンを押すと、Bird's Eye Viewウィンドウが開き、デザインの縮小版が表示されます。デザイン内を移動してスケマティック・ビューの倍率をすばやく調整できます。
- Show/Hide Instance Pinsボタンをクリックすると、Netlist ViewerとTiming Analyzer間のクロス・プロービングなどの機能によって表示されないインスタンスピンの表示を切り替えることができます。 ノードをフィルタ処理した結果、未接続または未使用のピンが多数発生した場合、このボタンを使用して未接続のインスタンスピンを非表示にすることもできます。 Netlist Viewerは、デフォルトでInstanceピンを非表示にします。
- Netlist Viewerの表示に複数のページが含まれる場合、Show Netlist on One Pageボタンをクリックするとネットリスト・ビューが1ページにサイズ変更されます。 この操作により、ネットリストのトレースが容易になります。
RTL Viewer、Technology Map Viewer (Post-Fitting)ウィンドウ、およびTechnology Map Viewer (Post-Mapping)ウィンドウは同時に1つだけ開くことができます。ただし、各ウィンドウには複数のページがあり、それぞれに複数のタブがあります。 たとえば、2つのRTL Viewerウィンドウを同時に開くことはできません。
2.5.1. Netlist Navigatorペイン
Netlist Navigatorペインでは、デザイン階層をたどって各レベルのロジック回路図を表示できます。Netlist Navigatorの要素を選択して回路図ビューで強調表示することもできます。
デザイン階層内の各モジュールについて、Netlist Navigatorペインに次の表に示す該当する要素が表示されます。 「+」アイコンをクリックして要素を展開します。
エレメント | 説明 |
---|---|
Instances | 下位階層レベルに拡張できるデザイン内のモジュールまたはインスタンス。 |
Primitives | プリミティブは下位階層まで拡張できない下位レベル・ノードです。 |
Ports |
現在の階層レベルのI/Oポート。
|
2.5.2. Propertiesペイン

Propertiesダイアログボックスには、選択したノードに関する以下の情報が表示されます。
- Fan-inタブには、Input portとFan-in Nodeが表示されます。
- Fan-outタブには、Output portとFan-out Nodeが表示されます。
- Parametersタブには、インスタンスのParameter NameとValuesが表示されます。
- Portsタブには、Port NameおよびConstant値(例えば、VCCまたはGND)が表示されます。次の表に、ポートの可能な値を示します。
値 | 説明 |
---|---|
VCC |
ポートは未接続で、GND値(GNDに接続)を持ちます。 |
GND | ポートは未接続で、GND値(GNDに接続)を持ちます。 |
-- | ポートは接続されており、値(VCCまたはGND以外)を持ちます。 |
Unconnected | ポートは未接続で、値を持ちません(ハンギング)。 |
選択したノードがアトムプリミティブの場合、Propertiesペインには内部ロジックの回路図が表示されます。
2.5.3. Netlist ViewersのFindペイン
2.6. 回路図
RTL ViewerとTechnology Map Viewerは、デフォルトで回路図を単一ページに表示しようとします。 回路図が複数のページにまたがっている場合、ネットを強調表示し、コネクタを使用して単一ページの信号をトレースできます。
2.6.1. 複数タブ表示での回路図の表示
New Tab Netlist Navigator
- New Tabで空白のビューを作成する
- フォーカスのあるタブのDuplicate Tabを作成する
- Cascade Tabsを選択する
- Tile Tabsを選択する
- フォーカスのあるタブのClose Tabを作成する
- フォーカスのあるタブ以外のすべてのタブを閉じるには、Close Other Tabsを選択する
2.6.2. 回路図シンボル
シンボル | 説明 |
---|---|
I/O Ports |
現在の階層レベルの入力、出力、または双方向ポート。 最上位階層を表示するときのデバイスの入力、出力、または双方向ピン。 シンボルはバスを表すこともできます。 双方向パスに接続されている1本のワイヤのみが示されています。 入力シンボルは回路図の一番左側に表示されます。 回路図の右端に、出力シンボルと双方向シンボルが表示されます。 |
I/O Connectors |
同じ階層の別のページから来るネットを表す入力または出力コネクター。 移動元または移動先を含むページに移動するには、コネクターをダブルクリックして適切なページに移動します。 |
OR, AND, XOR Gates |
OR、AND、またはXORゲート・プリミティブ(ポート数はさまざま)。入力ポートまたは出力ポートの小さな丸(バブル記号)は、ポートが反転していることを示します。 |
MULTIPLEXER |
ポート0とポート1の間で選択を行うセレクター・ポートを持つマルチプレクサー・プリミティブ。演算子として3つ以上の入力を持つマルチプレクサが表示されます。 |
BUFFER |
バッファー・プリミティブである。この図は反転出力イネーブルポートを備えたトライステート・バッファーを示しています。 イネーブルポートのない他のバッファーには、LCELL、SOFT、CARRY、およびGLOBALがあります。 NOTゲートおよびEXPエキスパンダー・バッファーは、イネーブルポートおよび反転出力ポートなしでこのシンボルを使用します。 |
LATCH |
ラッチ/DFF(データ・フリップフロップ)プリミティブ。 DFFには、ラッチおよびクロックトリガと同じポートがあります。
他のフリップフロップ・プリミティブも同様です。
|
Atom Primitive |
アトム・プリミティブ。 シンボルは、原子名、ポート名、および原子タイプを表示します。 青い網掛けは、内部の詳細を表示できるアトム・プリミティブを示しています。 |
Other Primitive |
前のカテゴリーに入らない任意のプリミティブ。 プリミティブは低レベルのノードで、下位の階層には展開できません。 記号は、ポート名、プリミティブ型または演算子型、およびその名前を表示します。 |
Instance |
プリミティブまたは演算子(ユーザー定義の階層ブロック)に対応しないデザイン内のインスタンス。 シンボルはポート名とインスタンス名を表示します。 |
Encrypted Instance |
デザイン内のユーザー定義の暗号化されたインスタンス。 シンボルはインスタンス名を表示します。 ソースデザインは暗号化されているため、下位階層の回路図を開くことはできません。 |
RAM |
レジスターされた入力とオプションで登録された出力を持つ同期メモリー・インスタンス。 シンボルはデバイスファミリーとメモリーブロックの種類を示します。 この図は、Stratix M-RAMブロック内の真のデュアル・ポート・メモリー・ブロックを示しています。 |
Constant |
回路図全体を通して、デフォルトでは灰色でハイライト表示され、16進形式で表示される一定の信号値。 |
シンボル | 説明 |
---|---|
|
加算演算子 OUT = A + B |
|
乗数演算子 OUT = A ¥ B |
|
除算演算子 OUT = A / B |
|
等しい |
|
左シフト演算子 OUT = (A << COUNT) |
|
右シフト演算子 OUT = (A >> COUNT) |
|
モジュロー演算子 OUT = (A%B) |
|
小なりコンパレーター OUT = (A<:B:A>B) |
|
マルチプレクサー OUT = DATA [SEL] データ範囲のサイズは2sel range sizeです。 |
|
セレクター 1ホット選択入力と2つ以上の入力信号を持つマルチプレクサー。 |
|
2進数デコーダー |
2.6.3. スケマティック・ビューで項目の選択
Selection Tool
Netlist Navigator
2.6.4. スケマティック・ビューのショートカット・メニュー・コマンド
選択したアイテムがノードの場合、次のオプションが表示されます。
- Expand to Upper Hierarchyをクリックして、フォーカスのあるノードの親階層を表示します。
- 選択した項目名をクリップボードにコピーするには、Copy ToolTipをクリックします。 このコマンドはネットでは機能しません。
- 選択した項目をスケマティック・ビューから削除するには、Hide Selectionをクリックします。 このコマンドはデザインからアイテムを削除するのではなく、現在のビューでアイテムをマスクするだけです。
- Filteringをクリックして、選択内容をフィルタリングするためのオプションを含むサブメニューを表示します。
2.6.5. スケマティック・ビューでのフィルタリング
表示したいパスの一部である階層ボックス、ノード、またはノードのポートを選択して、ネットリストをフィルタリングできます。 以下のフィルターコマンドが利用可能です。
- Sources—選択のソースを表示します。
- Destinations—選択先を表示します。
- Sources & Destinations—選択のソースと宛先を表示します。
- Selected Nodes—選択されたノードのみを表示します。
- Between Selected Nodes—選択したノード間のパスにあるノードと接続を表示します。
- Bus Index—出力または入力バスポートの1つ以上のインデックスの送信元または送信先を表示します。
-
Filtering
Options—Filtering Optionsダイアログボックスを表示します。
- Stop filtering at register—このオプションをオンにすると、Netlist Viewerは最も近いレジスター境界を除外するように指示します。
- Filter across hierarchies—このオプションをオンにすると、Netlist Viewerは階層を越えてフィルタリングするようになります。
- Maximum number of hierarchy levels—スケマティック・ビューに表示できる階層レベルの最大数を設定します。
ネットリストをフィルタリングするには、階層ボックス、ノード、ポート、ネット、またはステートノードを選択し、ウィンドウ内を右クリックしてFilterをポイントし、適切なフィルターコマンドをクリックします。 Netlist Viewerは、フィルタリング後に残ったネットリストを表示する新しいページを生成します。
2.6.6. スケマティック・ビューでのノードの内容の表示
LUT、レジスター、ロジックゲートを見ることができます。 RTL ViewerまたはTechnology Map Viewerで特定のデバイスのRAMおよびDSPブロックの実装を表示することもできます。 Technology Map Viewerでは、プリミティブの内容を表示して、その基になっている実装の詳細を確認できます。




Connectivity Detailsウィンドウでオブジェクトをダブルクリックすると、すばやく移動できます。 プラス記号が表示されている場合、ビュー内のオブジェクトをさらに展開することができます。 これは、複雑なネットリスト内の信号をトレースするときに非常に便利です。
2.6.7. スケマティック・ビューでノードの移動
ネットリストのある領域から別の領域にノードを移動するには、ノードを選択してShiftキーを押します。 リーガル・プレースメントは、階層内の影付きの領域として表示されます。 クリックして選択したノードを削除します。

スケマティック・ビューをデフォルトの配置に戻すには、右クリックしてRefreshをクリックします。
2.6.8. Technology Map ViewerでのLUT表現の表示
LUT表現は、Propertiesダイアログボックスの次の3つのタブで表示できます。
- Schematicタブ—LUTの等価ゲート表現。
- Truth Tableタブ—真理値表の表現。
2.6.9. ズーム・コントロール
デフォルトでは、Netlist Viewerはウィンドウに収まるサイズのほとんどのページを表示します。 スケマティック・ページが非常に大きい場合、スケマティックは最小ズームレベルで表示され、ビューは最初のノードを中心に配置されます。Zoom Inをクリックすると画像が大きく表示され、Zoom Outをクリックすると画像が縮小されて表示されます(画像全体が表示されていない場合)。Zoomコマンドを使用すると、拡大率を指定できます(100%がスケマティック・シンボルの標準サイズと見なされる)。
Netlist ViewerツールバーのZoom Toolを使用して、スケマティック・ビューの拡大率を制御できます。 ツールバーのZoom Toolを選択したときに、スケマティック内をクリックすると、クリックした場所にズームインしてビューが中央に配置されます。 回路図を右クリックすると、ズームアウトしてクリックした位置にビューが集中します。 Zoom Toolを選択すると、マウスカーソルで長方形のボックス領域を選択して、回路図の特定の部分にズームインすることもできます。 選択された領域を示すために回路図が拡大されます。
スケマティック・ビュー内で、次のマウス・ジェスチャーを使用して特定のセクションを拡大することもできます。
- zoom in—左上から始まる領域の周囲でボックスをドラッグし、右下にドラッグするとその領域にズームインします。
- zoom -0.5—線を左下から右上にドラッグすると、拡大率が0.5段階に縮小されます。
- zoom 0.5—線を右下から左上にドラッグすると、0.5倍の倍率でズームされます。
- zoom fit—右上から左下に線をドラッグすると、ページ内のスケマティック・ビューに収まります。
2.6.10. Bird's Eye Viewでナビゲートする
回路図全体を表示すると、大きなネットリストをデバッグしたりトレースしたりするときに便利です。 インテル® Quartus® Primeソフトウェアを使用すると、RTL ViewerおよびTechnology Map Viewerで使用可能なBird's Eye View機能を使用して、回路図の特定のセクションに素早く移動できます。
Bird’s Eye Viewに現在の関心領域が表示されます。
- インジケーターをクリックしてドラッグするか、右クリックして領域を囲む長方形のボックスを形成して、領域を選択します。
- スケマティック内を移動するには、長方形のボックスをクリックしてドラッグします。
- スケマティック・ビューで長方形ボックスのサイズを拡大または縮小します。
2.6.11. ページへのスケマティックの分割
階層レベルが複数のページに分割されている場合、スケマティック・ウィンドウのタイトルバーは、どのページが表示されているか、およびこの階層レベルに存在する総ページ数を示します。 スケマティック・ビューでは、これがPage <current page number> of <total number of pages>として表示されます。
2.6.12. スケマティック・ページでのネットのフォロー
2.6.13. リソース・プロパティー・ビューアでの選択の維持
19.1リリースから、ポート(回路図内)または信号名(Connectivityペイン内)をクリックすると、パスが選択されます。各ノードは依存関係パスのみを保持します。この依存関係パスは、再コンパイル、プロジェクトを閉じる、別のポートを選択する、新しい検索を実行する、または非ポートスペースを左クリックするとクリアされます。
- Chip PlannerのノードをダブルクリックしてResource Property Viewerを開くたびに、新しい場所と見なされます。
- パストレースの目的で、Go To Destination NodeまたはGo To Source Nodeオプションを使用すると、ノード選択テーブルにノードが追加され、パス依存関係の選択はクリアされません(たとえば、すべての新しい場所ではなく、 Chip Plannerのノードをクリックする)。
- 依存関係パスの選択または強調表示は、Chip Plannerのノードプロパティーには適用されません。
複数選択のポートまたは信号名を選択すると、ポートが使用されている場合にのみ、依存関係パスが更新されます。 ポートが使用されていない場合、依存パスの選択はクリアされます。 ただし、Resource Property Viewerには、複数のノードを選択した場合の依存パスの選択は表示されません。 これは、単一パストレースの目的に役立ちます(選択色は1つだけです)。
2.7. ソース・デザイン・ファイルと他の インテル Quartus Primeウィンドウのクロスプローブの実行
Netlist Viewerで、興味のある1つ以上の階層ボックス、ノード、状態ノード、または状態遷移アークを選択し、該当する別の インテル® Quartus® Primeソフトウェア・ウィンドウで対応する項目を見つけることができます。その後、適切なエディターまたはフロアプランで表示または変更や割り当てを行うことができます。
別のウィンドウでNetlist Viewerから項目を見つけるには、回路図または状態図で目的の項目を右クリックし、Locateをポイントして適切なコマンドをクリックします。 以下のコマンドが利用可能です。
- Locate in Assignment Editor
- Locate in Pin Planner
- Locate in Chip Planner
- Resource Property Editor
- Technology Map Viewer
- Locate in RTL Viewer
- Locate in Design File
アイテムを見つけるために使用できるオプションは、ノードの種類と、配置配線後に存在するかどうかによって異なります。 メニューでコマンドがイネーブルされる場合、選択したノードで使用できます。 すべてのノードに対してLocate in Assignment Editorコマンドを使用できますが、合成後に存在しないノードに割り当てが適用されると、配置および配線中に割り当てが無視される可能性があります。
Netlist Viewerは、適切なエディターまたはフロアプラン用に別のウィンドウを自動的に開き、新しく開かれたウィンドウで選択したノードまたはネットを強調表示します。Windowメニューで選択するか、新しいウィンドウを閉じる、最小化する、移動することで、Netlist Viewerに戻ることができます。
2.8. 他の インテル Quartus Primeウィンドウからのビューワのプロービング
ノードは、RTL Viewer、State Machine Viewer、およびTechnology Map Viewer間で検索でき、またRTL ViewerまたはTechnology Map Viewerでは、以下の インテル® Quartus® Primeソフトウェア・ウィンドウからも検索できます。
- Project Navigator
- Timing Closure Floorplan
- Chip Planner
- Resource Property Editor
- Node Finder
- Assignment Editor
- Messages Window
- Compilation Report
- Timing Analyzer(Technology Map Viewerのみサポート)
別のウィンドウからNetlist Viewer内の要素を見つけるには、適切な インテル® Quartus® Primeウィンドウ内の1つまたは複数のノードを選択します。 たとえば、Project NavigatorのHierarchyタブのEntityリストでエンティティーを選択するか、Timing Closure Floorplanでノードを選択するか、Assignment EditorのFromまたはToカラムでノード名を選択します。 次に、選択したオブジェクトを右クリックしてLocateをポイントし、Locate in RTL ViewerまたはLocate in Technology Map Viewerをクリックします。 このコマンドをクリックすると、Netlist Viewerが開くか、Netlist Viewerが開いている場合は前面に表示されます。
Netlist Viewerには、選択したノードと、該当する場合はノード間の接続が表示されます。 表示は、オブジェクトを右クリックし、次にFilter across hierarchyを使用してFilter > Selected Nodesをクリックした場合に表示されるものと似ています。 Netlist Viewerでノードが見つからない場合は、メッセージボックスにCan’t find requested locationというメッセージが表示されます。
2.9. タイミング・パスの表示
Timing AnalyzerからTechnology Map Viewerへのタイミングパスを特定すると、各ノードに関連するインターコネクトとセル遅延が回路図シンボルの上に表示されます。 選択したタイミングパスの合計スラックが、回路図のPage Titleのセクションに表示されます。
- Compilation Report目次からレポートを開くには、Timing Analyzer GUI > Report Timingをクリックしてタイミングコーナーをダブルクリックします。
- Timing Analyzerからレポートを開くには、ReportペインのReport Timingフォルダーを開き、タイミングコーナーをダブルクリックします。
- Summary of Pathsタブで、テーブル内の行を右クリックしてLocate Path > Locate in Technology Map Viewerを選択します。 Technology Map Viewerの回路図ページには、タイミングパス上のノードと合計遅延の概要が表示されます。
2.10. Design Netlistの改訂履歴の最適化
この章には、次の改訂履歴が適用されます。
ドキュメント・バージョン | インテル® Quartus® Primeバージョン | 変更内容 |
---|---|---|
2019.07.01 | 19.1 | リソース・プロパティー・ビューアでの選択の維持トピックを追加し、回路図ビューでiterm-oterm依存関係を維持する方法を説明。 |
2018.09.24 | 18.1.0 |
|
2016.10.31 | 16.1.0 |
|
2016.05.03 | 16.0.0 | Schematic Viewerトピックを削除。 |
2015.11.02 | 15.1.0 |
ステージ・スナップショットを表示するためのSchematic Viewerトピックを追加。 次の新機能と機能の更新に関する情報を追加。
|
2014.06.30 | 14.0.0 | Show Netlist on One PageおよびShow/Hide Instance Pinsコマンドを追加。 |
2013年11月 | 13.1.0 |
レガシーHardCopyデバイスのサポートを削除。 再編成し、新しいテンプレートに移行。 新しいNetlistビューアのサポートを追加。 |
2012年11月 | 12.1.0 | Global Net Routing機能をサポートするセクションを追加。 |
2012年6月 | 12.0.0 | サーベイ・リンクを削除。 |
2011年11月 | 10.0.2 | テンプレートを更新。 |
2010年12月 | 10.0.1 | 軽微な修正。ドキュメントのテンプレートを更新。 |
2010年7月 | 10.0.0 |
|
2009年11月 | 9.1.0 |
|
2009年3月 | 9.0.0 |
|
2008年11月 | 8.1.0 | ページサイズを8.5インチ×11インチに変更。 |
2008年5月 | 8.0.0 |
|
3. ネットリストの最適化と物理合成
Compiler Settingsページから、さまざまなグローバル合成および物理合成最適化設定にアクセスできます。
オプション | 位置/説明 |
---|---|
Enable synthesis netlist optimization settings | Advanced Synthesis Settingsダイアログボックスで合成最適化オプション(たとえば、Synthesis Effort)を有効にします。 これらのオプションにアクセスするには、Assignments > Settings > Compiler Settings > Advanced Settings (Synthesis)をクリックします。 |
Enable physical synthesis options | Advanced Fitter Settingsダイアログボックスで物理合成オプション(たとえば、Advanced Physical Synthesis)を有効にします。 これらの設定にアクセスするには、Assignments > Settings > Compiler Settings > Advanced Settings (Fitter)をクリックします。 |
3.1. フィジカル・シンセシスの最適化
以下の項では、 インテル® Quartus® Primeソフトウェアで使用可能なフィジカル・シンセシス最適化と、性能結果を向上させるのに、それらをどのように役立てることができるかについて説明します。
3.1.1. 物理合成の最適化のイネーブル
物理合成最適化オプションをイネーブルするには、次の手順に従います。
- Assignments > Settings > Compiler Settingsをクリックします。
- リタイミング、組み合わせ最適化、およびレジスターの複製をイネーブルするには、Advanced Settings (Fitter) をクリックします。次に、Physical Synthesisをイネーブルします。
- 物理合成結果をNetlist Optimizationsレポートで表示します。
3.1.2. フィジカル・シンセシスのオプション
オプション | 説明 |
---|---|
Physical Synthesis | 新しいSpectra-Qフィジカル・シンセシスによる最適化—回路性能を改善する組合わせ最適化およびシーケンシャルな最適化を実行します |
Netlist Optimizations | Assignment Editorを使用して、Netlist Optimizationsロジックオプションを適用できます。 このオプションを使用して、デザインの一部に対して物理合成の最適化をディセーブルします。 |
Allow Register Duplication | |
Allow Register Duplication |
デザイン内の他のレジスターと同一のレジスターをCompilerが削除できるようにします。 このオプションを有効にすると、2つのレジスターが同じロジックを生成する場合、Compilerは1つのレジスターを削除し、残りのレジスターは削除されたレジスターのデスティネーションにファンアウトします。 このオプションは、Compilerが重複レジスターの意図的な使用を排除しないようにする場合に便利です。 レジスターマージをディセーブルすると、コンパイラはレジスターのタイミングを最適化する最適化をディセーブルされます。 この設定は、Analysis&SynthesisとFitterに影響します。 |
3.2. 合成ネットリスト最適化
Signal Tap
最良の結果を得るには、 インテル® Quartus® Prime Design Space Explorer II(DSE)を使用して、さまざまなネットリスト最適化オプションを適用します。
3.2.1. WYSIWYGプリミティブ再合成
Perform WYSIWYG primitive resynthesisオプションは、 インテル® Quartus® Primeソフトウェアに、アトム・ネットリストのロジックエレメント(LE)をロジックゲートにマップ解除し、ゲートをIntel固有のプリミティブに再マップするように指示します。 サードパーティの合成ツールは、Intel固有のプリミティブを使用して.edfまたは.vqmアトム・ネットリストファイルを生成します。Perform WYSIWYG primitive resynthesisオプションをオンにすると、 インテル® Quartus® Primeソフトウェアは、再マッピングプロセス中にデバイス固有の手法を使用します。この機能は、プロジェクトに指定されたOptimization Technique を使用してデザインを再マップします(Speed、Area、またはBalanced)。
Perform WYSIWYG primitive resynthesisオプションは、LCELLまたはLEプリミティブとも呼ばれるロジックセルと、通常のI/Oプリミティブ(レジスターを含む可能性がある)のみをマップ解除および再マップします。ダブルデータレート(DDR)I/Oプリミティブ、メモリープリミティブ、デジタル信号処理(DSP)プリミティブ、およびキャリーチェーンのロジックセルは再マッピングされません。このプロセスは、サードパーティの知的財産(IP)など、暗号化された.vqmファイルまたは.edfファイルで指定されたロジックを処理しません。
Perform WYSIWYG primitive resynthesisオプションを使用すると、アトム・ネットリストのプリミティブが分解されてから インテル® Quartus® Primeソフトウェアで再マッピングされるため、サードパーティの合成ツールから.vqmファイルまたは.edfファイルのノード名を変更できます。再マッピングプロセスにより、重複するレジスターが削除されます。削除されなかったレジスターは、再マッピング後も同じ名前を保持します。
Netlist OptimizationsロジックオプションがNever Allowに2定されているノードまたはエンティティーは、WYSIWYGプリミティブの再合成中に影響を受けません。Assignment Editorを使用して、Netlist Optimizationsロジックオプションを適用できます。このオプションは、デザインの一部のWYSIWYG再合成を無効にします。
使用する場合 インテル® Quartus® Primeソフトウェアを使用してデザインを合成する場合、Preserve Register (preserve)およびKeep Combinational Logic (keep)属性を使用して、デザイン内の特定のノードを保持できます。

3.3. スクリプティング・サポート
quartus_sh --qhelp
このセクションで説明するオプションの多くは、インスタンス・レベル、グローバル・レベル、あるいはその両方で指定することができます。
グローバル・アサインメントを削除するには、以下のTclコマンドを使用します。
set_global_assignment -name <.qsf variable name><value>
インスタンス・アサインメントを作成するには、以下のTclコマンドを使用します。
set_instance_assignment -name <QSF variable name> <value> \ -to <instance name>
3.3.1. 合成ネットリスト最適化
設定名 | インテル® Quartus® Prime設定ファイルの変数名 | 値 | タイプ |
---|---|---|---|
Perform WYSIWYG Primitive Resynthesis | ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP | ON、OFF | Global, Instance |
Optimization Mode | OPTIMIZATION_MODE | BALANCED HIGH PERFORMANCE EFFOR AGGRESSIVE PERFORMANCE | Global, Instance |
PowerUp Dont Care | ALLOW_POWER_UP_DONT_CARE | ON、OFF | Global |
3.3.2. フィジカル・シンセシスの最適化
設定名 | インテル® Quartus® Prime設定ファイルの変数名 | 値 | タイプ |
---|---|---|---|
Advanced Physical Synthesis | ADVANCED_PHYSICAL_SYNTHESIS | ON、OFF | Global |
3.4. ネットリストの最適化とフィジカル・シンセシスの改訂履歴
この章には、次の改訂履歴が適用されます。
ドキュメント・バージョン | インテル® Quartus® Primeバージョン | 変更内容 |
---|---|---|
2019.04.24 | 18.1.0 | 「ネットリスト最適化と物理合成」トピックの例を更新。 |
2019.04.18 | 18.1.0 | 「ネットリスト最適化とフィジカルシンセシス」トピックの表現を明確化。 |
2018.09.24 | 18.1.0 | 「タイミングロジックオプションのIOCレジスター配置の最適化」トピックからサポートされていないCASCADEバッファへの参照を削除。 |
2018.05.07 | 18.0.0 | 「パーティション・ネットリストの分離」トピックを削除。 |
2017.11.06 | 17.1.0 |
|
2016.10.31 | 16.1.0 |
|
2016.05.02 | 16.0.0 |
|
2015.11.02 | 15.1.0 |
|
2014.12.15 | 14.1.0 |
|
2014年6月 | 14.0.0 | 更新された形式。 |
2013年11月 | 13.1.0 | レガシーHardCopyデバイスのサポートを削除。 |
2012年6月 | 12.0.0 | サーベイ・リンクを削除。 |
2011年11月 | 10.0.2 | テンプレートを更新。 |
2010年12月 | 10.0.1 | テンプレートを更新。 |
2010年7月 | 10.0.0 |
|
2009年11月 | 9.1.0 |
|
2009年3月 | 9.0.0 |
|
2008年11月 | 8.1.0 | ページサイズを8-1/2 x 11に変更。内容に変更なし。 |
2008年5月 | 8.0.0 |
|
4. エリア最適化
4.1. リソース使用率
デバイスの使用率を決定することは、デザインがうまく適合したかどうかにかかわらず、有用な情報を提供します。 コンパイルの結果、不適合エラーが発生した場合、リソース使用率情報がデザインの適合問題の分析に役立ちます。 フィッティングが成功した場合、この情報により、デザイン変更によりフィッティングが困難かどうかを判断できます。 さらに、タイミング・パフォーマンスにおけるリソース使用率の影響を判断できます。
Compilation Reportは、リソース使用量に関する情報を提供します。
4.1.1. Clocks Summary レポート
コンパイルレポートのFlow Summaryセクションは、デザインが使用可能なデバイスリソースを超えているかどうかを示し、ピン、メモリービット、デジタル信号処理(DSP)ブロック、フェーズ・ロック・ループ(PLL)などのリソース使用率をレポートします。

Fitterはデバイス全体にロジックを広げることができるため、全体的な利用率が高くなる可能性があります。
デバイスがいっぱいになると、Fitterは共通の入力を持つロジック機能を自動的に検索して、1つのALMに配置します。 パックドレジスターの数も増加します。 そのため、ロジックとレジスターをより密にまとめることができれば、全体的な使用率が高いデザインでも追加ロジック用のスペースが残っている可能性があります。 そのような場合、詳細を記載したレポートが役立ちます。
4.1.2. Fitterレポート
コンパイルレポートのFitterセクションのResource Sectionの下のレポートは、詳細なリソース情報を提供します。
Fitter Resource Usage Summaryレポートは、ロジック使用率情報を分析し、各タイプのメモリブロックのビット数など、追加のリソース情報を提供します。このパネルには、グローバルクロック、PLL、DSPブロック、およびその他のデバイス固有のリソースの使用状況の概要も含まれています。
4.1.3. Analysis and Synthesis設定
インテル® Quartus® Prime合成エンジンで合成されたデザインの場合、コンパイル中に発生した最適化を説明するレポートを表示できます。
たとえば、Analysis&SynthesisセクションのOptimization Resultsフォルダーには、合成中に削除されたレジスタのリストがあります。 このレポートを使用すると、部分的なデザインのリソース使用率を推定できるため、デザインの他の部分との接続が失われたためにレジスタが削除されなかったことを確認できます。
4.1.4. コンパイル・メッセージ
レポートにルーティングリソースの使用率が100%未満であるが、デザインが適合しない場合、ルーティングリソースが不十分であるか、デザインに無効な割り当てが含まれています。 どちらの場合も、CompilerはMessagesウィンドウのProcessingタブに問題を説明するメッセージを生成します。
Fitterが正常に終了せず、同様のリソースよりもはるかに高速で実行される場合、過剰に使用されているか、または不正な割り当てがある可能性があります。
インテル® Quartus® Primeソフトウェアは、類似のデザインと比較して実行に時間がかかりすぎる場合、Compilerが有効な配置または経路を見つけることができない可能性があります。Compilation Reportで、これらのタイプの問題を示すエラーと警告を探します。
Chip Plannerは、特定のタイプの配線リソースの配線が密集しているデバイスの領域を見つけるのに役立ちます。非常に混雑しているエリアを見つけたら、混雑の原因を分析します。グローバルリソースを使用しないファンアウトの多いネット、不適切に選択された最適化目標(速度と面積)、非常に制限のあるフロアプランの割り当て、コーディング・スタイルなどの問題は、配線の混雑を引き起こす可能性があります。 原因を特定したら、ソースまたは設定を変更して、ルーティングの混雑を減らします。
4.2. HDMIリソース使用率
- リソース使用率を最適化する—すでに基本的な制約が設定されていることを確認する
- I/O力タイミングの最適化—リソース使用率を最適化し、デザインが目的のターゲットデバイスに収まるようになったら、I/Oタイミングを最適化する
- レジスター間のタイミング最適化に向けた設定
4.2.1. リソース使用率の問題の概要
- I/Oピンの使用または配置
- レジスターやLUTを含むロジックセル、およびメモリーブロックやDSPブロックなどの専用ロジックを含むロジックの使用または配置に関する問題
- ルーティングに関する問題
4.2.2. I/Oピン使用または配置
4.2.2.1. ガイドライン:ピン割り当ての変更、またはより大きなパッケージの選択
4.2.3. ロジック使用または配置
4.2.3.1. ガイドライン:ソースコードを最適化する
インテル® Quartus® Prime 解析と合成
4.2.3.2. ガイドライン:スピードではなく、面積に対して合成を最適化する
まず、合成ツールでデバイスとタイミングの制約が正しく設定されていることを確認します。 特にデザインの面積使用率が問題になる場合、デザインのタイミング要件を過度に制約しないようにしてください。 合成ツールは指定された要件を満たそうとしますが、制約が厳しすぎるとデバイスリソースの使用量が増加する可能性があります。
- . インテル® Quartus® Prime統合合成を使用している場合、Assignments > Settings > Compiler Settings > Advanced Settings (Synthesis)をクリックしてOptimization TechniqueにBalancedまたはAreaを選択します。
- デフォルトのOptimization Technique設定をBalancedのままにしながら、AreaまたはSpeed設定を使用してデザイン内の特定のモジュールの面積を縮小したい場合、Assignment Editorを使用します。
- また、Speed Optimization Technique for Clock Domainsロジックオプションをオンにして、指定したクロックドメイン内またはクロックドメイン間のすべての組み合わせロジックの速度を最適化できます。
- 合成ツールによっては、fMAX要件を指定しないとリソース使用率が低下することがあります。
面積または速度を最適化すると、レジスター間のタイミング性能に影響を及ぼす可能性があります。
インテル® Quartus® Primeソフトウェアには、合成結果の品質向上に役立つ追加の属性とオプションがあります。
4.2.3.3. ガイドライン:マルチプレクサーの再構築
4.2.3.4. ガイドライン:Balanced設定またはArea設定でWYSIWYGプリミティブ再合成を実行する
4.2.3.5. ガイドライン:レジスターパッキングを使用する
4.2.3.6. ガイドライン:Fitter Constraintsを削除する
」位置の制約やLogic Lock領域の割り当てが制限されているために発生する配線の輻輳を解決するには、Chip PlannerのRouting Congestionタスクを使用してフロアプラン内の配線の問題を特定し、そのエリアの内部の配置またはLogic Lock領域の割り当てを削除します。 それでもデザインが合わない場合、デザインが過度に制約されています。 この問題を解決するには、すべての位置と割り当てを削除し、連続してコンパイルを実行して、各コンパイルの前に段階的にデザインを制約します。 Assignment EditorまたはChip Plannerで特定のLogic Lock領域の割り当てを削除できます。 Chip Planner、Logic Lock領域のウィンドウ、またはAssignmentsメニューで割り当てを削除するには、Remove Assignments.をクリックします。Available assignment categoriesリストで、デザインから削除する割り当てカテゴリをオンにします。
4.2.3.7. 合成中の階層のフラット化
4.2.3.8. ガイドライン:メモリーブロックのターゲット変更
パラメーター・エディターで作成したメモリーブロックの場合、新しいメモリーブロックサイズをターゲットにするようにRAMブロックタイプを編集します。
CompilerはHDLコードからROMおよびRAMメモリーブロックを推論することもでき、合成エンジンはShiftレジスター(RAMベース)IPコアを推論することによって大きなシフトレジスターをメモリーブロックに配置することもできます。 合成ツールでこの推論をオフにすると、合成エンジンはメモリーまたはシフトレジスターをメモリーブロックではなくロジックに配置します。 また、この推論をオフにすると、レジスターがRAMに移動されなくなり、タイミング性能が向上します。合成ツールによっては、推論メモリーブロックのRAMブロックタイプを設定することもできます。 インテル® Quartus® Prime合成では、ramstyle属性を、推論されたRAMブロックの目的のメモリータイプに設定します。 あるいは、メモリーブロックをメモリーブロックではなく標準ロジックでインプリメントするには、オプションをlogicに設定します。
レポートファイルのResource Utilization by Entityレポートを検討し、いずれかのモジュールで異常に高いレジスター数があるかどうかを確認します。 ブロックのアーキテクチャー上の実装のために、 インテル® Quartus® PrimeソフトウェアがソースコードからRAMブロックを推論することを妨げるコーディング・スタイルがあり、ソフトウェアにロジックをフリップフロップで実装することを強います。 たとえば、レジスターバンクで非同期リセットを実行すると、レジスターバンクがデバイス・アーキテクチャーのRAMブロックと互換性がなくなるため、Compilerはレジスターバンクをフリップフロップで実装します。 多くの場合、関連するロジックを少し変更するだけで、大きなレジスターバンクをRAMに移動することができます。
4.2.3.9. ガイドライン:面積を削減するための物理合成オプションの使用
4.2.3.10. ガイドライン:DSPブロックのリターゲットまたはバランス
DSPファンクションがパラメーター・エディターで作成された場合、パラメーター・エディターを開き、DSPブロックではなくロジックセルをターゲットとするようにファンクションを編集します。 インテル® Quartus® Primeソフトウェアは、実装を制御するためにDEDICATED_MULTIPLIER_CIRCUITRY IPコア・パラメーターを使用します。
DSPブロックは、乗算器、乗算加算器、および乗算アキュムレーター用のHDLコードからも推論できます。 合成ツールでこの推論をオフにすることができます。 インテル® Quartus® Prime統合合成を使用している場合、プロジェクト全体に対してAuto DSP Block Replacementロジックオプションをオフにすることで推論を無効にできます。 Assignments > Settings > Compiler Settings > Advanced Settings (Synthesis)をクリックします。Auto DSP Block Replacementをオフにします。 または、Assignment Editorを使用して特定のブロックのオプションをディセーブルすることもできます。
この インテル® Quartus® Primeソフトウェアには、DSPブロック要素をロジックセルまたは異なるDSPブロックモードでインプリメントするDSP Block Balancingロジックオプションもあります。 デフォルトのAuto設定では、面積を最小化し、デザインの速度を最大化するために、DSPブロックバランシングで必要に応じてDSPブロックスライスを自動的に変換できます。 インテル® Quartus® PrimeソフトウェアがどのようにDSP機能をロジックセルおよびDSPブロックに変換するかを制御するために、特定のノードまたはエンティティーに対して、またはプロジェクト全体ベースで他の設定を使用することができます。 AutoまたはOff以外の値を使用すると、IPコアのバリエーションで使用されているDEDICATED_MULTIPLIER_CIRCUITRYパラメーターが上書きされます。
4.2.3.11. ガイドライン:より大きなデバイスを使用する
4.2.4. ルーティング
4.2.4.1. ガイドライン:自動パック化レジスターをSparseまたはSparse Autoに設定する
4.2.4.2. ガイドライン:Fitter Aggressive Routability最適化をAlwaysに設定する
(最初のフィッティングの試行中に)配置時間とルーティング時間の間に大きな不均衡がある場合、ワイヤー使用率が高いことが原因である可能性があります。Fitter Aggressive Routability Optimizationsオプションをオンにすると、コンパイル時間を短縮できます。
このオプションでは、デバイスに応じて、平均で最大6%のワイヤー使用率を節約できますが、パフォーマンスを最大4%削減することもできます。
4.2.4.3. ガイドライン:Router Effort Multiplierを増加する
Router Effort Multiplierは、ルーターが有効な解決策を見つけるまでの速さを制御します。 デフォルト値は1.0で、有効値は0より大きくなければなりません。
- 1より大きい数値は、配線作業を増加することによって配線が困難なデザインに役立ちます。
- 0に近い数値(0.1など)は、ルーターの実行時間を短縮できますが、通常はルーティング品質をわずかに低下させます。
4.2.4.4. ガイドライン:Fitter Constraintsを削除する
」位置の制約やLogic Lock領域の割り当てが制限されているために発生する配線の輻輳を解決するには、Chip PlannerのRouting Congestionタスクを使用してフロアプラン内の配線の問題を特定し、そのエリアの内部の配置またはLogic Lock領域の割り当てを削除します。 それでもデザインが合わない場合、デザインが過度に制約されています。 この問題を解決するには、すべての位置と割り当てを削除し、連続してコンパイルを実行して、各コンパイルの前に段階的にデザインを制約します。 Assignment EditorまたはChip Plannerで特定のLogic Lock領域の割り当てを削除できます。 Chip Planner、Logic Lock領域のウィンドウ、またはAssignmentsメニューで割り当てを削除するには、Remove Assignments.をクリックします。Available assignment categoriesリストで、デザインから削除する割り当てカテゴリをオンにします。
4.2.4.5. ガイドライン:スピードではなく、面積に対して合成を最適化する
リソース使用率が重要な関心事である場合、速度ではなくエリアを最適化することができます。
- インテル® Quartus® Prime統合合成を使用している場合、Assignments > Settings > Compiler Settings > Advanced Settings (Synthesis)をクリックし、Optimization TechniqueとしてBalancedまたはAreaを選択します。
- デフォルトのOptimization Technique設定をBalancedのままにして、AreaまたはSpeed設定を使用してデザイン内の特定のモジュールの面積を縮小したい場合、Assignment Editorを使用します。
- この他にも、Assignment EditorのSpeed Optimization Technique for Clock Domainsオプションを使用して、クロックドメイン内またはクロックドメイン間のすべての組み合わせロジックがスピードに向けて最適化されていることを指定することができます。
- 合成ツールによっては、fMAX要件を指定しないとリソース使用率が低下することがあります。
面積または速度を最適化すると、レジスター間のタイミング性能に影響を及ぼす可能性があります。
インテル® Quartus® Primeソフトウェアは、合成結果の品質を向上させるのに役立つ追加の属性とオプションを提供します。
4.2.4.6. ソース・コードの最適化
4.2.4.7. ガイドライン:より大きなデバイスを使用する
4.3. スクリプティング・サポート
-
このHelpブラウザを使用するには、コマンド・プロンプトで次のコマンドを入力します。
quartus_sh --qhelp
-
グローバル・アサインメントを削除するには、以下のTclコマンドを使用します。
set_global_assignment -name <QSF variable name> <value>
-
インスタンス・アサインメントを作成するには、以下のTclコマンドを使用します。
set_instance_assignment -name <QSF variable name> <value> \ -to <instance name>
4.3.1. 初期コンパイル設定
設定名 | .qsfファイルの変数名 | 値 | タイプ |
---|---|---|---|
Placement Effort Multiplier | PLACEMENT_EFFORT_MULTIPLIER | 任意の正のゼロ以外の値 | グローバル |
Router Effort Multiplier | ROUTER_EFFORT_MULTIPLIER | 任意の正のゼロ以外の値 | グローバル |
Router Timing Optimization level | ROUTER_TIMING_OPTIMIZATION_LEVEL | NORMAL、MINIMUM、MAXIMUM | グローバル |
Final Placement Optimization | FINAL_PLACEMENT_OPTIMIZATION | ALWAYS, AUTOMATICALLY, NEVER | グローバル |
4.3.2. Resource Utilization Optimizationの手法
この表は、QSF割り当てとResource Utilization Optimization設定に適用可能な値をリストしたものです。
設定名 | .qsfファイルの変数名 | タイプ | |
---|---|---|---|
Auto Packed Registers | QII_AUTO_PACKED_REGISTERS | AUTO, OFF, NORMAL, MINIMIZE AREA, MINIMIZE AREA WITH CHAINS,SPARSE, SPARSE AUTO | グローバル、インスタンス |
Perform WYSIWYG Primitive Resynthesis | ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP | ON、OFF | グローバル、インスタンス |
Optimization Technique Optimization Technique | _OPTIMIZATION_TECHNIQUE | AREA, SPEED, BALANCED | グローバル、インスタンス |
Speed Optimization Technique for Clock Domains | SYNTH_CRITICAL_CLOCK | ON、OFF | インスタンス |
State Machine Encoding | STATE_MACHINE_PROCESSING | AUTO, ONE-HOT, GRAY, JOHNSON, MINIMAL BITS, SEQUENTIAL, USER-ENCODE | グローバル、インスタンス |
Auto RAM Replacement | AUTO_RAM_RECOGNITION | ON、OFF | グローバル、インスタンス |
Auto ROM Replacement | AUTO_ROM_RECOGNITION | ON、OFF | グローバル、インスタンス |
Auto Shift Register Replacement | AUTO_SHIFT_REGISTER_RECOGNITION | ON、OFF | グローバル、インスタンス |
Auto Block Replacement | AUTO_DSP_RECOGNITION | ON、OFF | グローバル、インスタンス |
Number of Processors for Parallel Compilation | NUM_PARALLEL_PROCESSORS | 1と16を含む整数、またはALL | グローバル |
4.4. エリア最適化改訂履歴
この章には、次の改訂履歴が適用されます。
ドキュメント・バージョン | インテル® Quartus® Primeバージョン | 変更内容 |
---|---|---|
2018.10.18 | 18.1.0 |
|
2018.09.24 | 18.1.0 |
|
2018.07.03 | 18.0.0 | 誤植を修正し、トピック:Guideline: Retarget Memory Blocksにリンクを追加。 |
2017.05.08 | 17.0.0 |
|
2016.10.31 | 16.1.0 |
|
2016.05.02 | 16.0.0 |
|
2015.11.02 | 15.1.0 | Quartus II をQuartus Prime に変更 |
2014.12.15 | 14.1.0 | コンパイラの設定にフィッター設定、Analysis & Synthesisの設定、およびフィジカル・シンセシス最適化からコンパイラ設定の位置を更新 |
2014年6月 | 14.0.0 |
|
2013年5月 | 13.0.0 | 初版。 |
5. タイミング収束と最適化
5.1. マルチコーナー・タイミングの最適化
さらに、より新しいデバイスファミリーをターゲットとしたデザイン(より小さなプロセス・ジオメトリー)は、最高動作温度で最低の回路性能を常に示すわけではありません。 回路が最も遅い温度は、選択したデバイス、デザイン、およびコンパイル結果によって異なります。 インテル® Quartus® Primeソフトウェアは、新しいデバイスファミリーに3つの異なるタイミングコーナー(Slow 85°Cコーナー、Slow 0°Cコーナー、およびFast 0°Cコーナー)を提供することによって、この新しい依存関係を管理します。 他のデバイスファミリーでは、Fast 0°CとSlow 85°Cの2つのタイミングコーナーがあります。
Optimize multi-corner timingオプションは、すべてのプロセスコーナーおよび動作条件でタイミング要件を満たすようにFitterに指示します。 結果として得られるデザイン実装は、プロセス、温度、および電圧の変動に対してより堅牢です。 このオプションはデフォルトでオンになっており、コンパイル時間を約10%長くします。
このオプションをオフにすると、フィッターは、(低電圧条件下で動作する、所定のスピード・グレード向けに最も遅い速度で製造されたデバイス)低速コーナー・タイミング・モデルからの低速コーナー遅延のみを考慮し、設計を最適化します。
5.2. クリティカル・パス
パスのスラックはその重要性を決定します。 タイミング解析レポートにスラックが表示されます。これは、Timing Analyzerを使用して生成できます。
タイミング・クロージャのデザイン解析は、非常に複雑なデザインで最適な性能を得るための基本的な要件です。 Chip Plannerの分析機能は、複雑なデザインのタイミングを調整するのに役立ちます。
5.2.1. クリティカル・パスの表示
Chip Plannerでクリティカル・パスを表示すると、特定のパスに問題がある理由がわかります。 配置を変更してマイナスのたるみを減らすことができるかどうかがわかります。 フロアプラン内のパスを表示するには、タイミング解析を実行して結果をTiming Analyzerに表示します。
5.3. クリティカル・チェーン
Hyper-Awareデザインフローは、自動化されたレジスター・リタイミングとターゲット・タイミング・クロージャー推奨事項(Fast Forwardコンパイル)の実装を組み合わせることで、Hyper-Registersの使用を最大化します。 このような技術の合計が、デザインにおいて最高の性能をもたらします。
クリティカル・チェインは、さらにレジスター・リタイミングの最適化を制限するデザインパスをレポートします。 インテル® Quartus® Prime プロ・エディションソフトウェアには、Hyper-Retimerのクリティカル・チェインレポートが用意されており、デザインパフォーマンスを向上させることができます。 Hyper-RetimerはHyper-Registersを使用してクリティカル・チェイン内のすべてのレジスターのスラックを均等にバランスさせるため、より高いレベルの最適化に集中できます。
Hyper-Retimerのクリティカル・チェイン・レポートを使用してデザイン・パフォーマンスを向上させる方法の詳細については、 インテル® Stratix® 10高性能デザインハンドブックのクリティカル・チェーンレポートの解釈トピックを参照してください。
5.3.1. 複雑なクリティカル・チェーン
-
Retiming
Limit Details
Reportでは:
このレポートは、Hyper Awareデザインフローのリタイミング段階に関連付けられており、デフォルトでイネーブルされます。
-
Fast
Forward Compilation
Reportでは:
Fast Forward Compilationステージはオプションであり、デフォルトでディセーブルされます。 このステージはCompilation Dashboardからイネーブルされます。 あるいは、CompilationsタスクのFast Forward Timing Closure Recommendationsをクリックしてタスクを直接開始します。
- .また、Technology Map Viewerでクリティカル・チェーンをグラフィカルに視覚化することもできます。 詳細は、 インテル® Stratix® 10 High-Performance Design HandbookでのLocate Critical Chainsを参照してください。
5.4. タイミング・クロージャのデザイン評価
5.4.1. コンパイル結果の確認
5.4.1.1. メッセージの確認
タイミングが合わないデザインのほとんどは、コンパイル中にFitterが警告メッセージとして報告する他の問題から始まります。 警告メッセージの原因と、警告を修正するか無視するかを決定します。
警告メッセージを確認してから、情報メッセージを確認してください。 接続されていないポート、無視された制約、ファイルの欠落、ソフトウェアによる仮定や最適化など、予期しないことに注意してください。
5.4.1.2. フィッター・ネットリスト最適化の評価
5.4.1.3. 最適化結果の評価
5.4.1.4. リソース使用率の評価
5.4.1.4.1. グローバルおよび非グローバル信号の使用
この図は、グローバルクロックの非効率的な使用例を示しています。 強調表示された行には、グローバルクロックからのファンアウトが1つあります。
これらのリソースをリージョナルクロックに割り当てると、グローバルクロックは別の信号で使用できるようになります。 信号はクロックバッファーではなく専用ルーティングを使用するため、Global Line Nameカラムの値が空の信号は無視できます。
Non-Global High Fan-Out Signalsレポートは、グローバル信号に配線されていない最も高いファンアウト・ノードを表します。
リセット信号とイネーブル信号は、リストの上部に表示されます。
デザインに配線の輻輳が存在し、輻輳する領域に高ファンアウトの非グローバル・ノードがある場合は、ノードのファンアウトにグローバル信号またはリージョナル信号を使用することを検討するか、あるいは高ファンアウトのレジスターを複製することで低ファンアウトにします。
Chip Plannerを使用し、高ファンアウト・ノードの検索、配線の輻輳のレポートを行い、別の選択肢が実行可能であるかを判断します。
5.4.1.4.2. 配線の使用

Average interconnect usageは、デバイスで使用可能な相互接続のうち、使用されている相互接続の平均量を報告します。 Peak interconnect usage量は、最も混雑しているエリアで使用されている相互接続の最大量を報告します。
平均値が50%未満の設計では、通常、配線に問題はありません。平均50〜65%のデザインでは、配線が困難になる可能性があります。平均で65%を超えるデザインでは、RTLが高度に利用されるチップを許容しない限り、タイミングを満たすことが困難になります。 90%以上のピーク値は、タイミングクロージャーに問題がある可能性があります。 100%のピーク値は、デバイスのエリア内のすべてのルーティングが使用されたことを示しているため、タイミングパフォーマンスが低下する可能性が高くなります。
以下は、 Report Routing Utilizationのスクリーンショットです。

5.4.1.4.3. ホールドに向けた配線の追加
Estimated Delay Added for Hold Timingレポートで特定のレジスターパスを確認して、フィッターがホールドタイミングを満たすために過剰な配線を追加するかどうかを判断します。
ホールド要件を満たすためにルータが配線を追加する不正確な制約の一例は、1Xクロックから2Xクロックへのデータ転送がある場合です。 例えば、転送ごとに2サイクルが可能であることがデザインの意図であるとすると、 データは、以下の例で示すようにマルチサイクル・セットアップ制約を追加することで、データは2つのデスティネーション・クロックで随時到達することが可能です。
set_multicycle_path -from 1x -to 2x -setup -end 2
タイミング要件は波形図の黒の破線で示すように、一つの2Xクロック・サイクル分緩和されます。
set_multicycle_path -from 1x -to 2x -setup -end 2 set_multicycle_path -from 1x -to 2x -hold -end 1
図中のオレンジ色の破線はホールド関係を表し、データを遅らせるには余分な配線は必要ではありません。
また、ルーターは、同じクロックドメイン内でデータを転送するときに、異なるバッファリングを使用するクロックブランチ間でホールドタイミング要件のワイヤーを追加することもできます。クロック・ネットワーク・タイプ間の転送は、ペリフェラルとコアの間でより頻繁に発生します。次の図は、データがデバイスに着信し、周辺クロックがソースレジスターを駆動し、グローバルクロックが宛先レジスターを駆動することを示しています。グローバル・クロック・バッファーは、ペリフェラル・クロック・バッファーよりも挿入遅延が大きくなります。デスティネーション・レジスターまでのクロック遅延はソースレジスターりもはるかに大きいため、ホールド要件を確実に満たすには、データパスに追加の遅延が必要です。
パスのクロック・ネットワーク・タイプが異なるケースを特定するには、Timing Analyzerでパスを確認し、ソースおよびデスティネーション・クロック・パス上のノードを確認します。 また、ソースとデスティネーション・クロック周波数をチェックして、それらが同じであるか、複数であるか、およびパスにマルチサイクル例外があるかどうかを確認します。 最後に、意図的にfalseであるすべてのクロスドメインパスに関連するfalseパス例外があることを確認します。
実際のホールドの問題を修正するためにルーティングが追加されていると思われる場合、Optimize hold timingの詳細なFitter設定(Assignments > Settings > Compiler Settings > Advanced Settings (Fitter) > Optimize hold timing)を無効にできます。Optimize hold timingを無効にしてデザインを再コンパイルし、タイミング解析を再実行して、ホールドタイム要件を満たさないパスを特定して修正します。
5.4.1.5. その他のレポートの評価と設定の調整
Difficulty Packing Designレポート
Difficulty Packing Designのエフォートレベルが上がると、タイミング・クロージャーは難しくなります。 中から高に進むと、パフォーマンスが大幅に低下したり、コンパイル時間が長くなったりする可能性があります。 パッキングの難しさを減らすためにロジックを減らすことを検討してください。
無視されたアサインメントの確認
デフォルト以外の設定の確認
フロアプランの確認
例えば、I/OとインターフェイスするロジックであればI/O のに近くに配置されており、IPやメモリーとインターフェイスするロジックであればIP とメモリー付近に配置されているはずです。
次の注記では、色分けされたエンティティーを使用してフロアプランで視覚化を使用してタイミングパスを確認する方法について説明します。
- このフロアプランでは、緑のブロックが離れて広がっていますが、これらのパスがタイミングに問題があるかどうかを確認します。問題があれば、配置に影響しているかもしれないモジュールへ何が接続されているかをチェックします。
- 青と水色のブロックを広げて混ぜ合わせます。 2つのモジュール間の接続が原因であるかどうかを確認します。
- 下部のピンクのロジックは、下端のI/Oとインターフェイスする必要があります。タスクバーのボタンを使用して、強調表示されたモジュールのファンインとファンアウトを確認します。
チップ内の長い信号を探し、このような信号がタイミング・エラーの原因であるかを調べます。
- ロジックの配置に影響を与える信号がないか、グローバル信号の使用状況を確認し、Fitterが配置したロジックがグローバルバッファーをバッファーの近くに供給し、関連ロジックから離れているかどうかを確認します。非グローバルリソースのファンアウトが大きいなどの設定を使用して、ロジックをまとめます。
- ルーティングの混雑を確認します。 Fitterは、非常に混雑した領域にロジックを分散させ、デザインの配線を困難にします。
配置と配線の評価
配置エフォートの調整
他の設定とRTLを確認して最適化した後、乗数を調整します。値を4まで増やしてみてください。パフォーマンスまたはコンパイル時間が改善されない場合は、デフォルトにリセットしてください。
フィッタ・エフォートの調整
デフォルトでは、Fitter Optimization modeはBalanced (Normal flow)モードに設定されており、タイミング要件が満たされるとすぐにFitterの労力とコンパイル時間が削減されます。オプションで、別のOptimization modeを選択して、パフォーマンス、面積、配線可能性、消費電力、またはコンパイル時間をターゲットにすることができます。
Fitterの労力をさらに増やすには、 Assignments > Settings > Compiler Settings > Advanced Settings(Fitter) > Fitter Effortオプションを有効にすることもできます。デフォルトのAuto Fit設定では、タイミング要件が満たされると、Fitterの労力が削減されます。 Standard Fit (highest effort)設定では、デザインの要件に関係なく最大エフォートを使用するため、コンパイル時間が長くなり、タイミングマージンが増えます。
タイミング制約を確認する
5.4.1.6. クラスタリングの難易度の評価
- デザインがいっぱいでクラスタリングの難易度が低いか中程度の場合、クラスタリングではなくデザイン自体が輻輳の主な原因である可能性があります。
- 逆に、デザインに少量のロジックを追加した後に発生する輻輳は、クラスタ化が原因である可能性があります。 クラスタリングの難しさが高い場合、これはデザインサイズに関係なく輻輳の一因となります。
5.4.2. タイミング・パスの詳細情報の確認
5.4.2.1. タイミング・パスの配線の表示
Timing AnalyzerのReport Timingダイアログボックスで、Report panel nameとShow routingオプションをイネーブルしてReport Timingをクリックします。
Extra Fitter Informationタブには、パスが強調表示されたミニチュア・フロアプランが表示されます。Extra Fitter Informationタブは インテル® Stratix® 10デバイスには使用できません。
配線の輻輳を確認にはChip Plannerでパスを検索することも可能です。またパス内のノードが互いに近接しているか離れて配置されているかを表示することができます。
5.4.2.2. グローバル・ネットワーク・バッファ
- CLK_CTRL_Gn—グローバル・ドライバー用
- CLk_CTRL_Rn—リージョナル・ドライバー用
グローバル・ネットワークにアクセスするためのバッファーは、デバイスの両側の中央にあります。 グローバル信号ネットワークでコアロジック信号をルーティングするためのバッファリングは、挿入遅延を引き起こします。 グローバル配線と非グローバル配線について考慮する必要があるトレードオフは、信号源の位置、挿入遅延、ファンアウト、信号の移動距離、および信号がローカル配線に降格された場合に起こり得る輻輳です。
5.4.2.2.1. ソースの位置
5.4.2.2.2. 挿入遅延
set_multicycle_path -from 1x -to 2x -setup -end 2
5.4.2.2.3. ファンアウト
5.4.2.2.4. グローバル・ネットワーク
5.4.2.3. リセットとグローバル・ネットワーク
5.4.2.4. 設定が疑わしい場合
1つの典型的な原因は数学の精度エラーです。 たとえば、1周期あたり10 MHz/3 = 33.33 nsです。 3サイクルでは、時間は99.999 ns対100.000 nsです。 最大遅延を設定すると、適切な設定関係が得られます。
失敗のもう1つの原因は、次のようなデザイン意図によって誤っている必要があるパスです。
- FIFOを介して処理される非同期パス
- 複数のマルチプル・クロックサイクルで利用可能であるデータへのハンドシェイクに依存する低速の非同期パス
フィッタが制限のあるタイミング要件を不必要に満たすことを防止するには、フォルス・パス・ステートメントもしくはマルチサイクル・パス・ステートメントを追加することを検討します。
5.4.2.5. ロジックの深度
5.4.2.6. オートシフト・レジスターの交換
- タイミング・エラーがシフトレジスターで開始、または完了する場合、 Auto Shift Register Replacementオプションをディスエーブルにします。
- チェーンに変換するシフトレジスターに対して、RAMまたはロジック・セルに実装する場合のエリアとスピードのトレードオフを評価します。
- デザインがフルに近い場合、レジスター変換をRAMにシフトすることで面積を節約でき、重要ではないクロックドメインが得られます。 設定をデフォルトのAUTOからOFFにグローバルに、またはレジスターごとまたは階層ごとに変更できます。
5.4.2.7. クロッキング・アーキテクチャ
デバイス上部のI/Oインターフェイスがリージョナル・クロックによって駆動されるロジックに接続すると、タイミング・エラーが発生する可能性があります。リージョナル・クロックはデバイスの1 つのエリアに存在し、配置の制約は強制的に、一部のI/Oからロジックへのパスがエリアを交差する長いパスにします。
ロジックを駆動するには、デバイス全体をカバーするグローバル、またはデバイスの半分をカバーするデュアル・リージョナルのクロックソースを使用します。 あるいは、長いパス遅延に対応するために、I/Oインターフェイスの頻度を減らすことができます。 指定したすべてのI/Oをリージョナル・クロック象限に隣接するようにデバイスのピン配置を再デザインすることもできます。 この問題は、Logic Lock領域、クロッキング・リソース、ハードブロック(メモリー」、DSP、IP)など、レジスターの場所が制限されている場合に発生する可能性があります。
Timing AnalyzerのタイミングレポートのExtra Fitter Informationタブには、パス内のノードの配置が制限されている場合に通知されます。Extra Fitter Informationタブは インテル® Stratix® 10デバイスには使用できません。
5.4.2.8. タイミング収束に関する推奨事項
5.4.3. 調整と再コンパイル
タイミング収束を成功に導くには、よく検討されたRTLの方がコンパイルの設定を変更するよりも効果的である場合があります。 深刻なタイミング・エラーが存在せず、デザインに性能の改善に向けての最適化が実行済みで、最終のリリースに近い場合、シード・スィープも有効です。 シード・スィープは、コンパイル設定への変更点を評価するためにも使用することができます。 フィッタ・アルゴリズムのランダム性により、コンパイル結果は異なります。 コンパイル設定へ適用した変更が、平均して低いパフォーマンスとなるようであれば、その変更を元に戻します。
RTLやデザイン・アーキテクチャーに大幅な変更が行われた場合は、LogicLock領域を使用せずにデフォルト設定で定期的にコンパイルを行い、タイミング・エラーを起こすパスを再評価します。
多くの場合、パーティショニングはタイミングクロージャーの助けにはならずデザインプロセスの最初に行う必要があります。パーティションを追加すると、境界を越えた最適化が妨げられ、タイミングクロージャーが困難になり、コンパイル時間が長くなる場合、ロジックの使用率が増加します。
5.4.3.1. タイミング・クロージャーを達成するためのパーティションの使用
タイミング・クロージャーを達成するための1つの技術は、個々のデザイン区画内に障害経路を限定することであり、その結果、区画間を通過する障害経路は存在しません。その後、失敗したパスを修正し、影響を受けたパーティションのみを再コンパイルするために、必要に応じて増分の変更を行うことができます。
このモードを使用するには、
-
Design
Partition Plannerで、View > Show Timing Dataをクリックしてタイミングデータを読み込みます。
障害のあるパス上のノードを含むエンティティーは、Design Partition Plannerに赤で表示されます。
-
最上位のエンティティー・ウィンドウの外側にドラッグして、障害のあるパスを含むエンティティーを抽出します。
- 抽出されたエンティティーと最上位エンティティーの間に障害のあるパスがない場合、抽出されたエンティティーを右クリックしてからCreate Design Partitionをクリックして、そのエンティティーを独自のパーティションに配置します。
- 障害パスがパーティション間で交差しないように、パーティション内に障害パスを保管してください。
-
最悪スラック値を持つパーティションを掘り当てます。
他のすべてのパーティションについては、内容を保存してEmptyとして設定します。
パーティションの内容を保存する方法については、 インテル® Quartus® Prime プロ・エディション ユーザーガイド ブロックベースのデザイン の「インクリメンタルブロックベースのコンパイルフロー」インクリメンタル・ブロック・ベースのコンパイルフローを参照してください。
- パーティション内のロジックを調整し、パーティションがタイミング要件を満たすまで必要に応じてFitterを再実行します。
- 障害のあるパスを持つ他のすべてのデザイン・パーティションに対してこのプロセスを繰り返します。
5.5. デザイン解析
5.5.1. タイミング制約の無視
無視された制約のリストを表示するには、TimeQuest GUIのReportメニューからReport Ignored Constraintsをクリックするか、以下のコマンドを入力して無視された制約のリストを生成します。
report_sdc -ignored -panel_name "Ignored Constraints"
インテル® Quartus® Primeソフトウェアによって無視される制約はすべて分析する必要があります。必要に応じて、デザインの最適化を進める前に制約を修正しデザインを再コンパイルします。
フィッターが生成するIgnored Assignment Reportで無視される制約のリストを表示することができます。
5.5.2. I/Oタイミング
必要なタイミング・パフォーマンスを満たさないI/Oパスは、スラックが負であると報告され、Timing Analyzer Reportペインで赤で強調表示されます。 I/Oピンに明示的なI/Oタイミング制約を適用しない場合でも、 インテル® Quartus® Primeタイミング解析ソフトウェアはActual番号をレポートします。 デバイスがシステムで動作しているときは、そのタイミング・パラメーターのタイミング番号を満たす必要があります。
5.5.3. レジスター間のタイミング分析
5.5.3.1. Timing Analyzerによるパスレポートの表示
いずれかのクロックドメインに障害のあるパス(Reportペインで赤で強調表示)がある場合、Clocks Summaryペインに表示されているクロック名を右クリックし、タイミングのレポートをクリックして詳細を表示します。
Summary of Pathsタブでパスを選択すると、パス詳細ペインにすべてのパス情報が表示されます。Extra Fitter Informationタブには、物理デバイス上のパスの場所が視覚的に表示されます。 これにより、送信元ノードと宛先ノードが近すぎるか遠すぎるかに起因して、タイミング障害が距離に関連しているかどうかがわかります。 Extra Fitter Informationタブは インテル® Stratix® 10デバイスには使用できません。
Data Pathタブに、Data Arrival PathとData Required Pathが表示されます。 増分情報を使用して、タイミング違反に最も寄与しているパスセグメントを特定できます。Waveformタブには、時間領域の信号が表示され、到着データと必要なデータ間のスラックがプロットされます。
Technology Map Viewerは、回路図でテクノロジー・マップされたデザイン・ネットリストの表現を提供し、デザイン内のどの領域がロジックレベルの数を減らすことによって利益を得られるかを評価するのに役立ちます。 いずれかのビューアでタイミングパスを見つけるには、タイミングレポート内のパスを右クリックし、Locate PathをポイントしLocate in Technology Map Viewerを選択します。 Chip Plannerを使用して、パスの物理レイアウトを詳細に調査することもできます。
5.5.3.2. 障害が発生しているパスを解析する際のヒント
- 最悪のスラックを示すパスの改善に焦点を当てます。 Fitterは、最悪のスラックを持つパスに対して最も効果があります。 これらのパスを修正すると、Fitterはデザイン内の他のタイミングパスを改善できる可能性があります。
- 多くの障害パスに現れるノードを調べます。 これらのノードはタイミング・レポート・パネルのリストの一番上にあり、それらの最小スラックもあります。 共通のソースレジスター、デスティネーション・レジスター、または共通の中間組み合わせノードを持つパスを探します。 場合によっては、レジスターは同一ではなく、同じバスの一部です。
- タイミング解析レポートパネルで、FromまたはTo列見出しをクリックして、パスをソースレジスターまたはデスティネーション・レジスターでソートします。 共通のノードがある場合、これらのノードは、ソースコードの変更または インテル® Quartus® Primeの最適化設定によって改善される可能性があるデザインの領域を示します。 パスの1つのみに配置を制約すると、共通ノードをデバイス内でさらに遠くに移動することによって、他のパスのタイミング性能が低下する可能性があります。
5.5.3.3. クロックドメインを交差している問題のあるクロックパスを解析する際のヒント
-
これらのパスが2つのクロックドメインをまたがるかどうかを確認してください。
2つのクロックドメインをまたがるパスでは、タイミング解析レポートのFrom ClockとTo Clockが異なります。図 27. From Clockおよび To Clockフィールドでの異なる価値
- また、ソース・レジスターとデスティネーション・レジスターのクロックが同じであっても、パスの中に異なるクロックを含むパスが存在することがあります。
- このようなクロックドメイン間の問題のあるパスが同期的に解析可能であるかを確認します。
-
デザインに対してreport_timingを実行すると、レポートには各障害パスの起動クロックとラッチクロックが表示されます。
起動クロックとラッチクロックの関係が現実的であるかどうか、およびデザインに関する知識から何が期待できるかを確認します。
たとえば、パスは立ち上がりエッジで開始し、立ち下がりエッジで完了しますが、これはセットアップ関係を半分のクロックサイクルに低減させます。
-
Timing Reportがレポートするクロック・スキューを確認します。
大きなスキューは、ゲーテッドクロックなどのデザイン上の問題、または物理レイアウト上の問題(たとえば、専用クロック配線ではなくローカル配線を使用するクロック)を示している可能性があります。パスが同期的に分析され、パスに大きな歪みがないこと、および制約が正しいことを確認したら、データパスを分析できます。これらの手順を実行すると、クロックドメイン間のパスに対する制約を微調整して、正確なタイミングレポートを確実に得ることができます。
-
PLL位相シフトがセットアップ要件を低減しているかを確認します。
セットアップ要件は、PLLパラメーターと設定で調整することができる場合があります。
- クロックドメインを交差するパスは通常、2 つのクロックドメイン間での非同期的インタラクションを可能にするために、同期ロジック(例えば、FIFOまたはダブル・データ同期レジスター)で保護されています。
-
すべての不要なパスに誤ったパス制約を設定します。
必要のないパスの最適化を試みると、場合によってはデザインに不可欠なタイミング・パス上のタイミング要件をフィッターが満たさないことがあります。
5.5.3.4. クリティカルパスの送信元と送信先の間のパスを分析するためのヒント
- プロジェクト・ディレクトリーでreport_timingコマンドを実行して、クリティカル・パス内のノードを見つけます。
-
以下のコードを.tclファイルにコピーし、最初の2つの変数を最悪パスのFrom
NodeカラムとTo
Nodeカラムのノード名に置き換えます。
スクリプトは、最悪のソースレジスターとデスティネーション・レジスターの間のパスを分析します。
set wrst_src <insert_source_of_worst_path_here> set wrst_dst <insert_destination_of_worst_path_here> report_timing -setup -npaths 50 -detail path_only -from $wrst_src \ -panel_name "Worst Path||wrst_src -> *" report_timing -setup -npaths 50 -detail path_only -to $wrst_dst \ -panel_name "Worst Path||* -> wrst_dst" report_timing -setup -npaths 50 -detail path_only -to $wrst_src \ -panel_name "Worst Path||* -> wrst_src" report_timing -setup -npaths 50 -detail path_only -from $wrst_dst \ -panel_name "Worst Path||wrst_dst -> *"
- Scriptメニューから、.tclファイルを読み込みます。
-
resulting timingパネルで、(赤色でハイライトされる)タイミングに問題のあるパスはChip Plannerで検索できるようになり、ノード間の距離や大きなファンアウトなどの情報が表示されます。
下の図は、これらのレポートが解析したものを略図化して示したものです。
図 28. Timing Reportデザインのクリティカルパスは赤です。.tclスクリプトとFigureの関係は次のとおりです。
- 最初の2ラインは、クリティカル・パスの2つの端点の内側にある、それらを異なる方向に引っ張っているものすべてを示します。
- 最初のreport_timingコマンドは、ソースが駆動しているすべてのパスを分析します(緑色で表示)。
- 2番目のreport_timingコマンドは、オレンジ色で表示されているクリティカル・パスを含む、宛先に向かうすべてのパスを分析します。
- 最後の2 つのreport_timingコマンドは、他の方向に進むエンドポイント外部のすべてを表示します。
- 最初の2ラインは、クリティカル・パスの2つの端点の内側にある、それらを異なる方向に引っ張っているものすべてを示します。
5.5.3.5. コンパイル間のクリティカル・パスをモニタする.tclスクリプト作成のヒント
- プロジェクト・ディレクトリーにTQ_critical_paths.tclという名前のスクリプトを作成します。
-
所定のコンパイルであれば、クリティカル・パスを表示し、このクリティカル・パスをキャプチャするために、一般的なreport_timingコマンドをライトします。
たとえば、低レベルの階層で複数のパスが失敗した場合、次のようなコマンドを追加します。
report_timing –setup –npaths 50 –detail path_only \ –to “main_system: main_system_inst|app_cpu:cpu|*” \ –panel_name “Critical Paths||s: * -> app_cpu”
-
他の*count_sync*レジスターへ進むステート・マシンのビットのような特別なパスには、以下のコマンドを追加します。
report_timing –setup –npaths 50 –detail path_only \ –from “main_system: main_system_inst|egress_count_sm:egress_inst|update” \ –to “*count_sync*” –panel_name “Critical Paths||s: egress_sm|update -> count_sync”
- コンパイルのたびにTiming Analyzerでこのスクリプトを実行し、新しいクリティカル・パスが表示されたら新しいreport_timingコマンドを追加します。
5.5.3.6. グローバル配線リソース
使用可能なグローバル配線リソースの数や種類の詳細については、関連するハンドブックを参照してください。
デザインでのグローバル信号の使用量をチェックし、グローバル配線リソースで適切な信号が配置されていることを確認します。Compilation Reportで、Fitterレポートを開き、Resource Sectionをクリックします。Global & Other Fast SignalsレポートとNon-Global High Fan-out Signalsレポートを精査し、変更する必要かあるどうかを決定します。
高ファンアウト信号に対しては、これらの信号をグローバル配線リソース上に配置することでスキューを低減できることがあります。逆に、低ファンアウト信号の挿入遅延は、これらの信号をグローバル配線リソースから移動させることで低減することができます。これらの作業を実行することで、クロック・イネーブル・タイミングおよびコントロール信号リカバリ/リムーバルのタイミングを改善できますが、同時にクロック・スキューも増加します。Assignment EditorのGlobal Signal設定を使用してグローバル配線リソースを制御します。
5.6. タイミングの最適化
5.6.1. 障害のあるパスに対するタイミング・クロージャー推奨事項の表示
- Timing AnalyzerのTasksペインで、Report Timing Closure Recommendationsタスクを選択してReport Timing Closure Recommendationsダイアログボックスを開きます。
- Report Timing Closure Recommendationsダイアログボックスからクロックドメインに基づいたパスの選択、パス上のノードによるフィルタ、分析するパスの数の選択が実行できます。
- Timing AnalyzerでReport Timing Closure Recommendationsタスクを実行した後、Timing Analyzer GUIのReportペインのReport Timing Closure Recommendationsフォルダーにあるレポートを調べます。 各推奨には、それに関連付けられた星印(*)があります。 星の数が多いほど、デザインのタイミングを調整しやすくなります。
report_timing Extra Fitter Information Extra Fitter Information インテル® Stratix® 10
5.6.2. Timing Optimization Advisor
タイミング最適化アドバイザーは、タイミング要件を満たすようにデザインを最適化する設定をガイドします。 Timing Optimization Advisorを実行するには、 Tools > Advisors > Timing Optimization Advisorをクリックします 。このアドバイザーは、このセクションで行った提案の多くについて説明します。
コンパイル後にTiming Optimization Advisorを開くと、デザインのタイミングパフォーマンスを改善するための推奨事項を見つけることができます。これらのアドバイザの提案が互いに矛盾する場合、これらのオプションを評価し、所定の要件に最適な設定を選択してください。
以下の例は、デザインをコンパイルした後のTiming Optimization Advisorですが、これは周波数の要件は満たしていますが、タイミングの改善にいくつかの変更が必要であることを示しています。
Timing Optimization AdvisorのMaximum Frequency (fmax)あるいはI/O Timing (tsu、tco、tpd)を展開すると、ステージごとの推奨事項が表示されます。
第1ステージには、最も容易に変更できるオプション、つまりデザインの最適化およびコンパイル時間が大きく影響されないオプションを含まれます。
アイコンは、各推奨設定が現在のプロジェクトで行われたかどうかを示します。この図では、ステージ1の推奨事項のリストにあるチェック・マーク・アイコンは、既に実装されている推奨事項を示しています。警告アイコンは、このコンパイルでは従わない推奨事項を示します。情報アイコンは一般的な提案を示します。これらのエントリーの場合、アドバイザーはこれらの推奨事項が実行されたかどうかを報告せず、代わりにパフォーマンスを向上させる方法を説明します。各アイコンの詳細を説明する凡例については、タイミング最適化アドバイザーの「使い方」ページを参照してください。
各推奨事項には、 設定を変更できる インテル® Quartus® PrimeGUIで、たとえば、 SettingsダイアログボックスのSynthesis Netlist Optimizations ページ、または割り当てエディターの[ グローバル信号]カテゴリについて考えてみます。このアプローチは、行われる設定を最も制御し、ソフトウェアの設定について学習するのに役立ちます。使用可能な場合、Correct the Settingsボタンを使用して、推奨されるグローバル設定の変更を自動的に行うこともできます。
タイミング最適化アドバイザーの一部のエントリーでは、ボタンを使用してデザインをさらに分析し、詳細を確認できます。 advisorは、デザイン内のクロックを含むテーブルを提供し、それらにタイミング制約が割り当てられているかどうかを示します。
5.6.3. Fitter設定
5.6.3.1. ホールド・タイミングの最適化
Advanced Fitter SettingsダイアログボックスでOptimize Hold Timingをオンにすると、ソフトウェアがパスに遅延を追加して、デザインが最小遅延要件を満たしていることを確認します。I/O Paths and Minimum TPD Pathsを選択すると、Fitterは次の基準を満たすように機能します。
- デバイス入力ピンからレジスタまでのホールド時間(tH)
- I/OピンからI/Oレジスタ、あるいはI/OレジスタからI/Oピンへの最小遅延
- レジスタから出力ピンまでの最小clock-to-out時間(t CO)
All Pathsを選択した場合、フィッタは図で青色でハイライトされるレジスタ間のホールド要件を満たすよう動作します。この図では、ロジックで生成された派生クロックにより、別のレジスタでホールド・タイム問題が発生しています。
ただし、デザインのレジスター間に内部ホールドタイム違反がある場合、LCELLプリミティブをインスタンス化するか、派生クロックまたはゲートクロックの代わりにクロックイネーブル信号を使用するなど、デザインを変更することで、手動で遅延を追加できます。
5.6.3.2. フィッターの積極的なルーティングの最適化
このオプションは、配線リソースの結果がno-fitエラーでかつ、配線ワイヤの使用量を抑えたい場合に有効です。
以下の表には、 Fitter Aggressive Routability Optimizationsロジック・オプションの設定方法を示しています。
設定 | 説明 |
---|---|
Always | Fitter Aggressive Routability Optimizationsロジック・オプションをAlwaysに設定した場合、ワイヤ使用量が低減されるので、デザインのパフォーマンスに影響する場合があります。 |
Never | ワイヤ使用量の低減よりもタイミングの改善が重要な場合は、このオプションをAutomaticallyまたはNeverに設定します。 |
Automatically | Fitterは、デザインのルーティング可能性およびタイミング要件に基づいて、積極的なルーティング可能性の最適化を自動的に実行します。 ワイヤの使用量を減らすよりもタイミングを改善することが重要な場合、このオプションをAutomaticallyまたはNeverに設定します。 |
5.6.4. I/Oタイミングの最適化手法
このセクションで紹介するオプションは、セットアップ遅延(tSU)、ホールド時間(tH)およびclock-to-output遅延(tCO)パラメーターを含むI/Oタイミングを改善する方法を解説します。
- I/Oタイミングの最適化に進む前に、次のことを確認してください。 デザインの割り当ては、「Design Optimization Overview」の章のInitial Compilation: Required Settingsセクションの提案に従います。
- リソースの使用は問題ありません。
セットアップ時間とClock-to-Output時間の改善に関するまとめ
次の表は、tSUおよびtCO時間を削減するための手法の推奨順序を示しています。tSU時間を短縮すると、ホールド(tH)時間が増加します。
オーダー | 手法 | tSUへの影響 | tCOへの影響 |
---|---|---|---|
1 | 失敗したI/Oに適切な制約が設定されていることを確認します(初期コンパイル:必要な設定を参照) | あり | あり |
2 | I/Oにタイミングドリブンコンパイルを使用します(高速入力、出力、および出力イネーブルレジスターを参照) | あり | あり |
3 | 高速入力レジスターを使用します(プログラム可能な遅延を参照) | あり | なし |
4 | 高速出力レジスター、高速出力イネーブル・レジスター、高速OCTレジスター使用します(プログラム可能な遅延を参照) | なし | あり |
5 | Input Delay from Pin to Input Registerの値を小さくするか、Decrease Input Delay to Input Register = ONに設定します。 | あり | なし |
6 | Input Delay from Pin to Internal Cellsの値を小さくするか、Decrease Input Delay to Internal Cells = ONに設定します。 | あり | なし |
7 | Delay from Output Register to Output Pinの値を小さくするか、Increase Delay to Output Pin = OFFに設定します(高速入力、出力、および出力イネーブルレジスターを参照)。 | なし | あり |
8 | Input Delay from Dual-Purpose Clock Pin to Fan-Out Destinationsの値を大きくします(高速入力、出力、および出力イネーブルレジスターを参照) | あり | なし |
9 | PLLを使用するクロック・エッジのシフト方法 | あり | なし |
10 | Delay to output enable pinの値を大きくするか、Increase delay to output enable pinを設定します(PLLを使用してクロックエッジをシフトするを参照)。 | なし | あり |
- タイミング・ロジック・オプションのIOCレジスター配置の最適化
このオプションは、tSUまたはtCOアサインメントを満たす必要があればレジスターをI/Oエレメントに移動し、(レジスターが複数の出力位置にファンアウトするような場合)必要に応じてレジスターを複製します。 - Fast Input Register、Fast Output Register、およびOutput Enable Register
Assignment Editorで高速I/O割り当てを行うことにより、個々のレジスターをI/Oセルに手動で配置できます。 - プログラマブル遅延
さまざまなプログラム可能な遅延オプションを使用して、tSUおよびtCO時間を最小限に抑えることができます。 - PLLを使用するクロック・エッジのシフト方法
PLLを使用すると、一般にI/Oタイミングが自動的に向上します。 - 高速リージョナル・クロック・ネットワークとリージョナル・クロック・ネットワークの使用方法
リージョナル・クロックは、単一象限に含まれるロジックに対して最小のクロック遅延とスキューを提供します。 - スパイン・クロックの制限
クロック配線要求が高いプロジェクトでは、 インテル® Quartus® Primeソフトウェアの制限によりスパイン・クロック・エラーが発生する可能性があります。
5.6.4.1. タイミング・ロジック・オプションのIOCレジスター配置の最適化
- レジスターピンの間に組み合わせロジックがある
- キャリーチェーンの一部である
- 優先する場所の割り当てがある
- 非同期ロードポートを使用し、値が1ではない(ポートが使用可能なデバイスファミリー)
5.6.4.2. Fast Input Register、Fast Output Register、およびOutput Enable Register
高速I/O設定がオンの場合、レジスターは常にI/O要素に配置されます。高速I/O設定がオフの場合、レジスターI/O要素に配置されません。これは、Optimize IOC Register Placement for Timingオプションがオンになっている場合にも当てはまります。高速I/O割り当てがない場合、 インテル® Quartus® Primeソフトウェアは、Optimize IOC Register Placement for Timingオプションがオンの場合、I/Oエレメントにレジスターを配置するかどうかを決定します。
また、4つの高速I/Oオプション(Fast Input Register、Fast Output Register 、Fast Output Enable Register 、 Fast OCT Register)を使用して、Logic Lock領域でのレジスターの位置をオーバーライドし、I/Oセルに強制します。この割り当てを複数のピンに信号を供給するレジスターに適用すると、Fitterはレジスターを複製して、関連するすべてのI/Oエレメントに配置します。
Fast Input Registerオプション、Fast Output Registerオプション、Fast Output Enable Registerオプション、およびFast OCT (on-chip termination) Registerオプションの詳細については、Quartus II Helpを参照してください。.
5.6.4.3. プログラマブル遅延
インテル® Quartus® Primeソフトウェアは、タイミング要件を満たすために、適用可能なプログラム可能な遅延を自動的に調整します。これらのオプションの効果の詳細については、デバイスファミリのハンドブックまたはデータシートを参照してください。
プログラマブル遅延を作成し、デザインをコンパイルした後、Compilation ReportのDelay Chain Summaryセクションで各I/O ピンごとの遅延チェーンに対して実装された遅延の値を表示することができます。
Assignment Editorでサポートされるノードにプログラマブル遅延オプションを割り当てることができます。 また、Chip PlannerとResource Property Editorを使用すれば、ターゲット・デバイスへの遅延チェイン設定を表示し、変更を加えることができます。 フル・コンパイルを実行した後にResource Property Editorを使用して変更を加える場合、変更点はネットリストに直接保存されるので、全デザインを再コンパイルする必要はありません。 このような変更はネットリストに直接作成されるため、デザインを再コンパイルする際、変更は自動的には作成されません。 変更管理機能を使用すると、以降のコンパイルで同じ変更を再度適用することができます。
新しいデバイスのプログラム可能な遅延はユーザーが制御できますが、Intelは上級ユーザーのみに使用することを推奨します。しかし インテル® Quartus® Primeソフトウェアは、Fitterフェーズ中にプログラム可能な遅延を内部で使用することがあります。
使用可能なプログラマブル遅延ロジック・オプションの詳細については、以下のQuartus II Helpトピックを参照してください。
5.6.4.4. PLLを使用するクロック・エッジのシフト方法
Input Delay from Dual Purpose Clock Pin to Fan-Out Destinationsと呼ばれるプログラマブル遅延を使用することで同様の効果が得られるデバイスもあります。
5.6.4.5. 高速リージョナル・クロック・ネットワークとリージョナル・クロック・ネットワークの使用方法
Intelデバイスはさまざまな階層型クロック構造を持っています。 これらには、専用のグローバルクロックネットワーク、リージョナルクロックネットワーク、高速リージョナル・クロック・ネットワーク、およびペリフェラル・クロック・ネットワークが含まれます。使用可能なリソースはIntelデバイスファミリによって異なります。
ターゲット・デバイスで使用可能なクロッキング・リソースの個数については、該当するデバイス・ファミリーのハンドブックを参照してください。
5.6.4.6. スパイン・クロックの制限
グローバル・クロック・ネットワーク、リージョナル・クロック・ネットワーク、およびペリフェラル・クロック・ネットワークには、スパインクロックと呼ばれる追加レベルのクロック階層があります。 スパインクロックは、最後の行と列のクロックをそれらのレジスターに駆動します。 したがって、チップ内のすべてのレジスターへのクロックは、スパインクロックを介して到達します。 スパインクロックは直接ユーザーが制御することはできません。
これらのスパイン・クロック・エラーを減らすには、地域のクロックリソースを使用するようにデザインを制約します。
- デザインがLogicLock領域を使用しない場合、あるいはLogicLock領域がクロック領域の境界に揃っていない場合は、追加のLogicLock領域を作成することでさらにロジックを制約します。
- グローバル・プロモーション・プロセスが正しく機能していないために、Periphery機能がLogic Lock領域の割り当てを無視する場合 グローバル・プロモーション・プロセスが正しい場所を使用するようにするには、これらの周辺機能を使用して特定のピンをI/Oに割り当てます。
- デフォルトでは、いくつかの Intel® FPGA IP関数は、デュアル・リージョナル・クロックの値でグローバル信号割り当てを適用します。 ロジックをリージョナル・クロック領域に制約し、グローバル信号割り当てをRegionalではなくDual-Regionalに設定すると、クロックリソースの競合を減らすことができます。
5.6.5. レジスター間のタイミング最適化に向けた設定
コーディング・スタイルは、他の設定変更よりもデザインのパフォーマンスに大きな影響を与えます。 常にコードを評価し、必ず同期設計手法を使用するようにしてください。
デザインの最適化を実行する前に、デザインの構造と、さまざまな種類のロジックにおけるテクニックの効果を理解してください。 ロジック構造に恩恵を与えない手法では、パフォーマンスが低下する可能性があります。
5.6.5.1. ソース・コードの最適化
コーディング中にロジックを実装するために必要なロジックレベルの数に注意してください。 レジスター間のロジックのレベルが多すぎると、クリティカル・パスでタイミングが失われる可能性があります。 パイプライン処理またはより効率的なコーディング手法を使用するようにデザインを再構築してみてください。 また、ソースコードでファンアウトの大きい信号を制限してみてください。 可能であれば、制御信号を複製してパイプライン処理します。 合成中のマージを避けるために、重複するレジスターが保存された属性によって保護されていることを確認してください。
デザインのクリティカル・パスにメモリやDSP機能が存在する場合、推測されずに専用ロジック内に配置されているメモリーや機能を説明するコード・ブロックがデザインに含まれているかどうかを確認してください。 場合によっては、これらの機能がターゲット・デバイスの高性能な専用メモリーもしくはリソースに配置されるようにソース・コードを変更することも可能です。 RAM/DSPブロックを使用するのであれば、オプションの入力レジスターと出力レジスターをイネーブルします。
ステートマシンがステート・マシン・ロジックとして認識され、合成ツールで適切に最適化されていることを確認してください。 認識されるステートマシンは、一般に合成ツールがそれらを汎用ロジックとして扱う場合よりも最適化されています。 インテル® Quartus® Primeソフトウェアでは、Compilation ReportのAnalysis & Synthesisの下にあるState Machineレポートを確認できます。 このレポートには、コンパイル中に認識された各ステートマシンの状態エンコードなど、詳細が記載されています。 ステートマシンが認識されない場合は、認識できるようにソースコードを変更する必要があります。
5.6.5.2. レジスター間のタイミング改善のまとめ
- タイミング割り当てが完全で正しいことを確認します。 詳しくは、Design Optimization Overviewの章のInitial Compilation: Required Settingsのセクションを参照します。
- 最初のコンパイル後のすべての警告メッセージを確認し、無視されるタイミング・アサインメントをチェックしていることを確認してください。
- ネットリストの合成最適化オプションを適用します。
-
スピードの最適化を図るには、以下の合成オプションを適用します。
- エリアではなくスピードへの合成の最適化
- 合成中の階層のフラット化
- シンセシス・エフォートをHighへ設定する
- シフトレジスターの推論の防止
- 合成ツール内で利用可能な他の合成オプションを使用する
- パフォーマンスを最適化するには、Advanced Physical Optimizationをオンにします。
-
異なるフィッター・シードを試します。小さな負のスラックによる問題のあるパスがほとんどない場合、フィッター・シード・ノイズで制約を満たすフィットがあるかを確認するために異なるシードを試します。
注: 多くのクリティカル・パスに問題がある、あるいはパスに重篤な問題がある場合はこのステップを手順を省略します。
- 配置を制御するには、LogicLockアサインメントを作成します。
- タイミング要件を満たすまでかなりの開きがあるデザインのエリアを修正するデザイン・ソース・コードの変更を行います。
-
ロケーション・アサインメントを作成するか、最後の手段としてデザインをバック・アノテーションして手動で配置を行います。
Design Space Explorer II(DSE)を使用して、異なる設定でいくつかのコンパイルを実行するプロセスを自動化することができます。これらの手法を適用してもパフォーマンスの要件が達成できない場合、別にデザイン・ソース・コードの技術は、性能要件を達成しない場合、追加のデザイン・ソース・コードの修正が必要になるかもしれません。
5.6.5.3. フィジカル・シンセシスの最適化
インテル® Quartus® Primeコンパイルの合成段階では、物理合成の最適化は別のEDA合成ツールからの出力に対して、または合成の中間ステップとして行われます。 これらの最適化により、選択した手法とエフォートレベルに応じて、合成ネットリストが変更され、面積またはスピードが向上します。
ネットリスト最適化のオプションを表示、変更するには、Assignments > Settings > Compiler Settings > Advanced Settings (Fitter)をクリックします。
サードパーティーのEDA合成ツールを使用していて、 インテル® Quartus® Primeソフトウェアが回路をリマップしてパフォーマンスを向上させることができるかどうかを判断したい場合、Perform WYSIWYG Primitive Resynthesisオプションを使用してください。 このオプションは、アトミック・ネットリスト内のLEの論理ゲートへのマッピングを解除し、次にゲートをIntel固有のプリミティブにマッピングし直すように インテル® Quartus® Primeソフトウェアに指示します。Intel固有のプリミティブにより、Fitterはアーキテクチャー固有の手法を使用して回路を再マッピングできます。
Quartus IIテクノロジ・マッパーは、Optimization Techniqueの設定に応じて、最大速度性能、最小面積使用を達成するか、もしくは高性能と最小ロジック使用の間で最良のバランスを取るようにデザインを最適化します。このオプションは、SpeedかBalancedに設定します。
フィジカル・シンセシスの最適化によって、ネットリストに対して配置固有の変更が行われ、特定のアルテラデバイスでスピード・パフォーマンスの結果が改善されます。
5.6.5.4. エクストラ・フォート消費電力最適化の設定をオフにする
5.6.5.5. エリアではなくスピードへの合成の最適化
合成ツールのデフォルトの最適化ターゲットを特定し、それに応じてデバイスおよびタイミング制約を設定します。 たとえば、ターゲット周波数を指定しないと、合成ツールによっては面積が最適化されます。
Assignment Editorを使用してデザインの特定のモジュールのロジックオプションを指定することができますが、デフォルトのOptimization Technique設定をBalanced(特定のデバイスファミリーの面積と速度の最適なトレードオフ)またはArea(面積が重要な場合)にします。 Assignment EditorのSpeed Optimization Technique for Clock Domainsオプションを使用して、指定したクロックドメイン内またはクロックドメイン間のすべての組み合わせロジックの速度を最適化することもできます。
プッシュ・ボタン・コンパイルで最高のパフォーマンスを達成するには、他の合成設定に関する次のセクションの推奨事項に従ってください。 DSE IIを使用して、さまざまな インテル® Quartus® Prime合成オプションを試して、最高のパフォーマンスが得られるようにデザインを最適化することができます。
5.6.5.6. 合成中の階層のフラット化
5.6.5.7. シンセシス・エフォートをHighへ設定する
5.6.5.8. ファンアウトを制御するためのロジックの複製
これらのタイプのグローバルに影響する信号のソースを複製すると、それらを多くのホップに分散したり、さらには多数のクロックサイクルに分散したりするのに役立ち、ローカル転送にさらに集中できます。
たとえば、ファンアウトの多い信号をレジスターのツリーの形式で複製することにより、信号を複数のクロックサイクルに分散させることができます。信号がツリーを進むにつれて、元のレジスターのローカルコピーにより多くの信号が徐々に供給されるため、個々のレジスター宛先が適切にローカライズされ、レジスターーの最適化への影響が最小限に抑えられます。この最適化の鍵は、複製間で元の信号のファンアウトを割り当てる方法を決定することです。個々のレジスターが長い距離を走行する必要がある場合、ツリーの利点を取り除くことができます。
レジスターツリーを手動で作成し、RTLでエンドポイントをグループ化するには、デザイン全体に信号を分散させる最良の方法に関するシステムレベルの知識を活用しますが、時間がかかり、広範囲に影響を与える可能性があります。レジスターツリーの手動作成の詳細については、手動レジスターの複製を参照してください。
これは以下のいずれかの方法で行うことができます。
各方法には、作成する複製の数と、複製間のファンアウトを割り当てる方法を決定する独自の方法があります。
5.6.5.8.1. 手動レジスターの複製
合成ツールは、レジスターの最大ファンアウトを指定するオプションまたは属性をサポートしています。使用する場合 インテル® Quartus® Prime 合成では、割り当てエディターでMaximum Fan-Outロジックオプションを設定して、ノードの宛先数を制御し、ファンアウト数が指定した値を超えないようにすることができます。 HDLコードでmaxfan属性を使用することもできます。ソフトウェアは、指定された最大ファンアウトを実現するために必要に応じてノードを複製します。
Maximum Fan-Outアサインメントを使用してロジックを複製すると、通常はリソース使用量が増加します。選択したデバイスにおける配置やリソースの総使用量によってはコンパイル時間が増加することがあります。
Maximum Fan-Outの割り当てによるタイミング・パフォーマンスの向上は、デザインによって異なります。これは、 Maximum Fan-Out割り当てを使用すると、Fitterがソースロジックを複製してファンアウトを制限しますが、複製された各ソースが駆動する宛先を制御しないためです。したがって、複製されたソースロジックがデバイス全体に配置されたロジックを駆動する可能性があります。この状況を回避するには、 Maximum Fan-Out論理オプションを使用できます。
Maximum Fan-Outアサインメントを使用する場合、このアサインメントを使用した場合と使用しない場合のデザインを比較して、期待するタイミング性能の改善が得られているかを検証することを推奨しています。
使用する合成ツールに関係なく インテル® Quartus® Primeソフトウェアでレジスターを手動で複製できます。レジスターを複製するには、Assignment EditorでレジスターにManual Logic Duplicationロジックオプションを適用します。
5.6.5.8.2. 自動レジスター製:推定物理的近接性
set_instance_assignment -name DUPLICATE_REGISTER -to <register_name> <num_duplicates>
ここで、
- register_nameは複製するレジスターです。チェーンからレジスターツリーを作成するには、チェーン内の各レジスターに一意の割り当てを作成します。 DUPLICATE_REGISTER割り当ては、チェーン内で互いに駆動するレジスターに適用される場合、適切な順序で処理されます。
- num_duplicatesは、作成するレジスターの複製の数です(オリジナルを含む)。元の信号にMのファンアウトがある場合、複製の平均ファンアウトはM/Nですが、アルゴリズムの裁量により、個々の複製の数は増減する可能性があります。
DUPLICATE_REGISTER割り当ては、Fitter段階で処理されます。複製後のデザインの最適化に費やす時間を最大化するには、物理的な近接性の早期推定に基づいて複製を作成し、複製間にファンアウトを割り当てる必要があります。ただし、これにより細かい割り当ての決定が不正確になります。DUPLICATE_REGISTER割り当ては、重複の数が少ない(100未満)場合に最適であり、作成されたグループは、重複が作成された後の最適化中に柔軟性を可能にするのに十分粗いです。
FitレポートのFitter Duplication Summaryパネルは、 インテル® Quartus® Prime プロ・エディションによってピックアップされたDUPLICATE_REGISTER割り当ての詳細を示します 。また、ファンアウト数が1000を超える登録済み信号についても要約します。これらは、将来のDUPLICATE_REGISTER割り当ての妥当な候補になる可能性があるためです。
- PHYSICAL_SYNTHESISをOFFに設定すると、 DUPLICATE_REGISTERが無効になります。
- 他の物理合成の最適化とは異なり、DUPLICATE_REGISTER割り当てでは、非同期クリアにフィードするレジスターとロケーション割り当てを持つレジスターを複製できます。
-
DUPLICATE_REGISTER割り当ては、次のいずれかの条件を持つレジスターを処理しません。
- レジスターは、グローバル信号またはクロック信号を駆動します。
- レジスターは、タイミング割り当てまたは例外が適用されています。
- レジスターには、 保持属性またはPRESERVE_REGISTER割り当てがあります。
- レジスターはにdon't touchマークされています。
- レジスター、他のパーティションを駆動または駆動します。
5.6.5.8.3. 自動レジスター複製:階層的近接
set_instance_assignment -name DUPLICATE_HIERARCHY_DEPTH -to <register_name> <num_levels>
ここで、
- register_nameは、複数の階層にファンアウトするチェーンの最後のレジスターです。 レジスターツリーを作成するには、ノードの背後に十分な単純なレジスターがあり、それらの単純なレジスターが自動的にツリーに取り込まれるようにします。
- num_levelsは、階層を下に複製するために使用する、チェーンに存在するレジスター数の上限に対応します。
DUPLICATE_HIERARCHY_DEPTHX割り当ては、合成段階で処理されます。 ファンアウトの大きい信号は、レジスターのパイプラインを通過してモジュールのサブ階層にドライブするのが一般的です。 たとえば、システム全体のリセットを数クロックサイクルにわたって伝播させ、デザイン全体の多くのモジュールに駆動することができます。 いくつかのシナリオでは、このサブ階層の構造を利用して、作成されるレジスターツリーの構造を推測すると、類似した階層内のエンドポイントに同じ信号のコピーが割り当てられ、デザイン内で分岐するようになります。 階層は、レジスターツリーのどこに分岐を配置するかを決定します。
チェーン内のレジスターは、複製に含まれる次の条件をすべて満たしている必要があります。
- レジスターは、別のレジスターによってのみ供給される必要があります。
- レジスターは、組み合わせロジックによって供給されてはなりません。
- レジスターはシンクロナイザー・チェーンの一部であってはなりません。
- レジスターに2次信号があってはなりません。
- レジスターには、preserve属性またはPRESERVE_REGISTER割り当てを含めることはできません。
- 最後のレジスターを除くチェーン内のすべてのレジスターは、ファンアウトを1つだけ持つ必要があります。
レジスターチェーンとそれが駆動するエンドポイントの階層構造を持つネットリストの次の例の図を考えてみます。 DUPLICATE_HIERARCHY_DEPTH割り当ては、図 35に示すように、階層全体でパイプラインレジスターを複製します。
この場合、regZは4つのレジスターのチェーンのエンドポイントであるため、適切な割り当てターゲットです。この例では最大3つの複製候補(regZ 、 regY、およびregX)があるため、割り当て値は1〜3のいずれかにすることができます。regAは、その前のパスのタイミングと最適化を維持するために階層に取り込まれません。DUPLICATE_HIERARCHY_DEPTH割り当ては、信号を100を超える複製に複製する必要があり、チェーンの下のサブ階層が深く、必要なツリーの構造をガイドするのに十分な意味がある場合に最適に使用されます。
num_levelsが1に設定されている場合、唯一regZ、チェーンの引き出しとそのファンアウトツリー内の階層レベル押し下げられます。
num_levelsを2に設定すると、 regYとregZの両方がチェーンから引き出されます。regZは最大の階層の深さ2で終わり、 regYは階層の深さ1で終わります。
num_levelsが3に設定されている場合、3つすべてのレジスター(regZ regY、およびregZ)がチェーンから引き出され、それぞれ3、2 、および1レベルの最大階層深度にプッシュされます。
合成レポートのHierarchical Tree Duplication Summaryパネルには、DUPLICATE_HIERARCHY_DEPTH割り当てで指定されたレジスターに関する情報が表示されます。また、割り当てをさらに改善するための開始点として使用できるチェーンの長さの理由も含まれています。合成レポートには、Hierarchical Tree Duplication Detailsというパネルがあり、実装された複製の構造をよりよく理解するために使用できるチェーン内の個々のレジスターに関する情報を提供します。
5.6.5.9. シフト・レジスターの推論の防止
5.6.5.10. 合成ツール内で使用可能な他の合成オプションを使用する
- レジスター・バランスまたはレジスタ・リタイミングをオンにする
- レジスター・パイプラインをオンにする
- リソースの共有をオフにする
これらのオプションはパフォーマンスを向上させますが、一般的にはデザインのリソース使用率も増大します。
5.6.5.11. Fitterシード
デザインの変更はコンパイル間のパフォーマンスに影響します。 このランダムなバリエーションは、配置および配線アルゴリズムに固有のものです。すべてのシードを試して絶対的に最良の結果を得ることは不可能です。
最適化設定の変更がレジスター間のタイミングや障害パスの数にわずかな影響を与える場合、その変更が改善または低下を引き起こしたこと、またはそれがFitterのランダム効果によるものであるかどうかを常に確信することはできません。デザインがまだ変更されている場合、シードスイープを実行して(デザインを複数のシードでコンパイルして)最適化変更後に平均結果が改善されるかどうか、およびコンパイル時間を増やす設定が物理合成の場合のように増加する価値があるかどうかの設定に依存します。掃引はまたデザインに期待するランダム変動の量を示しています。
デザインが完成したら、最適な結果を得るためにデザインをさまざまなシードでコンパイルできます。 ただし、その後デザインに変更を加えた場合、再度シードスイープを実行する必要があります。
Assignments > Compiler Settingsをクリックして、シードの初期配置を制御します。 DSE IIを使用すると、シードスイープを簡単に実行できます。
Fitterシードを指定するには、次のTclコマンドを使用します。
set_global_assignment -name SEED <value>
5.6.5.12. 最大ルータタイミング最適化レベルを設定する
5.6.6. ロケーション・アサインメント
位置の割り当ては、Logic Lock割り当てよりも インテル® Quartus® Prime Fitterの方が柔軟性がありません。 さらに、デザインに慣れている場合、より良い結果が得られるように場所の制約を入力できます。
5.6.7. 準安定性の解析と最適化手法
インテル® Quartus® Primeソフトウェアを使用すると、デザインが非同期信号を同期するときのメタスタビリティーによる平均MTBFを解析し、デザインを最適化してMTBFを向上させることができます。 これらの準安定性機能は、Timing Analyzerで制約されているデザイン、および一部のデバイスファミリーでのみサポートされています。
デザインのMTBFが低い場合、Timing Optimization AdvisorのMetastability Optimizationセクションを参照してください。メタ安定性に関してデザインを最適化するのに役立つさまざまな設定が示されています。
この章では、メタステーブル解析を有効にしてデザイン内のレジスター同期チェインを特定する方法、メタスタビリティー・レポートの詳細、およびメタスタビリティーを管理するためのその他のガイドラインについて説明します。
5.6.8. インテル Stratix 10タイミングクロージャーの推奨事項
従来のFPGAタイミング・クロージャー・フローでは、ほとんどのデザイン解析の開始点はクリティカルパスです。 インテル® Stratix® 10デバイス性質、そしてHyper Retimerのため、Retiming Limit Reportからタイミング・クロージャー・アクティビティーを開始することをお勧めします。より多くの時間を要し、場合によっては手動のタイミング・クロージャー・テクニックを調べる前に、ツールにできるだけ多くの最適化の機会を与える必要があります。
5.6.8.1. Retiming Limit Detailsのレポートのデータ
Retiming Limit Detailsレポートは以下を指定します。
- Clock Transfer: クリティカル・チェーンが適用されるクロックドメイン、またはクロックドメイン転送
- Limiting Reason: それ以上の最適化が行われないようにするデザイン条件
- Critical Chain Details: タイミング制限に関連するタイミングパス
5.6.8.1.1. Retiming Limit Detailsレポートを使用する
Retiming Limit Detailsレポートにアクセスするには:
- Reportsタブで、Fitter > Retime Stageの Retiming Limit Detailsをダブルクリックします。
-
Technology Map Viewerでクリティカル・チェーンを見つけるには、任意のパスを右クリックし、Locate Critical Chain in Technology Map Viewerをクリックします。
Technology Map Viewerは、配置、配線、レジスターのリタイミング後の重要なチェーン全体の概略図を表示します。
図 36. Technology Map Viewerのクリティカル・チェーン
5.6.8.2. Fast Forwardタイミング収束の推奨事項を確認します。
Fast Forwardコンパイルを実行すると、Compilerはレジスターから信号を削除して、その後のリタイミングのためにネットリスト内での移動を可能にします。Fast Forwardコンパイルでは、デザイン固有のタイミング・クロージャー推奨が生成され、すべてのタイミング制限が取り除かれて最大パフォーマンスが予測されます。
Fast Forwardの探索が完了したら、最も効果を発揮するためにどの推奨を実装するかを決定できます。 RTLに適切な推奨事項を実装し、Fast Forwardが報告するパフォーマンスレベルを達成するようにデザインを再コンパイルします。
Fast Forward Detailsレポートは以下の情報を提供します。
名 | 説明 |
---|---|
Step | 最適化前の基本コンパイルから始めて、さまざまなFast
Forward最適化手順を表示します。
|
Fast Forward Optimization | 各ステップを実装するために必要な最適化のAnalyzed Summary。 |
Estimated fMAX | デザインにこのステップの推奨事項を実装した後の推定fMAX性能。 これは累積的で、ステップnは前のステップをすべて実行した後の潜在的なfMAXを表します。 |
Optimization Analyzed | (累積)適用されたすべての連続最適化ステップのリスト。 |
Recommendation for Critical Chain | デザインに対する推奨される変更をリストします。 これらの推奨事項は、リタイミングの制限を取り除き、レジスターの移動を許可することを目的としています。 |
5.6.8.2.1. Fast Forwardタイミング収束の推奨事項を確認します。
Fast Forwardタイミング収束の推奨事項を確認します。
-
Compilation
Dashboardで、Fast Forward Timing Closure
Recommendationsをクリックします。
Compilerは必要に応じて合成またはFitterステージを実行し、Compilation Reportでタイミング・クロージャー推奨を生成します。
- Compilation Reportでタイミング収束の推奨事項を表示して、デザイン・パフォーマンスを評価し、重要なRTLパフォーマンスの改善を実装します。
- 各フルコンパイル中にFast Forwardコンパイルを実行するには、Assignments > Settings > Compiler Settings > HyperFlexをクリックし、Run Fast Forward Timing Closure Recommendations during compilationをオンにします。
- .Fast Forwardのコンパイルで特定のI/Oとブロックタイプを解釈する方法を変更するには、Assignments > Settings > Compiler Settings > HyperFlex Advanced Settingsをクリックします。
5.6.8.2.2. ステップ4:Fast Forward推奨を実装する
デザインRTLでFast Forwardタイミング収束の推奨事項を実装し、 Retimeステージを再実行して、予測パフォーマンスの向上を実現します。
希望するパフォーマンス目標に達するまで、パフォーマンスの調査とコードへのRTL変更の実装を続けることができます。 必要な変更をすべて完了したら、このドキュメントで説明されている従来の手法を使用してタイミング・クロージャーの作業を続けます。
デザインにFast Forwardタイミング・クロージャーの推奨事項を実装する方法の詳細は、 インテル® Stratix® 10 High-Performance Design Handbook のImplement Fast Forward Recommendationsセクションを参照してください。
5.7. Periphery to Core Register PlacementおよびRouting Optimization
外部インターフェイス(高速I/Oやシリアル・インターフェイスなど)とFPGA間の転送では、セットアップとホールドのタイミング要件を厳しくしながら、多くの接続を配線する必要があります。 このオプションをオンにすると、Fitterはコアの配置配線の決定の前にP2Cの配置配線決定を行います。 これにより、デザインがタイミング要件を確実に満たし、外部インターフェイスとの転送でのルーティングの輻輳を回避するために必要なリソースが確保されます。
このオプションは、グローバルな割り当てとして使用できます。またはデザイン内の特定のインスタンスに適用できます。
- Advanced Fitter SettingのダイアログボックスでPeripheryをCore Optimizationsに設定する
Periphery to Core Placement and Routing Optimization設定は、Fitterがペリフェラル・ロジックとFPGAコアのレジスター間の直接接続でターゲット配置と配線を最適化するかどうかを指定します。 - Assignment EditorでCore OptimizationsをPeripheryに設定する
Assignment EditorでPeriphery to Core Placement and Routing Optimization(P2C/C2P)設定をオンにすると、 インテル® Quartus® Primeソフトウェアはデザイン内の選択したインスタンスに対して、ペリフェラルからコアへ、またはコアからペリフェラルへの最適化を実行します。 - Fitterレポートでペリフェラルからコアまでの最適化を表示する
インテル® Quartus® Primeソフトウェアは、コンパイル後にFitter (Place & Route)レポートにコアの配置と配線の最適化の概要を生成します。
5.7.1. Advanced Fitter SettingのダイアログボックスでPeripheryをCore Optimizationsに設定する
Assignment Editorの設定を使用して、インスタンス別にコアからコアへの最適化を任意で実行できます。
- インテル® Quartus® Primeソフトウェアで、Assignments > Settings > Compiler Settings > Advanced Settings (Fitter)をクリックします。
-
Advanced Fitter SettingsダイアログボックスのPeriphery to Core Placement and Routing
Optimizationオプションで、デザインでペリフェラルをコア最適化に向ける方法に応じて、次のいずれかのオプションを選択します。
- Autoを選択すると、狭いタイミングウィンドウで転送を自動的に識別し、コアレジスターを配置し、すべての接続をペリフェラルとの間でルーティングするようにソフトウェアに指示します。
-
タイミング要件に関係なく、ペリフェラルとコアレジスター間のすべての転送をグローバルに最適化するようソフトウェアに指示するには、Onを選択します。
注: Advanced Fitter SettingsでこのオプションをOnに設定することはお勧めできません。 この設定の用途は、Assignment Editorで目的のノードまたはインスタンスのセットに対して最適化を強制することです。
- デザインでペリフェラルからコアへのパスの最適化を無効にするには、Offを選択します。
5.7.2. Assignment EditorでCore OptimizationsをPeripheryに設定する
オプションで、Advanced Fitter Settingsダイアログボックスの設定を使用して、インスタンス別にコアからコアへの最適化を実行できます。
- インテル® Quartus® Primeソフトウェアで、Assignments > Assignment Editorをクリックします。
- 選択したパスのAssignment Nameカラムをダブルクリックし、ドロップ・ダウン・リストのPeriphery to core register placement and routing optimizationオプションをクリックします。
-
Toカラムで、最適化するP2C/C2Pパス上のペリフェラル・ノードまたはコア・レジスター・ノードを選択します。 Fromカラムを空のままにします。
Assignments Editorにパスを表示するには、まずデザインに対してAnalysis&Synthesisを実行する必要があります。

5.7.3. Fitterレポートでペリフェラルからコアまでの最適化を表示する
- インテル® Quartus® Primeプロジェクトをコンパイルします。
- Tasksペインで、Compilationを選択します。
- Fitter (Place & Route)の下のView Reportをダブルクリックします。
- Fitterフォルダーで、Place Stageフォルダーを展開します。
-
Periphery to Core Transfer Optimization
Summaryをダブルクリックします。
表 16. Fitterレポート - Periphery to Core Transfer Optimization (P2C)の概要 元のパース パス ステータス Node 1 Node 2 Placed and Routed—コアレジスターがロックされています。 ペリフェラルからコア/コアからペリフェラルへのルーティングがコミットされます。 Node 3 Node 4 Placed but not Routed—コアレジスターがロックされています。 ルーティングはコミットされません。 これは、P2Cが単一グループ内のすべてのターゲットパスを最適化できない場合、たとえば、同じ遅延/ワイヤ要件、または同じ制御信号などで発生します。 部分的なP2Cルーティングの確約は、解決できないルーティングの輻輳を引き起こす可能性があります。 Node 5 Node 6 Not Optimized—これは、P2CがAutoに設定されていて、パスが次のいずれかの問題により最適化されていない場合に発生します。 - 遅延要件を達成することは不可能です。
- 最小遅延要件(ホールドタイミング)が大きすぎます。 ホールドタイミングを満たすために多数のワイヤを追加する必要がある場合、P2Cアルゴリズムでは効率的に対処できません。
- P2Cはこの特定のパスに関して解決できないルーティングの輻輳に遭遇します。
5.8. スクリプティング・サポート
quartus_sh --qhelp
set_global_assignment -name <.qsf variable name><value>
インスタンス・アサインメントを作成するには、以下のTclコマンドを使用します。
set_instance_assignment -name <.qsf variable name><value> -to <instance name>
5.8.1. 初期コンパイルの設定
最初の表は、.qsf変数名とDesign Optimization Overview章にあるInitial Compilation: Required Settingsセクションに記載された設定に向けた適用可能な値を表しています。
設定名 | .qsfファイルの変数名 | 値 | タイプ |
---|---|---|---|
Optimize IOC Register Placement For Timing | OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING | ON, OFF | グローバル |
Optimize Hold Timing | OPTIMIZE_HOLD_TIMING | OFF, IO PATHS AND MINIMUM TPD PATHS, ALL PATHS | グローバル |
設定名 | .qsfファイルの変数名 | 値 | タイプ |
---|---|---|---|
Router Timing Optimization level | ROUTER_TIMING_OPTIMIZATION_LEVEL | NORMAL, MINIMUM, MAXIMUM | グローバル |
5.8.2. I/Oタイミングの最適化手法
設定名 | .qsfファイルの変数名 | 値 | タイプ |
---|---|---|---|
Optimize IOC Register Placement For Timing | OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING | ON, OFF | グローバル |
Fast Input Register | FAST_INPUT_REGISTER | ON, OFF | インスタンス |
Fast Outout Register | FAST_OUTPUT_REGISTER | ON, OFF | インスタンス |
Fast Output Enable Register | FAST_OUTPUT_ENABLE_REGISTER | ON, OFF | インスタンス |
Fast OCT Register | FAST_OCT_REGISTER | ON, OFF | インスタンス |
5.8.3. レジスター間のタイミング最適化に向けた設定
表には.qsfファイルno変数名とRegister-to-Register Timing Optimization Techniques (LUT-Based Devices)に記載されている設定に向けた適切な値を示しています。
設定名 | .qsfファイルの変数名 | 値 | タイプ |
---|---|---|---|
Perform WYSIWYG Primitive Resynthesis | ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP | ON, OFF | グローバル、インスタンス |
Fitter Seed | SEED | <integer> | グローバル |
Maximum Fan-Out | MAX_FANOUT | <integer> | インスタンス |
Manual Logic Duplication | DUPLICATE_ATOM | <node name> | インスタンス |
Optimize Power during Synthesis | OPTIMIZE_POWER_DURING_SYNTHESIS | NORMAL、OFF EXTRA_EFFORT | グローバル |
Optimize Power during Fitting | OPTIMIZE_POWER_DURING_FITTING | NORMAL、OFF EXTRA_EFFORT | グローバル |
5.9. タイミング・クロージャーと最適化の改訂履歴
この章には、次の改訂履歴が適用されます。
ドキュメント・バージョン | インテル® Quartus® Primeバージョン | 変更内容 |
---|---|---|
2019.07.01 | 19.1 | 自動レジスター複製:推定物理的近接性および自動レジスター複製:階層的近接性のトピックに重要なメモを追加。 |
2019.04.01 | 19.1 |
|
2018.11.12 | 18.1.0 |
|
2018.09.24 | 18.1.0 |
|
2017.11.06 | 17.1.0 |
|
2017.05.08 | 17.0.0 |
|
2016.10.31 | 16.1.0 |
|
2016.05.02 | 16.0.0 |
|
2015.11.02 | 15.1.0 |
|
2014.12.15 | 14.1.0 |
|
2014年6月 | 14.0.0 |
|
2013年11月 | 13.1.0 |
|
2013年5月 | 13.0.0 |
|
2012年11月 | 12.1.0 |
|
2012年6月 | 12.0.0 |
|
2011年11月 | 11.1.0 |
|
2011年5月 | 11.0.0 |
|
2010年12月 | 10.1.0 |
|
2010年8月 | 10.0.1 | リンクを修正。 |
2010年7月 | 10.0.0 |
|
6. デザイン・フロアプランの解析および最適化
デザイン・フロアプラン解析はタイミングを閉じるのに役立ち、非常に複雑なデザインで最適なパフォーマンスを保証します。 解析機能を備えた インテル® Quartus® Prime Chip Plannerは、デザインのタイミングを迅速に閉じるのに役立ちます。 Chip PlannerをLogic LockX領域と一緒に使用してデザインを階層的にコンパイルし、フロアプランを支援できます。 さらに、パーティションを使用して、個々のコンパイル実行による配置配線結果を保持します。
Chip Plannerを使用してデザイン解析を実行したり、デザイン・フロアプランを作成および最適化したりできます。 I/Oを割り当てるには、Pin Plannerを使用してください。Early Place Flowについては、 インテル® Quartus® Prime プロ・エディション ユーザーガイド: デザインのコンパイル を参照してください。
Partial Reconfigurationデザインのフロアプランについては、 インテル® Quartus® Prime プロ・エディション ユーザーガイド: パーシャル・リコンフィグレーション を参照してください。
6.1. Chip Plannerでのデザイン・フロアプランの解析
Chip Plannerツールバー
|
|
6.1.1. Chip Plannerを開く
- または、Quartus インテル® Quartus® PrimeIIソフトウェアのツールバーのChip Plannerアイコンをクリックします。
- 以下のツールで、任意のチップリソースを右クリックしてLocate > Locate in Chip
Plannerを選択します。
- Compilation Report
- Logic Lock Regions Window
- Technology Map Viewer
- Project NavigatorWindow
- Node Finder
- Simulation Report
- Report Timing Panel of the Timing Analyzer
6.1.2. Chip Planner GUIのコンポーネント
6.1.2.1. Chip Plannerツールバー
6.1.2.2. Layers Settings
Layers Settingsペイン
Layers Settingsペインでは、Chip Plannerに表示されるグラフィック要素を管理できます。View > Layers Settingsをクリックして、Layers Settingsペインを開きます。 Layers Settingsペインには、よく一緒に使用されるリソースをグループ化するレイヤープリセットがあります。 Basic、Detailed、およびFloorplan Editingのデフォルトプリセットは、一般的な割り当て関連の作業に役立ちます。 ニーズに合わせてカスタムプリセットを作成することもできます。
6.1.2.3. Locate Historyのウィンドウ
Timing Analyzer Report Timingペインから必要なパスを見つけると、Locate Historyウィンドウに必要なクロックパスが表示されます。 Timing Analyzer Report Timingペインから到着パスを見つけると、Locate Historyウィンドウには到着クロックから到着データまでのパスが表示されます。 Locate Historyウィンドウでノードまたはパスをダブルクリックすると、Chip Plannerに選択したノードまたはパスが表示されます。
6.1.2.4. Chip Plannerフロアプラン・ビュー
Birds Eye View
Propertiesのウィンドウ
Propertiesウィンドウには、Chip Plannerで現在選択されているオブジェクトの詳細なプロパティー(アトム、パス、領域、配線要素など)が表示されます。 Propertiesウィンドウを表示するには、オブジェクトを右クリックしてView > Propertiesを選択します。
6.1.3. Chip Plannerにおけるデザイン・エレメントの表示
次のセクションでは、Chip Plannerでさまざまなデザイン要素を表示する方法について説明しました。
6.1.3.1. アーキテクチャー固有のデザイン情報の表示
- Device routing resources used by your designブロックの接続方法、およびブロックを接続する信号配線を表示します。
- 例えば、どのLE入力が使用されているか、LEがレジスターまたはルック・アップ・テーブル(LUT)あるいはその両方を使用しているか、さらにLEを通過する信号を表示することができます。
- ALM configuration—設計内のALM構成を表示します。 たとえば、どのALM入力が使用されているか、ALMがレジスター、上位LUT、下位LUT、またはそれらすべてを使用しているかどうかを確認できます。 ALMを介して信号のフローを確認することもできます。
- 例えば、I/Oリソースのどのコンポーネントが使用されているか、遅延チェーン設定がイネーブルになっているか、どのI/O 規格が設定されているか、そしてI/O を通過する信号フローを表示できます。
- PLL configuration—デザイン内のフェース・ロック・ループ(PLL)のコンフィグレーションを確認します。 たとえば、PLLの設定で使用されているPLLの制御信号を確認できます。
- Timing—FPGAエレメントの入力と出力間の遅延を確認します。 たとえば、COMBOUT出力へのDATAB入力のタイミングを解析できます。
6.1.3.2. デバイスで使用可能なクロックネットワークの表示
- Layers Settingsペインでアクティブにしたクロックレイヤーに応じて、Chip Plannerはデバイスのリージョナル・クロック・リージョンとグローバル・クロック・リージョン、およびクロック領域、ピン、PLL間の接続を表示します。
- クロック領域は、クロックタイプとインデックスを示すラベルが付いた長方形のオーバーレイボックスとして表示されます。クロック領域をクリックして、クロック・ネットワーク・リージョンを選択します。左上隅の時計形のアイコンは、その地域が時計ネットワーク地域を表していることを示しています。
- スパイン/セクタークロック領域の中央に縦の点線があります。この点線は、行クロックの2つの列がセクタークロックで交わる場所を示します。
- Chip Plannerディスプレイクロック領域の色を変更するには、Tools > Options > Colors > Clock Regionsを選択します。
6.1.3.3. クロックセクター使用率の表示
- Tasksペインで、Report Clock Sector UtilizationをダブルクリックしてReport Clock Sector Utilizationダイアログボックスを開きます。
-
レポートにソースノードを含める場合、Report source
nodesをオンにします。
同等のTCLコマンドがダイアログボックスの下部に表示されます。
-
OK をクリックします。
レポート出力には、最も使用されているクロックセクタが表示されます。
Reportペインには、使用率に応じた色で、クロックセクタのリストが表示されます。 使用率が最も高いクロックセクターは赤で表示され、使用率が最も低いセクターは青で表示されます。
Reportペインからセクターをオンまたはオフすることができます。 該当する場合、ノードを強調表示することもできます。6.1.3.4. ルーティングの輻輳の表示
Chip Plannerで配線の輻輳を表示するには以下のステップを実行します。
- Tasksペインで、Report Routing UtilizationコマンドをダブルクリックしてReport Routing Utilizationダイアログボックスを開きます。
- Report Routing UtilizationダイアログボックスでPreviewをクリックして、デフォルトの輻輳表示をプレビューします。
-
特定のリソースの輻輳を表示するようにRouting Utilization
Typeを変更します。
デフォルトの表示では、0%の輻輳に対して濃い青(青の使用率を示す)と100%の赤が使用されます。Threshold percentageのスライダーを調整して、輻輳しきい値レベルを変更できます。
- ルーティング混雑マップでは、論理リソースの色と濃淡を使用して相対リソース使用率を示します。 濃い色はルーティング・リソースの使用率が高いことを表します。 ルーティング使用率がReport Routing Utilizationダイアログボックスで指定したしきい値を超える領域は赤で表示されます。
- ルーティング・リソースの不足を特定するには、Routing Utilization Settingsダイアログボックスで各インターコネクト・タイプを順番に選択して、各ルーティング・インターコネクト・タイプを個別に調査する必要があります。
- Compilerのメッセージには、インターコネクトの平均使用量とピーク使用量に関する情報が含まれています。 75%を超える相互接続使用率、または60%を超える平均相互接続使用率は、デザインに適していないことを示している可能性があります。 同様に、ピーク相互接続使用率が90%を超える、または平均相互接続使用率が75%を超えると、有効な適合が得られない可能性が高くなります。
6.1.3.5. I/Oバンクの表示
6.1.3.6. Viewing High-Speed Serial Interfaces (HSSI)

6.1.3.7. 配置したノードの送信元と送信先の表示
Chip Plannerでは、Report Registered Connectionsタスクを使用して、コンパイル済みデザインのノードのレジスターされたファンインまたはファンアウトを表示できます。 このレポートは、ソースノードと宛先ノードが接続線なしで表示されるという点でGenerate Fanin/Fanout connectionsレポートとは異なり、ビューが不明瞭になる可能性があります。
- Chip Plannerで、1つ以上のノードを選択します。
- Task ペインにて、Report Registered Connectionsをダブルクリックします。
- ダイアログボックスからオプションを選択し、OKをクリックします。
6.1.3.8. 配置されたリソースのファンインおよびファンアウト接続の表示
-
Chip
Plannerツールバーで、Generate Fan-In
Connections
アイコンまたはGenerate Fan-Out Connections
アイコンをクリックします。
-
Chip
Plannerビューに表示されている他の接続を削除するには、Clear Unselected
Connections
アイコンをクリックします。
6.1.3.9. 隣接したファンインおよびファンアウト接続の生成
たとえば、ロジックリソースの直接のファンインを表示すると、ロジックリソースを駆動するルーティング・リソースが表示されます。すべてのロジックリソースとルーティング・リソースのファンインとファンアウトを即座に生成できます。
- 即時ファンインまたはファンアウト接続を表示するには、View > Generate Immediate Fan-In ConnectionsまたはView > Generate Immediate Fan-Out Connectionsをクリックします。
- 表示された接続を削除するには、
ツールバーのClear Connectionsアイコンを使用します。
6.1.3.10. 選択したコンテンツの表示
以下の手順に従って、Chip Plannerで選択したコンテンツを表示します。
- TasksウィンドウでReport Selection Contentsをダブルクリックします。Report Selection Contentsダイアログボックスが表示されます。
-
Report design instances in
selectionで Show
registers namesとShow
combinational namesをンまたはオフにして、それらのタイプの名前をレポートに表示します。
図 42. Report Selection Contentsダイアログボックス
-
OKをクリックします。レポートは、Reportsペインで選択した要素のリストを生成して表示します。
図 43. 選択したコンテンツの表示
-
レポートフォルダーの色分けをカスタマイズするには、レポートを右クリックしPropertiesをクリックします。Report Name 、Report Color、 Highlighted Area Minimum Sizeをカスタマイズできます。
図 44. 選択されたエンティティー・レポートのプロパティー
6.1.4. Chip PlannerにおけるIOBANK情報
6.1.4.1. パスの接続の解析

6.1.4.2. タイミング解析レポートからChip Planneへのパスの探索
- タイミング解析レポートで見つけたいパスを選択します。
-
パスを右クリックしてLocate Path > Locate in Chip
Plannerをポイントします。
パスはChip PlannerのLocate Historyウィンドウに表示されます。図 45. Locate Historyウィンドウのパスリスト
6.1.4.3. 遅延の表示

例えば、2 つのロジック・リソース間またはロジック・リソースと配線リソース間の遅延を表示できます。に、複数のロジック・エレメント間の遅延を示します。

6.1.4.4. ルーティング・リソースの表示
Locate Historyウィンドウでパスを右クリックし、Show Physical Routingを選択して物理パスを表示します。 表示を調整するには、右クリックしてZoom to Selectionを選択します。

Fitterがパスをルーティングした行と列を確認するには、パスを右クリックしてHighlight Routingを選択します。

6.1.5. Chip Plannerにおけるアサインメントの表示
6.1.6. Chip Plannerでのデバイスの高消費電力および低消費電力タイルの表示
電力マップを表示するには、Fitterを実行した後、 Tasks > Core Reports > Report High-Speed/Low-Power Tilesをダブルクリックします。Chip Plannerは、低電力と高速のタイルを対照的な色で表示します。黄色のタイルは高速モードで動作し、青色のタイルは低電力モードで動作します。
6.2. Design Partition PlannerおよびChip Plannerを使用したパーティションと地域の作成
- デザインをコンパイルします。
-
Chip
PlannerおよびDesign Partition Plannerを開きます。
- Tools > Chip Plannerをクリックします。
- Tools > Design Partition Plannerをクリックします。
- Chip Plannerウィンドウで、Tasksペインに移動し、Report Design Partitionsをダブルクリックします。
-
Chip
Plannerで、View > Bird's Eye Viewをクリックします。
Bird's Eyeビューが開きます。
-
Design
Partition Plannerで、すべての大きなエンティティーを親からドラッグします。
または、エンティティーを右クリックして、Extract from Parentをクリックします。Chip Plannerは、Design Partition Plannerに表示されるエンティティーの物理的な配置を、2つのツール間で一貫した色で表示します。 Chip Plannerの物理的な配置とDesign Partition Plannerの接続を表示できます。
-
Logic Lock地域に配置するのに適さないエンティティーを特定します。
- Chip Plannerは、デバイスの不連続な領域に物理的に分散するエンティティーを示します。
- Design Partition Plannerは、他のエンティティーへの多数の接続を持つエンティティーを示します。
-
親のエンティティーにドラッグして、Logic Lock地域に配置するのに適さないエンティティーを親に戻します。
Collapse to Parent
- エンティティーを右クリックし、Create Design Partitionをクリックして、残りの各エンティティーのパーティションを作成します。
- パーティションを右クリックし、Create Logic Lock Regionをクリックして、各パーティションのLogic Lock地域を作成します。
6.2.1. デザインの接続性と階層の表示

-
エンティティー間の接続を表示するには、トップレベルのエンティティーからエンティティーを抽出するには、それらを周囲の空白にドラッグするか、エンティティーを右クリックしてショートカットメニューのExtract from
Parentをクリックします。
エンティティーを抽出すると、Design Partition Plannerはエンティティー間の接続バンドルを描画し、エンティティーのペア間の接続数を表示します。
接続バンドルを使用したパーティション・デザイン
- 接続バンドルの外観をカスタマイズするか、接続カウントのしきい値を設定するには、View > Bundle ConfigurationをクリックしBundle Configurationダイアログボックスで必要なオプションを設定します。
- 失敗したパスを含むバンドルを表示するには、Timing Analyzerを開き、Design Partition PlannerでView > Show Timing Dataをクリックします。 障害のあるパスを含むバンドルは赤で表示され、障害のあるパスに存在するノードを持つエンティティーも同様です。
- バンドル内の接続に関する詳細情報を表示するには、バンドルを右クリックし、Bundle PropertiesをクリックしてBundle Propertiesダイアログボックスを開きます。
-
接続表示モードと階層表示モードを切り替えるには、View > Hierarchy Displayをクリックします。 または、エンティティーの左上隅にある階層アイコン
をクリックしてホールドすると、一時的に階層表示に切り替わります。
6.3. Logic LockChip PlannerでのLogicLock領域の使用
6.3.1. Chip PlannerでのLogic Lock領域間の接続の表示
Chip Plannerは、Logic Lock地域間の接続を示します。デフォルトでは、各接続を個別の回線として表示できます。2つのLogic Lock地域間の接続を、個々の接続線としてではなく、単一のバンドル接続として表示するように選択できます。このオプションを使用するには、Chip Plannerを開き、ViewメニューのInter-region Bundlesをクリックします。
6.3.2. Logic Lockの領域
Logic Lockの領域には保存属性はなく、境界と論理リソースの予約だけがあります。 インテル® Quartus® Prime プロ・エディションソフトウェアを使用して、完全に階層的なLogic Lockの領域割り当てを実装できます。
Logic Lock領域は2つの要素で構成されています。
- Placement Region: デバイスの特定領域に対する制約ロジック。 Fitterは指定した領域にロジックを配置します。 領域を予約済みとして指定した場合、フィッターはその領域に他のロジックを配置できません。
- Routing Region: 特定のエリアへのルーティングを制限します。 デフォルトでは、ルーティング領域は制約されていません。 配線領域は配置領域を囲む必要があります。 ルーティング領域は予約できません。 詳しくは、Defining Routing Regionsを参照してください。
6.3.3. Logic Lockの領域の属性
次の表はLogic Lockの領域の属性の一覧です。 インテル® Quartus® Primeソフトウェアでは、Logic Lockの領域ウィンドウにデザイン内のすべてのLogic Lockの領域の属性が表示されます。
名 | 値 | 動作 |
---|---|---|
Width | Number of columns | 入力パターンの幅を指定します。 |
Height | Number of rows |
仮数の値を指定します。 Size/StateがAuto/Floatingに設定されている場合、属性はUndeterminedに設定されます。 |
Origin | Any Floorplan Location | フロアプラン上のLogic Lock領域の位置を指定します。 原点はLogic Lock領域の左下隅です。 |
Reserved | OFF、ON | Fitterがその領域に他のロジックを配置するのを防ぎます。 Reserved割り当てをルーティング領域に適用することはできません。 |
Core-Only | Off | On | 地域から周辺資源を除外します。 インテル® Quartus® Primeスタンダード・エディションソフトウェアとは異なり、 インテル® Quartus® Prime プロ・エディションの領域の割り当てはデフォルトで周辺リソースに適用されます。 領域がReservedおよびCore Onlyとして指定されている場合、周辺リソースはその領域から予約されません。 |
Size/State | Fixed/Locked | Auto/Floating | FitterのどちらがLogic Lockの領域のサイズと配置を決定するかを指定します。
|
Routing regions | Unconstrained | Whole Chip | Fixed with Expansion | Custom | ルーティング領域の種類。 詳しくは、Defining Routing Regionsを参照してください。 |
6.3.4. インテル Quartus Primeスタンダード・エディションと インテル Quartus Prime プロ・エディション間の割り当ての移行
6.3.5. Logic Lock領域の作成
6.3.5.1. Logic LockChip Plannerを使用したLogicLock領域の作成
- View > Logic Lock Regions > Create Logic Lock Regionをクリックします。
- Chip Plannerフロアプランをクリックしてドラッグし、好みの位置とサイズの領域を作成します。
領域を作成したら、領域の形状を定義してから、その領域に単一のエンティティーを割り当てることができます。 エンティティーを割り当てたり、形状を定義したりする順番は関係ありません。
6.3.5.2. Project Navigatorを使用したLogic Lock領域の作成
- デザインに対して完全なコンパイルまたは分析と作成を実行します。
- Project Navigatorがまだ開いていない場合、View > Utility Windows > Project Navigatorをクリックします。Project Navigatorにはデザインの階層が表示されます。
- デザイン階層を完全に展開した状態で、任意のデザインエンティティーを右クリックし、Create New Logic Lock Regionをクリックします。
- エンティティーを新しい地域に割り当てます。
新しい領域はエンティティーと同じ名前です。
6.3.5.3. Logic Lockの領域ウィンドウでLogic Lockの領域の作成
- Assignments > Logic Lock Regions Windowをクリックします。
- Logic Lock Regionsウィンドウで、<<new>>をクリックします。
領域を作成したら、リージョンの形状を定義してから、その領域に単一のエンティティーを割り当てることができます。 エンティティーを割り当てたり、形状を定義したりする順番は関係ありません。
6.3.5.4. ルーティング領域の定義
有効なルーティング領域オプションは次のとおりです。
オプション |
説明 |
---|---|
Unconstrained (default) | フィッターがデバイスで使用可能な任意のルートを使用することを許可します。 |
Whole Chip | Unconstrainedと同じですが、 インテル® Quartus® Prime設定ファイル(.qsf)に制約を書き込みます。 |
Fixed with Expansion | 配置領域の輪郭に従います。 配線領域は、配置領域よりも大きい行数/列数で拡大または縮小されます。 |
Custom | Logic Lock領域の周囲にカスタム・シェイプ・ルーティング領域を作成できます。 Customオプションを選択すると、Chip Planner内で配置領域と配線領域が個別に移動します。 この場合、Shiftキーを使用して両方を選択して配置領域と配線領域を移動します。 |
6.3.5.5. 隣接しないLogic Lock領域

6.3.5.6. 自動サイズ領域の使用に関する考慮事項
- Auto/Floating領域は予約できません。
- Logic Lock領域が空でないことを確認してください。 インスタンスを領域に割り当てないと、Fitterはサイズを0×0に縮小し、その領域を無効にします。
-
領域はパーティションに関連付けられていてもいなくてもかまいません。
パーティションを
Auto/Floating Size/State
Logic Lockリージョンと組み合わせると、特定の適切な課題を柔軟に解決できます。
しかし、追加したすべての制約は使用可能な解を減らし、制約が多すぎるとFitterは解を見つけられない可能性があります。
いくつかの場合があります:
- パーティションが合成時に保持されるか保持されない場合、Logic Lock領域はロジックを特定の領域に限定し、Fitterがパーティション内のロジックを最適化し、Logic Lock領域内の配置を最適化できるようにします。
- パーティションが配置時に維持される場合、配線される場合、または最終的な場合、 パーティションのロジックの位置は固定されているため、Logic Lock領域は有効な配置境界ではありません。
- ただし、Logic Lock領域が予約されている場合、Fitterはその領域に他のロジックを配置することを避けます。これにより、リソースの混雑を減らすことができます。
-
Logic Lock領域の結果が仕様を満たすと、次のことができます。
- Logic Lock領域を Fixed/Locked Size/Stateに変換します。
- Logic Lock領域を Auto/Floating Size/State属性のままにして、その領域を「まとめて」機能のタイプとして使用します。
- Logic Lock領域がパーティションでもある場合は、そのパーティション内の配置配線を維持し、領域全体を削除できます。
6.3.6. Logic Lock領域の形状のカスタマイズ
6.3.6.1. Logic Lock領域への新しい図形の追加
- Logic Lock地域を選択してください。
-
Navigationツールバーで、Add
Logic Lock
Regionアイコン
をクリックします。
-
クリックしてドラッグし、追加したい図形を生成します。
新しい形状が選択したLogic Lock領域と自動的に結合します。
重要: 複数の領域を選択した場合、操作はすべての領域に新しい形状を追加します。
6.3.6.2. Logic Lock領域からの形状の減算
- Logic Lock領域を選択します。
-
Navigationツールバーで、Subtract Logic Lock
Regionアイコン
をクリックします。
-
減算したい図形をクリックしてドラッグします。
変更された領域が自動的に表示されます。
操作は選択したすべての領域で実行されます。
6.3.6.3. Logic Lockリージョンのマージ
- マージする予定の領域に論理割り当てが1つだけあることを確認してください。
- 結果の領域が必要な場所に領域を配置します。
- Shiftキーを押しながらそれぞれをクリックして、マージする個々のリージョンをすべて選択します。
-
Logic Lock地域で選択したいずれかのタイトルバーを右クリックして、
Logic Lock Regions > Merge Logic Lock Regionを選択します。個々のリージョンをマージして、単一の新しいリージョンを作成します。
複数の名前付きリージョンを選択した場合、Merge Logic Lock Regionオプションが無効になっています。
6.3.6.4. 隣接しないLogic Lock領域

6.3.7. Logic Lock領域へのデバイスリソースの配置
デザイン内のエンティティーは1つのLogic Lock領域にのみ割り当てることができますが、エンティティーは階層によって領域を継承できます。 この階層により、サブ領域内のリソースを予約せずに、予約領域にサブ領域を持たせることができます。
Logic Lock領域の境界にデバイスリソースの一部が含まれている場合、 インテル® Quartus® Primeソフトウェアはリソース全体をその領域に割り当てます。
Logic Lock Regionウィンドウを使用してインスタンスを追加するには、領域を右クリックして Logic Lock Properties > Addを選択します。あるいは、 インテル® Quartus® Primeソフトウェアでエンティティーを階層ビューアからLogic Lock Regions WindowのLogic Lock領域の名前フィールドにドラッグすることもできます。
6.3.7.1. 空のLogic Lock領域
空のLogic Lock領域を使用する理由はいくつかあります。
- 予備的なフロアプラン
- 複雑なインクリメンタル・ビルド
- チームベースのデザインと相互接続論理
- 論理配置の制限
Logic Lock領域はルーティング・リソースを予約しないため、Fitterはルーティング目的でこの領域を使用できます。
空のLogic Lock領域にはCore Only属性を使用してください。 空の領域に周辺リソースを含めると、ペリフェラル・コンポーネントの配置が制限され、デザインが合わなくなる可能性があります。 空の領域に名前を付けた後は、移入されたLogic Lock Regionと同じ操作を実行できます。

この図は、空のLogic Lock領域とその周囲のロジックを示しています。 ただし、一部のIO、HSSIO、およびPLLが空き領域にあります。 この配置は、出力ポートがIOに接続し、IOが常にroot_partition(最上位パーティション)の一部になっているために発生します。
6.3.7.2. ピン・アサインメント
Logic Lock領域は、メモリーとピンを含むすべてのデバイスリソースをその境界内に組み込んでいます。Core Only属性がオフになっていない限り、 インテル® Quartus® Prime プロ・エディションソフトウェアは、エンティティーをリージョンに割り当てるときにピンを自動的に含めません。
手動でピンをX領域に割り当てることができます。 ただし、この配置は地域に場所の制約を課します。 ソフトウェアは、デバイスの周辺を囲むロックされた領域へのピン割り当てにのみ従います。 ロック領域には、リソースとしてI/Oピンを含める必要があります。
6.3.7.3. 予約されるLogic Lock領域
インテル® Quartus® Primeソフトウェアは、すべてのエンティティーとノードの割り当てをLogic Lock領域に割り当てます。 場合によっては、エンティティーやノードが地域全体を占めていないため、地域のリソースの一部が使用されていないことがあります。
領域のリソース使用率とパフォーマンスを向上させるために、 インテル® Quartus® Primeソフトウェアはデフォルトで、他の地域に割り当てられていない他のノードおよびエンティティーで未使用のリソースを満たします。 この動作を防ぐには、 Logic Lock RegionsウィンドウでReservedをオンにします。
6.3.7.4. 仮想ピン
Virtual Pinの割り当てを入力ピンに適用すると、ピンはFPGAピンとして表示されなくなります。 コンパイラーは、デザインの仮想ピンをGNDに修正します。 仮想ピンはフローティング・ノードではありません。
仮想ピンは、最上位デザインにエンティティーをインポートした後にノードになる下位レベルデザインエンティティーのI/O要素にのみ使用します。 たとえば、部分的なデザインをコンパイルするときに使用します。
Node Finderを使用して、デザイン内の割り当てられたすべての仮想ピンを表示するには、Filter TypeをPins: Virtualに設定します。 Assignment EditorからNode Finderにアクセスするには、Toフィールドをダブルクリックします。 フィールドの右側に矢印が表示されたら、クリックしてNode Finderを選択します。
6.3.7.5. 例: インテル Arria 10 FPGAの配置のベストプラクティス
この例では、インテル® Arria® 10 FPGAをターゲットとするデザインのI/OカラムがLogic Lock領域の場所を制約する方法について説明します。
- Logic Lock領域にI/Oカラムとインターフェイスするレジスターが含まれている場合、領域がI/OカラムとコアロジックをカバーするようにLogic Lock領域を配置し、外側の列のエッジに隣接するI/Oカラムにアクセスしやすくします。
-
高速信号の場合、Logic Lock領域をI/Oカラムの外側に配置すると、フィッターが列を横切って遅延が発生する可能性が低くなるため、最良の結果を得ることができます。
6.3.8. 領域の階層化
Logic Lock割り当ては、他の制約および割り当てと同じ優先順位に従います。
デザイン内のエンティティーは1つのLogic Lock領域にのみ割り当てることができますが、エンティティーは階層ごとに領域を継承できます。 この階層により、サブリージョンのリソースを予約せずに、予約済みリージョンにサブリージョンを設定できます。6.3.9. トランシーバーの追加機能
6.3.9.1. インテル Quartus Primeの改訂機能
6.3.10. Logic Lock Regionsウィンドウ
View > Logic Lock Windowをクリックし、 インテル® Quartus® PrimeでAssignments > Logic Lock Windowをクリックして、Chip PlannerのLogic Lock地域ウィンドウを開きます。

列をドラッグアンドドロップして順序を変更することで、Logic Lock地域ウィンドウをカスタマイズできます。 列見出しを右クリックしてショートカットメニューで適切な列を選択することにより、オプションの列を表示または非表示にすることもできます。
Logic Lock Region Propertiesダイアログボックス
Logic Lock Region PropertiesLogic Lockダイアログボックスは、Logic Lock領域内に割り当てられるエンティティー・ノード、および必要なリソースなど、LogicLock region領域に関する詳細な情報を取得するのに使用します。
Logic Lock Regions Propertiesを開くには、 Logic Lock Regions Properties...を選択します。
6.3.11. リージョンへのスナップ
デフォルトでは、Logic Lock地域ンは常にラボにスナップされます。View > Logic Lock Regions > Snap Logic Lock Region toをクリックしてデフォルトを変更することができます。

リージョンにスナップすると、Logic Lock領域境界は対話モードで表示されます。次の動作を観察できます。
- Creating Region:マウスを左クリックして、Logic Lock領域。マウスを離すと、作成されたLogic Lock領域は、含まれているクロック領域またはセクターにスナップします。
- Resize region (and resize diagonal):マウスを左クリックしてLogic Lock領域ハンドルドラッグします。マウスを離すと、Logic Lock領域はサイズを変更し、含まれているクロック領域またはセクターにスナップします。
-
Move region: クロック領域の境界を強調表示するLogic Lock領域を選択してドラッグします。マウスボタンを離すと、Logic Lock領域は新しい位置に移動し、含まれているクロック領域またはセクターにスナップします。
- Same place and route regions are moved:両方のLogic Lock領域が移動し、含まれているクロックセクターにスナップします。
- Only place | route region is moved:選択された領域が移動してクロックセクターにスナップし、領域の新しい場所またはサイズが「ルートBボックスに含まれるBボックスを配置する」ルールに準拠していない場合は警告が表示されます。
- Subtract or make a hole:クロック領域にスナップモードで減算を実行する場合、領域がクロック領域またはセクターにスナップされる領域を作成し、次に減算します。
6.4. Chip Plannerでのユーザー定義のクロック領域の使用
ユーザー定義のクロック領域割り当てを作成して、特定のグローバルクロック信号が、今後のすべてのデザイン反復を通じてデバイスの特定の領域のリソースで利用できるようにすることができます。グローバル信号リソースが関係する輻輳の例では、信号が他のセクターの輻輳したクロックリソースを使用しないように、より小さなクロック領域の割り当てを指定できます。
ユーザー定義のクロック領域を作成してからデザインをコンパイルすると、それらのユーザー定義のクロック領域はFitter定義のクロック領域として表示され、編集できなくなります。
ユーザー定義のクロック領域機能サポートの概要
機能 | クロック領域のサポート |
---|---|
Shapes of clock regions. | クロック・セクター・グリッドにスナップする長方形の領域に限定されます。 |
Peripheral element assignments. | クロッキング・デザイン要素に限定されます。 |
Clock region name. | ソース・クロッキング・デザイン要素によって識別されます。 |
Support for multiple instances in the same regions. | クロック・デザイン・エレメントごとに1つの領域を作成し、複数のクロック・デザイン・エレメントに同じ定義を指定して、同じクロック領域に割り当てます。 |
インテル® Stratix® 10および インテル® Agilex™ デバイスでのClock Regionの割り当て
Chip PlannerのClock Sector Regionレイヤーにあるように、セクターグリッドで寸法が定義されている長方形にクロック領域を制限できます。長方形は、その左下隅と右上隅の座標によって定義されます。たとえば、SX0、SY0、SX1、SY1は、クロックをセクター0,0の左下からセクター1,1の右上までの2×2の領域に制限します。
外接する四角形は、チップ座標で指定することもできます(例: X37 Y181 X273 Y324) 。ただし、このような制約はセクターごとに調整する必要があります。 Fitterは自動的に、元の割り当てを囲む最小のセクター整列長方形にスナップします。
6.4.1. Chip Plannerを使用したLogicLock領域の作成
-
Create Clock
Assignment
アイコンを選択するか、またはView > Clock Assignments > Create Clock Assignmentをクリックします。
- Chip Plannerフロアプランをクリックしてドラッグし、希望の場所とサイズのクロック領域を作成します。描画する領域は、その領域を含むことができる最小のクロックセクターにスナップします。作成、移動、サイズ変更などのインタラクティブなクロック割り当て操作中、クロック・セクター・グリッドはオレンジ色で表示され、クロックセクターに対するクロック領域の配置を容易にします。
領域でのクロック」記号のタイトルバーで、それをクロック領域として識別します。デフォルトでは、コンテキスト・メニューからクロック信号を割り当てるまで、新しく作成されたクロック領域の名前はunassignedになります。
6.4.2. クロック割り当てのサイズ変更
- クロックの割り当てを選択します。ハンドルは領域の両側と角に表示されます。
- 選択したハンドルの上に十字線を配置すると、サイズ変更のマウスカーソルが表示されます。
- マウスの左ボタンを押したまま、サイズ変更カーソルをドラッグして、クロック割り当ての境界を拡大または縮小します。マウスボタンを離すと、クロック割り当ての境界が最も近い含まれるクロックセクターグリッドにスナップします。
6.4.3. クロック割り当ての移動
- クロックの割り当てを選択します。
- クロック割り当てのタイトルバーの上に十字線を配置すると、移動カーソルが表示されます。
- マウスの左ボタンを押したまま、クロックの割り当てを目的の新しい場所にドラッグします。
6.4.4. Clock Region Assignmentの削除
- 削除するクロック割り当てを選択します。
- クロック割り当てのタイトルバーを右クリックしてコンテキストメニューを表示するか、メインメニューバーからViewを選択します。
- Clock Assignments > Delete Clock Assignmentをクリックします。
- 選択したクロック割り当てを削除することを確認するように求められます。Yesをクリックして削除を確認します。
指定したクロック領域の割り当てがシステムから削除されます。
6.4.5. クロック信号をクロック領域に割り当てる
- クロック割り当てのタイトルバーを右クリックしてコンテキストメニューを表示するか、メインメニューバーからViewを選択します。
- Clock Assignments > Set Clock Signal Nameをクリックします。
- Set Clock Signal Nameダイアログボックスで、目的のクロック信号名を参照または入力します。
- OKをクリックします。
システムは、指定されたクロック信号の名前に従って、クロック割り当ての名前を変更します。
6.4.6. Clock Assignment Properties
デフォルトでは、Clock Plannerの右側のタブにClock Assignment Propertiesペインが表示されます。

6.5. スクリプティング・サポート
6.5.1. Tclコマンドを使用したLogic Lock割り当ての作成
配置領域の作成または変更
Logic Lock
X46 Y36 X65 Y49
set_instance_assignment -name PLACE_REGION "X46 Y36 X65 Y49" -to <node names>
- 同じコマンド形式を使用して、既存の割り当てを変更できます。
- ;
- PLACE_REGION
ルーティング領域の作成または変更
次の割り当てにより、バウンディングボックス座標X5 Y5 X30 Y30のルーティング領域が作成されます。
set_instance_assignment -name ROUTE_REGION -to <node names> "X5 Y5 X30 Y30"
- 同じコマンド形式を使用して、既存の割り当てを変更できます。
- ルーティング領域が割り当てられているすべてのインスタンスには、それぞれの配置領域が必要です。 ルーティング領域には配置領域が完全に含まれている必要があります。
領域を予約済みとして指定
次の割り当てにより、既存のリージョンが予約されます。
set_instance_assignment -name <instance name> RESERVE_PLACE_REGION -to <node names> ON
- 配置領域のみを予約できます。
リージョンをコアのみとして指定
デフォルトでは、 インテル® Quartus® Prime プロ・エディションソフトウェアにはLogic Lock割り当てにピンが含まれています。 領域をコアのみ(つまり、制約されていないインスタンスの周辺ロジック)として指定するには、次の割り当てを使用します。set_instance_assignment -name <instance name> CORE_ONLY_PLACE_REGION -to <node names> ON
6.5.2. Tclコマンドを使用した仮想ピンの割り当て
my_pinというピンの仮想ピンの設定をオンにする場合は、以下のTclコマンドを使用します。
set_instance_assignment -name GLOBAL_SIGNAL "ON" -to "dqsbusout"
6.5.3. Logic Lock領域割り当ての例
矩形Logic Lock領域の割り当て
矩形Logic Lock領域を右下隅の(10,10)および右上隅の(20,20)へそれぞれ割り当てます。
set_instance_assignment –name PLACE_REGION –to a|b|c "10 10 20 20"
非矩形Logic Lock領域の割り当て
インスタンスの「a|b|c」を非矩形L字型Logic Lock領域へ割り当てます。ソフトウェアは、それぞれ4個の数字を新しい矩形として処理します。
set_instance_assignment –name PLACE_REGION –to x|y|z "X10 Y10 X20 Y50; X20 Y10 X50 Y20"
従属Logic Lockインスタンスの割り当て
デフォルトでは、 インテル® Quartus® Primeソフトウェアは、すべての子インスタンスをその親のLogic Lock領域に制約します。子インスタンスへの制約はすべて、その上位の制約とインタセクトします。たとえば以下の例では、「a|b|c|d」の下のすべてのロジックは、矩形(0,0)、(15,15)ではなく、(10,10)、(15,15)に制約されます。これは、子の制約が親の制約とインタセクトするために発生します。
set_instance_assignment –name PLACE_REGION –to a|b|c "10 10 20 20" set_instance_assignment –name PLACE_REGION –to a|b|c|d "0 0 15 15"
複数のLogic Lockインスタンスの割り当て
デフォルトでは、Logic Lock領域の制約により、他のインスタンスのロジックが同じ領域を共有することができます。 これらの割り当ては、インスタンスcとインスタンスgを同じ場所に配置します。 この戦略は、インスタンスcとインスタンスgが大きく相互作用している場合に便利です。
set_instance_assignment –name PLACE_REGION –to a|b|c "10 10 20 20" set_instance_assignment –name PLACE_REGION –to e|f|g "10 10 20 20"
予約Logic Lock領域の割り当て
1 つのインスタンスおよびその下位にある任意のインスタンスに対し、全Logic Lock領域を予約することが可能です。
set_instance_assignment –name PLACE_REGION –to a|b|c "10 10 20 20" set_instance_assignment –name RESERVE_PLACE_REGION –to a|b|c ON # The following assignment causes an error. The logic in e|f|g is not # legally placeable anywhere: # set_instance_assignment –name PLACE_REGION –to e|f|g "10 10 20 20" # The following assignment does *not* cause an error, but is effectively # constrained to the box (20,10),(30,20), since the (10,10),(20,20) box is reserved # for a|b|c set_instance_assignment –name PLACE_REGION –to e|f|g "10 10 30 20"
6.6. デザイン・フロアプランの解析および最適化の改訂履歴
この章には、次の改訂履歴が適用されます。
ドキュメント・バージョン | インテル® Quartus® Primeバージョン | 変更内容 |
---|---|---|
2019.07.30 | 19.3.0 | 新しいChip Plannerでのユーザー定義のクロック領域の使用セクションを追加しました。 |
2019.07.01 | 19.1.0 | Snap Logic Lock Region toオプションを説明する新しいリージョンへのスナップトピックを追加。 |
2019.04.01 | 19.1.0 |
|
2018.09.24 | 18.1.0 |
|
2018.05.07 | 18.0.0 |
|
2017.11.06 | 17.1.0 |
|
2017.05.08 | 17.0.0 |
|
2016.10.31 | 16.1.0 |
|
2016.05.02 | 16.0.0 | LogicLock Plusリージョンの作成に関する情報を更新。 |
2015.11.02 | 15.1.0 |
|
2015.05.04 | 15.0.0 | LogicLock領域の色分けに関する情報を追加。 |
2014.12.15 | 14.1.0 | 割り当てられた入力が利用できないことを明確にするために、仮想ピン割り当ての説明を更新。 |
2014年6月 | 14.0.0 | フォーマットを更新。 |
2013年11月 | 13.1.0 | レガシーHardCopyデバイスのサポートを削除。 |
2013年5月 | 13.0.0 | 「ルーティングの混雑の表示」セクションを 更新Chip PlannerのQuartus UIコントロールへの参照 を更新。 |
2012年6月 | 12.0.0 | サーベイ・リンクを削除。 |
2011年11月 | 11.0.1 | テンプレートを更新。 |
2011年5月 | 11.0.0 |
|
2010年12月 | 10.1.0 |
|
2010年7月 | 10.0.0 |
|
2009年11月 | 9.1.0 |
|
2008年5月 | 8.0.0 |
|
7. ECO
ECOは通常、設計検証段階で発生します。たとえば、検証中に、ネットリスト接続の変更、LUTの論理エラーの修正、PLLクロック周波数の調整など、設計に小さな変更が必要であると判断しました。デザインで完全な再コンパイルを実行するのではなく、ECOを実装すると、必要な時間が短縮され、影響を受けるロジックのみが変更されます。
:: quartus :: ecoパッケージを使用して、TclスクリプトでECOコマンドを指定します。
7.1. Engineering Change Orderフロー
- フロー
- ECOコマンドおよびECOコマンドの制限を確認して、ECOコマンドが変更をサポートしているかどうかを確認します。
- ECO Tclクリプトの例 に示されるようにTclスクリプトを作成します。
- ECOコンパイルを実行する前にProject > Archive Projectをクリックして、コンパイル・データベースと出力ファイルセットをアーカイブします。
-
Processing > Start > Start ECO Compilation
をクリックします。
図 65. ECOコンパイルの実行
-
ECO Tcl Scriptスクリプトファイルを指定し、OKをクリックします。
FitterはECOコマンドを処理し、最終的なネットリストを更新します。コマンドを誤って指定すると、Fitterはエラーを生成します。
Fitter処理が完了すると、変更が適用されます。
デフォルトでは、ECOコンパイルが成功した後、Assemblerが自動的に実行され、プログラミング・ファイルが生成されます。フロー中にAssemblerを自動的に実行しないようにするには、コンパイル・ダッシュボードのAssemblerステージのチェックボックスをオフにします。
- ECOの結果は、Timing Analyzer、Netlist Viewer、Chip Plannerなどのフィット後の分析ツールで確認できます。
- GUIの代わりに次のコマンドラインを使用できます。
execute_flow -eco <script>.tcl
デフォルトでは、Tcl Console ECOコンパイルが成功した後、Assemblerが自動的に実行されます。 Assemblerの自動実行を無効にするには、プロジェクトの.qsfファイルに以下を追加します。
set_global_assignment -name FLOW_DISABLE_ASSEMBLER ON
- コマンドラインから次のコマンドを実行します。
quartus_fit <project> -c <revision> --eco <script>.tcl
コマンドラインから実行すると、 インテル® Quartus® Primeアクティブ GUIアプリケーションは自動的に更新されません。 GUIを更新するには、プロジェクトを閉じて再度開く必要があります。
7.2. ECO Tclクリプトの例
次に、lutmaskを変更して接続を再ルーティングするECO Tclスクリプトの例を示します。
7.3. ECOコマンド
インテル® Quartus® Prime プロ・エディションソフトウェアは、次のE COコマンドをサポートしています。
7.3.1. make_connection
説明
ソース信号を宛先ブロック端子に接続します。ポートに既存の接続がある場合、コマンドは前の接続を削除し、指定した信号に接続します。実際のルーティングの変更は、スクリプトの最後で暗黙的に発生します。ネットリストビューアでノードを右クリックし、Propertiesをクリックすると、ノード名を見つけることができます。使用方法
次の例では、top|a_outをノードtop|xのD入力ポートに接続しています。
make_connection -from top|a_out -to top|x -port D
引数
- from
- 新しい接続のソースブロックの出力ネット。
- to
- 宛先ブロックの名前。
- port
- 宛先ブロックの入力端子名。
オプション
- tieoff
- 入力ポートを明示的にVCCまたはGNDに接続します。
- VCCまたはGND
- 例えば、
make_connection –tieoff VCC –to {node1} –port DATAA
- to
- 宛先ブロックの名前。
- port
- 宛先ブロックの入力端子名。
7.3.2. remove_connection
説明
宛先ブロックポートからsrc信号を切断します。実際のルーティングの変更は、スクリプトの最後で暗黙的に発生します。Netlist Viewerアでノードを右クリックし、Propertiesをクリックすると、ノード名を見つけることができます。使用方法
次の例では、ノードtop|xのD入力ポートからtop|a_outを切断し、 top|x:Dを切断状態に設定します。
remove_connection -from top|a_out -to top|x -port D
引数
- from
- 現在の接続のソースブロックの出力ネット。
- to
- 宛先ブロックの名前。
- port
- 宛先ブロックの入力端子名。
7.3.3. modify_lutmask
説明
一致する宛先ノードのlutmaskを、2進数または16進数のlutmask値(-mask)、または指定された論理式から計算された同等のlutmask値(-eqn)で変更します。使用方法
次の例では、ノードtop|xのD入力ポートからtop|a_outを切断し、 top|x:Dを切断状態に設定します。
modify_lutmask -to top|lut_c -eqn {a&b&c} modify_lutmask -to top|lut_a -mask 0xFF00FF00 modify_lutmask -to top|lut_b -mask 0b111111111001010
引数
- eqn
- 入力の論理式(A, B, C, D, E, F)。サポートされている字句トークンには、 AND('&') 、OR('|')、XOR('^')、NOT('!')、OPEN_BRACE('(')、CLOSE_BRACE(')')があります。 -maskまたは-eqnを指定します。
- to
- 宛先アトム名。
- mask
- バイナリーまたは16進形式で変更されるlutmask値。 -maskまたは-eqnを指定します。
7.3.4. adjust_pll_refclk
説明
入力リファレンスクロック周波数を変更して、IOPLL周波数を変更します。次の規定が適用されます。- 元のrefclkとoutclkの比率を維持します。
- 変更するIOPLLはIPクロックを生成できません。
- カスケードIOPLLは直接接続する必要があります(それらの間にクロックゲートはない)。
- IOPLLを「非専用」補償モードにすることはできません。
- すべてのIOPLLで、outclksデューティー・サイクルは50に等しく、位相シフトは0に等しくなります。
- インテル® Agilex™ デバイスはサポートされません。
使用方法
次の例では、入力クロック周波数を100 MHzに変更して、* pll_main * IOPLLを調整します。
adjust_pll_refclk -to {*pll_main*} -refclk 100
引数
- から
- 調整するアップストリームIOPLLのインスタンス名。ターゲット名の[または]文字をエスケープします。
- refclk
- MHzでの新しいrefclk周波数値。
7.3.5. modify_io_slew_rate
説明
I/Oピンに指定したI/Oピンスルー設定レートを実装します。使用方法
modify_io_slew_rate 1 -to top|ipin
引数
- から
- 変更する宛先ピンのインスタンス名。
7.3.6. modify_io_current_strength
説明
I/Oピンに指定したI/Oピン電流強度設定への変更を実装します。使用方法
modify_io_current_strength 3mA -to top|ipin
引数
- から
- 変更する宛先ピンのインスタンス名。
7.3.7. modify_io_delay_chain
説明
I/Oピンに指定した遅延チェーン設定への変更を実装します。使用方法
modify_io_delay_chain 3 -to top|ipin -type input
引数
- type
- 次のI/Oタイプのいずれかを指定します。input、output、oe、io_12_lane_input、io_12_lane_input_strobe
- to
- 遅延チェーン設定を変更するI/Oピンのインスタンス名。
7.4. コンパイル・レポートの表示
Compilerは、接続変更などのECO変更のカテゴリーに従ってレポート出力を編成します。この表は、ECOコンパイルの反復を示しています。

7.5. ECOコマンドの制限
- -from信号から宛先へのコアルーティングを含む接続のみを削除できます。
- 1つのALM内で専用接続を変更することはできません。この制限は、LUTとフリップフロップノード間の直接接続に適用されます。
- グローバル・クロック・ルーティング・リソースを使用して接続を変更することはできません。
- RAMブロックへの制御入力を変更する場合、同じ物理的な場所にあるRAMノードは同じルーティング接続を共有するため、その信号を使用しているすべてのRAMノードを同じECO変更で変更する必要があります。Resource Property EditorのNode Selectionパネルを使用して、変更するRAMノードのリストを決定できます。RAMタブを選択して、物理RAMの実装に使用されるRAMノードのリストを表示します。右クリックしてCopy Allを選択すると、ECOコマンドで使用するノード名のリストをコピーできます。
- LUTRAMの制御を変更するには、同じLAB内のすべてのLUTRAMに同じ変更を適用する必要があります。
- 既存のHyper-Register出力に接続を追加できますが、Hyper-Registerから既存の接続を削除することはできません。
7.6. エンジニアリング変更要求の改訂履歴の実装
この章には、次の改訂履歴が適用されます。
ドキュメント・バージョン | インテル® Quartus® Primeバージョン | 変更内容 |
---|---|---|
2019.09.30 | 19.3.0 |
|
2019.07.01 | 19.2.0 |
|
8. インテル Quartus Prime プロ・エディションデザイン最適化ユーザーガイドのアーカイブ
インテル® Quartus® Primeバージョン | ユーザーガイド |
---|---|
19.1 | インテル® Quartus® Prime プロ・エディション のユーザーガイド:デザインの最適化 |
18.1 | インテル® Quartus® Prime プロ・エディション のユーザーガイド:デザインの最適化 |
18.0 | インテル® Quartus® Prime プロ・エディション のユーザーガイド:デザインの最適化 |
A. インテル Quartus Prime プロ・エディションユーザーガイド
インテル® Quartus® Prime プロ・エディション FPGAデザインフローのすべてのフェーズに関する包括的な情報については、次のユーザーガイドを参照してください。