インテルのみ表示可能 — GUID: sav1631895934775
Ixiasoft
インテルのみ表示可能 — GUID: sav1631895934775
Ixiasoft
1.4.1.2. 監視とデバッグに向けた信号の保持
コンパイラーは、合成および配置配線時にRTL信号を最適化します。保持していない場合は、RTL内の信号名が信号最適化後のフィット後ネットリストに存在しなくなる可能性があります。例えば、コンパイルプロセスでは、重複するレジスターをマージしたり、ノードからファンアウトするネット名にチルダ (~) を追加したりします。
- 保持する信号をマークします。
信号のマークは、RTLコード内で直接行う、もしくはQSF割り当てコマンドを介して行います。
- 信号保持の有効化は、プロジェクト全体に対して、またはマークされた信号を含むインスタンスに対して行います。
プロジェクト全体での信号保持の有効化は、 インテル® Quartus® Prime GUIまたはQSF割り当てコマンドを介して行います。インスタンス内の信号の保持には、QSF割り当てコマンドを使用します。
信号保持のマーキングと信号保持の有効化を分けることにより、コードを作成しながら対象の信号にタグ付けすることができます。信号保持を有効にするまで、最適化に影響することはありません。
属性 | 結果 |
---|---|
preserve | インテル® Quartus® Primeによるレジスターの最適化およびリタイミングを防ぎます。 |
keep | 組み合わせロジックの最適化時に、 インテル® Quartus® Primeによる信号ネットの最小化または削除を防ぎます。 |
noprune | インテル® Quartus® Primeによるファンアウトのないレジスターの削除または最適化を防ぎます。 |
dont_merge | インテル® Quartus® Primeによる重複レジスターのマージを防ぎます。 |
dont_replicate | インテル® Quartus® Primeによるレジスターの複製を防ぎます。 |
- Preserve for Debug Assignments レポートには、保持ステータスと保持としてマークされたすべてのノードの名前が表示されます。
- Node Finderの preserved for debug フィルターは、保持されているノードをすばやく見つけるのに役立ちます。
監視とデバッグに向けて信号を保持する際の全体的なフローは次のとおりです。
- 次のいずれかの方法で、保持する信号をマークします。
- RTLコードで直接、preserve_for_debug 属性を使用して信号をマークする
表 13. RTLで preserve_for_debug 属性を使用しての信号のマーク例 Verilogの場合 VHDLの場合 (* preserve_for_debug *) wire [3:0] counter_wire; (* preserve_for_debug *) reg [3:0] counter_reg; (* preserve_for_debug *) wire [15:0] decode_out_top; (* preserve_for_debug *) reg [15:0] decode_out_reg_top;
attribute preserve_for_debug : boolean; attribute preserve_for_debug of counter_wire : signal is true; attribute preserve_for_debug of counter_reg : signal is true; attribute preserve_for_debug of decode_out : signal is true; attribute preserve_for_debug of decode_out_reg : signal is true;
- 次のいずれかの方法により、PRESERVE_FOR_DEBUG 割り当てを使用して信号をマークする
- コマンドラインから、もしくはQSFファイルで、PRESERVE_FOR_DEBUG 割り当てを特定のノードに指定する。
set_instance_assignment -name PRESERVE_FOR_DEBUG ON -to <node hpath>
- Assignment Editorで、Preserve signal for debug 割り当てを任意のノード To に指定する。割り当て値には On を選択します。
重要: PRESERVE_FOR_DEBUG 割り当てを使用すると、信号が保持される前にロジックが最適化されてしまうことがまれにあります。この問題が発生した場合は、HDLコードで preserve_for_debug 属性を使用します。 - コマンドラインから、もしくはQSFファイルで、PRESERVE_FOR_DEBUG 割り当てを特定のノードに指定する。
- 保持するシステムモジュール、インターフェイス、またはポートをプラットフォーム・デザイナーでマークする
詳細は、Intel® Quartus® Prime Pro Edition User Guide: Platform Designer で、「Preserving a System Module, Interface, or Port for Debugging」を参照してください。
- RTLコードで直接、preserve_for_debug 属性を使用して信号をマークする
- デバッグに向けて、保持をプロジェクト全体または特定のインスタンスに対して有効にします。
- 保持とレポート作成をプロジェクト全体に対して有効にするには、次のいずれかの手順を実行します。
- Signal Tap Logic Analyzerの設定からプロジェクト全体の信号保持を有効にする
Assignments > Settings > Signal Tap Logic Analyzer > Enable preserve for debug assignments を選択します。
- グローバル PRESERVE_FOR_DEBUG_ENABLE 割り当てをコマンドラインから、もしくはQSFファイルで指定する
set_global_assignment -name PRESERVE_FOR_DEBUG_ENABLE ON
- グローバル Enable preserve for debug assignments 割り当てをAssignment Editorで指定する。割り当て値には On を選択します。
ヒント: プロジェクト全体の信号保持とレポート作成を有効にしたら、インスタンス・レベルの設定を使用して、プロジェクト全体の信号保持とレポート作成からインスタンスを除外します。 - Signal Tap Logic Analyzerの設定からプロジェクト全体の信号保持を有効にする
- 信号保持とレポート作成の有効化 (または無効化) を特定のインスタンスのみを対象として行うには、次の手順を実行します。
- コマンドラインから、もしくはQSFファイルで、インスタンスの PRESERVE_FOR_DEBUG_ENABLE 割り当てを ON (または OFF) として指定する
set_instance_assignment -name PRESERVE_FOR_DEBUG_ENABLE ON -to <instance hpath>
- Assignment Editorで、Enable preserve for debug assignments 割り当てを任意のインスタンス To に指定する。割り当て値にはOn (または Off) を選択します。
- RTLのインスタンスで、PRESERVE_FOR_DEBUG_ENABLE 属性を ON (または OFF) の値で指定する
表 14. RTLでの PRESERVE_FOR_DEBUG_ENABLE 属性設定例 Verilogの場合 VHDLの場合 ... (* altera_attribute = "-name PRESERVE_FOR_DEBUG_ENABLE ON" *) decoder decoder_inst( ...
... attribute altera_attribute : string; attribute altera_attribute of my_decoder_inst : LABEL is "-name PRESERVE_FOR_DEBUG_ENABLE ON"; ... begin ... my_decoder_inst : decoder
- コマンドラインから、もしくはQSFファイルで、インスタンスの PRESERVE_FOR_DEBUG_ENABLE 割り当てを ON (または OFF) として指定する
- 保持とレポート作成をプロジェクト全体に対して有効にするには、次のいずれかの手順を実行します。
- デザインを合成します。
Compilation Dashboardで、Analysis & Synthesis をクリックします。合成が完了すると、コンパイルレポートが生成されます。Node Finderで preserved for debug を使用し、保持されたノードをすばやく見つけることもできます。
- 信号保持の結果を表示します。
Synthesis > Partition <name> > Preserve for Debug レポートフォルダーで、Preserve for Debug Assignmentsレポートを開きます。図 48. Preserve for Debug Assignmentsレポート
- フルコンパイルを実行し、デザインおよびSignal Tapインスタンスの配置配線を行います。それには、Processing > Start Compilation を選択します。
保持したデバッグ信号は、フィッターを介して最終的なコンパイル・データベースに残されます。
フルコンパイルを実行したら、任意の インテル® Quartus® Primeデバッグツールを使用してデザインをデバッグすることができます。
割り当て | 詳細 | 例 |
---|---|---|
preserve_for_debug (Assignment Editorの Preserve signal for debug) |
preserve_for_debug が有効になっている場合は、合成後またはフィット後のデバッグに向けてコンパイル時に信号を保持するようにマークします。 | set_instance_assignment -name PRESERVE_FOR_DEBUG ON -to <node hpath> |
preserve_for_debug_enable (Assignment Editorの Enable preserve for debug assignments) |
preserve_for_debug をプロジェクト・レベルまたはインスタンス・レベルで有効にします。 有効になっている場合、コンパイラーは、コンパイル後に信号保持の結果をPreserve for Debug Assignmentsレポートで報告します。 コンパイラーは、コンパイル後にこれらのノードをPreserve for Debug Assignmentsレポートで報告します。 |
set_global_assignment -name PRESERVE_FOR_DEBUG_ENABLE ON set_instance_assignment -name PRESERVE_FOR_DEBUG_ENABLE ON -to <instance hpath> |