制御セット数が多い場合は、次のいずれかのストラテジを使用して削減します。
- HDL ソース ファイルまたは制約ファイルで制御信号に設定されている MAX_FANOUT 属性を削除します。制御信号を複製すると、固有の制御セットの数が大幅に増加します。AMD では、
place_design
で実行される大まかな複製を利用し、配置後の詳細な複製にはphys_opt_design -directive Explore
を使用することをお勧めします。これにより、配線の密集の原因となる不要な複製や等価制御セットが相互にまたがるのを回避できます。 -
Vivado 合成 (またはその他の合成ツール) で制御セットのしきい値を増加します。
report_control_sets -verbose
で生成された制御セットのファンアウトの分布の表を確認し、合成で使用するのにより適切な制御セット数のしきい値を判断します。contol_set_opt
を増加すると、アクティブに消費電力を削減できるクロック イネーブルが削除されるので、消費電力に悪影響を与える可能性があることに注意してください。次に例を示します。synth_design -control_set_opt_threshold 16
ヒント: 配置の分散または密集の影響を最も受けているモジュールの制御セット数のしきい値を変更するには、BLOCK_SYNTH 合成制約を使用します。 - 合成後に
opt_design -control_set_merge
またはopt_design -merge_equivalent_drivers
を使用して、等価の制御セットを統合します。 - CONTROL_SET_REMAP プロパティを使用して、レジスタの同期セット/リセットまたは CE ピンを駆動するファンアウトの小さい制御信号を D 入力にマップします。詳細は、 『Vivado Design Suite ユーザー ガイド: インプリメンテーション』 (UG904) のこのセクションを参照してください。
- ファンアウトの小さい非同期セット/リセット (プリセット/クリア) は、専用非同期ピンのみに接続可能であり、合成でデータパスに移動することはできないので、使用しないようにします。そのため、合成の制御セットのしきい値は非同期セット/リセットには適用されません。
- 異なるシーケンシャル セルに対して、アクティブ High およびアクティブ Low の両方の制御信号を使用しないようにします。
- クロック イネーブルおよびセット/リセットは必要な場合にのみ使用します。通常データパスには多数のレジスタが含まれ、これらのレジスタの初期化されていない値は自動的にフラッシュされるので、セット/リセットまたはイネーブル信号は最初と最後の段にのみ必要です。