Quartus® Primeプロ・エディションのユーザーガイド: デバッグツール

ID 683819
日付 7/08/2024
Public
ドキュメント目次

2.4.1. モニタリングとデバッグ用の信号の保持

Compilerは、合成および配置配線中にRTL信号を最適化します。保持していない場合は、RTL内の信号名が信号最適化後のポストフィット・ネットリストに存在しなくなる可能性があります。例えば、コンパイルプロセスでは、重複するレジスターをマージしたり、ノードからファンアウトするネット名にチルダ (~) を追加したりします。

合成および配置配線後にRTL内の特定のノードをSignal Tapデバッグに使用できるようにするために、RTL内の対象信号に preserve_for_debug 属性を適用し、プロジェクトの .qsf 設定でEnable preserve for debug assignmentsを指定することもできます。デバッグ信号保持の方法.qsf 構文を参照してください。

この手法を使用して信号を保持すると、Compilerは合成後にPreserve for Debug Assignmentsレポートを生成し、RTL内の preserve_for_debug 属性を持つすべてのノードのステータスと名前を表示します。

モニタリングとデバッグ用に信号を保持するには、次の手順に従います。

  1. デザインRTLで、保持する信号を preserve_for_debug 属性でマークします。
    図 28. preserve_for_debug属性
  2. Quartus® Prime開発ソフトウェアでSignal Tapを含むプロジェクトを開き、次のいずれかを実行します。
    • 特定のインスタンスの保持とレポートをイネーブルするには、Assignments > Assignment Editorをクリックし、Enable preserve for debug assignments割り当てを対象のインスタンスToに指定します。

      または、

    • プロジェクト全体で保持とレポートをイネーブルするには、Assignments > Settings > Signal Tap Logic Analyzerで、Enable preserve for debug assignmentsをオンにします。1
  3. デザインを合成するには、Compilation DashboardでAnalysis & Synthesisをクリックします。合成が完了すると、Compilation Reportが表示されます。
  4. 信号保持の結果を表示するには、Synthesis > Partition <name> > Preserve for DebugレポートフォルダーにあるPreserve for Debug Assignmentsレポートを開きます。
    図 29. Preserve for Debug Assignmentsレポート
  5. ステップ3: デザインとSignal Tapインスタンスのコンパイル で説明されているとおり、フルコンパイルを実行して、デザインとSignal Tapインスタンスの配置配線を実行します。ステップ2で保持したデバッグ信号は、Fitterを通じて最終的なコンパイル・データベースに保持されます。
  6. ポストフィットのSignal Tapターゲットノードの変更 で説明されているとおり、オプションで、フル・リコンパイルを実行せずに、Signal Tapコンフィグレーションにインクリメンタル変更を加えます。
表 9.  デバッグ信号保持の方法
方法 説明
preserve_for_debug_enable この割り当てをOnに設定すると、preserve_for_debug でマークされたノードまたは階層が保持されます。Offに設定するか、もしくは使用しない場合は、preserve_for_debug 割り当ては無視されます。これは、完成したデザインを最適化するときにすべてのデバッグノードの保持をディスエーブルする簡単な方法として使用します。Compilerは、コンパイル後にこれらのノードをPreserve for Debug Assignmentsレポートに報告します。 set_instance_assignment -name PRESERVE_FOR_DEBUG_ENABLE ON
preserve_for_debug

(Assignment Editorの Enable preserve for debug assignments)

インスタンス固有の .qsf 割り当て。グローバル割り当てをオーバーライドし、合成後またはポストフィットのデバッグの目的ですべてのタイプのノードの保持をイネーブルします。Onの場合、この割り当てにより、指定した階層の保持がイネーブルになります。Assignment Editorの Preserve signal for debug を使用して、これをイネーブルまたはディスエーブルにできます。Compilerは、コンパイル後にPreserve for Debug Assignmentsレポートにこれらのノードを報告します。 set_instance_assignment -name PRESERVE_FOR_DEBUG ON -to <node hpath>
注: 信号の保持の詳細については、 Hyperflex® アーキテクチャー高性能デザイン・ハンドブック内の合成中のレジスターの保持および、 Quartus® Primeプロ・エディションのユーザーガイド: プラットフォーム・デザイナー内のPreserving a System Module, Interface, or Port for Debuggingを参照してください。
1 グローバル・プロジェクト設定の影響は限定的であり、ローカル・コンテキストで最適化されて削除される信号は保持されません。