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

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

1.4.1.1. 合成時におけるレジスターの保持

インテル® Quartus® Primeの合成は、ゲート数を最小限に抑え、冗長ロジックを統合し、デバイスリソースの効率的な使用を保証するものです。合成処理時に特定のレジスターを保持する必要がある場合は、次のエンティティー・レベルの割り当てのいずれかを指定します。

Preserve Registers in Synthesis または Preserve Fan-Out Free Register Node オプションを割り当て、保持レジスターのフィッターによる最適化を許可します。Preserve Registers では、保持レジスターのフィッターによる最適化を制限します。合成時の保持割り当てを指定するには、Assignments > Assignment Editorをクリックする、もしくは.qsf ファイルを変更する、またはRTLの合成属性を指定します。

表 11.  合成時の保持オプション
割り当て 詳細 フィッターによる最適化の許可 割り当て構文
Preserve Registers in Synthesis

合成時のレジスターの削除を防ぎます。この設定は、フィッターにおけるリタイミングやその他の最適化には影響しません。

はい
  • PRESERVE_REGISTER_SYN_ONLY ON|Off -to <entity> .qsf
  • keep_syn_only または syn_preservesyn_only (合成属性)
Preserve Fan-Out Free Register Node ファンアウトのないレジスターに割り当てられている場合に、それらが合成時に削除されないようにします。

PRESERVE_FANOUT_FREE_NODE 割り当てをレジスターに割り当てる際に、そのVerilog HDLまたはVHDLモジュール内にそのレジスターのファンアウトがない場合は、そのレジスターを保持することはできません。このようなレジスターを保持するには、ソースファイルに noprune プラグマを実装します。

(* noprune *)reg r;

このモジュールのインスタンスが複数あり、一部のインスタンスでのみファンアウトのないレジスターの保持が必要な場合は、HDLでレジスターにダミープラグマを設定し、さらに PRESERVE_FANOUT_FREE_NODE 割り当てを設定します。このダミープラグマにより、レジスター合成で割り当ての実装が可能になります。例えば、次のダミープラグマをVerilog HDLでレジスター r に設定します。

(*dummy*)reg r;
はい
  • PRESERVE_REGISTER_FANOUT_FREE_NODE ON | Off -to<entity> QSFQSF
  • no_prune on (合成属性)
Preserve Registers 合成時に、割り当てられているレジスターの削除および逐次最適化を防ぎます。一連のネットリストの最適化では、冗長なレジスターや定数ドライバーをもつレジスターが除去されます。 はい
  • PRESERVE_REGISTER ON|Off -to <entity> .qsf
  • preservesyn_preservekeep on (合成属性)