インテル® Quartus® Primeプロ・エディションのユーザーガイド: デザインのコンパイル

ID 683236
日付 6/26/2023
Public
ドキュメント目次

1.4.3. 合成における動的レポートの表示

動的レポート機能を使用すると、GUIには少数の項目のみしか表示されないレポートの全体部分に対して働きかけることができます。この機能はデフォルトではオフになっています。有効にする場合は、synth_rpt_enable_dynamic_report QSFを介して行います。現在、動的レポートの表示は、Registers Removed During Synthesis レポートのみで可能です。

次に示されているレポートからは、コンパイラーが合成時に12984個のレジスターを削除したことが分かります。ただし、レジスターが2780を超えると、GUIのしきい値により、残りのレジスターはレポートから切り離されます。動的レポート機能を使用すると、この残りのレジスターの詳細を取得することができます。GUIのしきい値を更新してデザインを再コンパイルする必要はありません。

図 50. 合成レポートから除外されるレジスター例

1回のコンパイルにおいて、コンパイラーはレポートのすべての項目を動的SQLiteデータベースに格納します。このデータベースは、<project_directory>/dynamic_report/registers_removed.sqlite にあります。デザインの合成後、SQLiteデータベースにTclコマンドを介してアクセスし、SQLiteデータベースの概要 (データ列や項目の合計サイズなど) の抽出、SQLコマンド (SELECTWHERE など) を使用してのデータベースからのクエリー、レポートから切り離された行の取得 (必要数) を行うことができます。

注:
  • SQLiteデータベースを生成後に再コンパイルを行うと、コンテンツは同じデータベースに書き換えられます。再コンパイル時にQSFをオフにすると、SQLiteデータベースは前回のコンパイルの情報を維持します。
  • 合成時に削除されるレジスターがデザインに含まれない場合、コンパイラーは Registers Removed During Synthesis レポートを生成しません。よって、dynamic_report ディレクトリーとSQLiteデータベースも生成されません。

Tclコマンドの実行

dynamic_report Tclコマンドは、次のいずれかの方法で実行することができます。

  • TclコマンドをTclスクリプトに含め、quartus_syn -t <name>.tcl を使用して実行します。
  • quartus_syn --tcl_eval <tcl command> のように、単一のコマンドをターミナルから直接実行します。
  • GUIから単一のコマンドを実行します。それには、 インテル® Quartus® Prime開発ソフトウェアでプロジェクトを起動し、メニューから View > Tcl Console を選択します。Tclコンソールウィンドウに、Tclコマンドを入力します。

いずれの方法を使用しても、dynamic_report Tclコマンドの実行結果は同じです。

注: dynamic_report Tclコマンドを実行すると、Tclコマンドは、対応するSQLiteデータベースをすぐに開き、アクションをさらに実行しようとします。データベースを開くパスは絶対パスです。したがって、現在のディレクトリーが dynamic_report ディレクトリーではなく、デザインが配置されている位置であることを確認します。これに従わない場合はエラーが表示され、SQLiteデータベースへのパスが不正であること、もしくはSQLiteデータベースを開く際に問題があることが示されます。

次の表に、dynamic_report Tclコマンドをさまざまなオプションとともに使用している例をいくつか示します。

表 17.   dynamic_report Tclコマンド例
dynamic_report コマンドオプション 詳細 Tclコマンド例
-help dynamic_report Tclコマンドの詳細なヘルプ情報を提供します。これには、現在サポートされているレポートの値、オプション、およびエラーの値が含まれます。 dynamic_report -help
-long_help 使用例と考えられる戻り値を提供する dynamic_report Tclコマンドのロングヘルプです。 dynamic_report -long_help
-report <report name> <report name> が指定するレポートを対象とします。Registers Removed During Synthesis レポートには、"registers removed" を使用します。
注: -report オプションは必須です。Tclコマンドはレポート名に基づきアクションをさらに実行します。-report オプションがない場合、またはサポートされていない値を <report name> に使用している場合は、エラーが発生します。
dynamic_report -report "registers removed"
-summary 指定されているレポートの概要 (テーブル名、合計サイズ、列名など) を生成します。これは、SQLiteデータベースからのクエリーに役立ちます。 dynamic_report -report "registers removed" -summary
-query <sqlite query> SQLiteクエリー全体をオプションとして受け入れ、データベースから目的の結果を取得します。例: -query "SELECT * FROM <table> WHERE <column> = <...>"

クエリーコマンドが不正である、もしくは不完全な場合は、エラーメッセージと詳細が表示されます。

このクエリーの結果は、デフォルトでは、<project directory>/dynamic_report ディレクトリーにある出力ファイルにASCII形式で送信されます。

dynamic_report -report "registers removed" -query "SELECT * FROM 'Registers Removed During Synthesis' WHERE reason = 'Stuck at VCC due to stuck port data_in'"
-dump_all レポート内のすべての項目をダンプします。

このクエリーの結果は、デフォルトでは、<project directory>/dynamic_report ディレクトリーにある出力ファイルにASCII形式で送信されます。

dynamic_report -report "registers removed" -dump_all
-dump_lines <unsigned integer> レポート内の行の最初の <unsigned integer> をダンプします。 <unsigned integer> に指定されている値が符号なし整数ではない、または1から999999999の範囲にない場合は、エラーメッセージが表示されます。

このクエリーの結果は、デフォルトでは、<project directory>/dynamic_report ディレクトリーにある出力ファイルにASCII形式で送信されます。

dynamic_report -report "registers removed" -dump_lines 250
-filename <file_name> -query-dump_all-dump_lines オプションによってダンプされた結果の出力ファイル名を指定します。

-filename はオプションです。ファイル名を指定しない場合、コンパイラーは出力ファイルを <report name>.ascii と名付けます。ファイル名が空の場合や、特殊文字やスペースが含まれている場合は、エラーメッセージが表示されます。

注: -filename オプションは、-html または -xml オプションとともに使用することで、出力ファイルをそれぞれHTML形式またはXML形式で生成することができます。
dynamic_report -report "registers removed" -dump_all -filename "my_result"
重要: オプションの -summary-query-dump_all および -dump_lines は必須ですが、排他的です。つまり、dynamic_report Tclコマンドに必要なオプションは1つだけです。単一の dynamic_report Tclコマンド内に複数のオプションを含めると、エラーメッセージが表示され、単一のオプションを指定するように求められます。