インテル® Hyperflex™ アーキテクチャー高性能デザイン・ハンドブック

ID 683353
日付 10/04/2021
Public
ドキュメント目次

2.2.3. 合成中のレジスターの保持

エンティティレベルの割り当てと合成属性を指定して、合成処理中に特定のレジスターを保持できます。

たとえば、Preserve Registers in Synthesis 割り当ては、ハイパーリタイミングの最適化を制限することなく、合成中に割り当てたレジスターを保持します。同様に、 dont_merge また prepare_syn_only 次の例に示すように、リタイミングの最適化を制限せずにレジスターを保持するための合成属性を指定できます。

logic  hip_data; /* synthesis preserve_syn_only */
(*preserve_syn_only*) logic hip_data;

Preserve Registers 割り当てはレジスターも保持しますが、割り当てるレジスターのHyper-Retimer最適化は許可しません。この割り当ては、可観測性をデバッグするためにレジスターを保持する場合に役立ちます。

.qsf ファイルを変更することにより 、またはRTLで合成属性を指定することにより、Assignments > Assignment Editorクリックして、次の合成保存割り当てのいずれかを指定します。

表 5.  Synthesis Preserve Options
アサインメント 変更内容 Allows Fitter Optimization? Assignment Syntax
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 アサインメントでは、定義したVerilogHDLまたは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> QSFQSF
  • preservesyn_preserve、またはkeep on (合成属性)