配置の物理合成最適化 (PSIP) では、フロアプラン段階後のデザインの初期配置に基づいて、後の配置段階のために配置ツールでネットリストを最適化するさまざまな物理最適化が実行されます。たとえば、ファンアウト ベースの複製では、初期配置がわかっているので、複製されたドライバーをロードと同位置に配置することが可能です。これにより、place_design
の実行前に、配置がわかっていない状態で複製した場合に発生する可能性のある密集を軽減できます。最適化は内部パラメーターに基づいて考慮され、タイミング ベースの最適化では、タイミングが評価され、タイミングが改善する場合にその最適化が実行されます。次の図に示す最適化を使用できます。
図 1. 物理合成最適化のサマリ
- 制御セットの最適化
- より正確な配置位置情報を使用して制御セットを削減します。有益な初期配置結果を用いて、フロップを配置エリア全体に分散させ、小さなエリアに最適なフロップの最小限のリソース使用量を計算します。密集している領域では、リソース使用量を削減する最適なソリューションを見つけます。これにより、セルをさらにダウンストリームにプッシュするエフォートが削減され、ほかの最適化を実行できるようになります。このフェーズは、配置の Explore 指示子でのみアクティベートされます。
- LUT Decomposition および LUT Combining (LUT の分解および結合)
- LUT の分解は、タイミングが改善する場合にのみ LUT 形状を分割します。LUT に SOFT_HLUTNM プロパティが設定されている場合にのみ考慮されます。LUT の結合は、使用率が向上する場合にのみ実行されます。
- Property-Based Retiming (プロパティ ベースのリタイミング)
- プロパティ ベースのリタイミングでは、レジスタまたは LUT にプロパティを設定して、リタイミングを制御できます。これは、タイミングの始点および終点に十分なマージンを持つクリティカル パスに理想的な最適化方法です。2 つのプロパティは、PSIP のリタイミングを制御します。PSIP_RETIMING_BACKWARD の値が TRUE の場合は逆方向リタイミングを実行し、PSIP_RETIMING_FORWARD の値が TRUE の場合は順方向リタイミングを実行します。これらのプロパティはレジスタまたは LUT に適用できます。値が TRUE の PSIP_RETIMING_FORWARD がレジスタに適用されると、PSIP 順方向リタイミングがレジスタの Q ピンで駆動されるすべての LUT ロードに対して実行されます。値が TRUE の PSIP_RETIME_FORWARD が LUT プリミティブに適用されると、LUT を駆動するレジスタは LUT の出力に移動します。値が TRUE の PSIP_RETIME_BACKWARD がレジスタに適用されると、PSIP 逆方向リタイミングがレジスタの D ピンを駆動する LUT で実行されます。レジスタの逆方向リタイミング プロパティは、制御セット ピン ドライバー LUT に対して逆方向リタイミングをトリガーしないことに注意してください。値が TRUE の PSIP_RETIME_BACKWARD が LUT プリミティブに適用されると、LUT で駆動されるレジスタは LUT 入力に移動されます。マルチレベル リタイミングは、パスに沿ったすべての LUT プリミティブにプロパティを適用することでサポートされます。すべてのリタイミング セルでは、PHYS_OPT_MODIFIED プロパティが RETIMING に設定されます。
リタイミングは、次の場合には機能しません。
- BRAM、UltraRAM、DSP などのマクロ間でロジックを移動する場合
- レジスタが I/O サイトにパックされる場合
- 異なる始点/終点クロックを持つパス
- タイミング例外のあるパス
- DONT_TOUCH、ASYNC_REG などの最適化を阻止するプロパティ
- Very High-Fanout (ファンアウトが非常に大きいネットの最適化)
- ファンアウトが非常に大きい場合に、最適化でファンアウトの大きいネット (ファンアウト > 1000、スラック < 2.0 ns) を駆動するレジスタを複製します。
- Critical Cell (クリティカル セルの最適化)
- タイミングが満たされないパスのセルを複製します。特定のセルのロードが離れて配置されている場合に、セルが複製され、新しいドライバーがロード クラスターの近くに配置されます。この最適化は、大型のブロック RAM または URAM 配列または多数の DSP を駆動するネットによく適用されます。これは、これらのブロックのサイトがデバイスの広範囲に分散されているからです。この最適化が実行されるのに、ファンアウトが大きいことは必須ではありません (スラック < 0.5 ns)。
- Fanout (ファンアウトの最適化)
- ファンアウトの最適化は、MAX_FANOUT プロパティ値が実際のファンアウトよりも小さいネットに対して考慮されます。FORCE_MAX_FANOUT プロパティをネットに追加すると、ネットを駆動するレジスタまたは LUT を強制的に複製できます。FORCE_MAX_FANOUT の値には、複製最適化後のネットに必要な最大物理ファンアウトを指定します。この場合の物理ファンアウトは、論理的なロードではなく、実際のサイト ピン ロードです。たとえば、複製されたネットが同じスライスにグループ化された複数の LUTRAM ロードを駆動する場合、同じスライス内の LUTRAM すべての合計ファンアウトは 1 になります。FORCE_MAX_FANOUT を指定すると、信号のスラックにかかわらず、物理合成中に複製が実行されます。MAX_FANOUT_MODE プロパティが設定された物理デバイスの属性に基づいて複製を強制できます。このプロパティに有効な値は、CLOCK_REGION、SLR、または MACRO です。たとえば、MAX_FANOUT_MODE プロパティに CLOCK_REGION 値を指定すると、物理クロック領域に基づいてドライバーが複製され、同じクロック領域に配置されたロードがまとめられます。MAX_FANOUT_MODE プロパティは FORCE_MAX_FANOUT プロパティよりも優先されます。物理合成では、まず MAX_FANOUT_MODE ベースの最適化が適用され、複製されたすべてのドライバーに FORCE_MAX_FANOUT プロパティが継承されて、クロック領域内でさらに複製が適用されます。これを、次の図の例に示します。この例では、1 つのドライバーが 2 つのレジスタと 2 つの MACRO ロード (ブロック RAM、UltraRAM または DSP) の合計 4 つのロードを駆動しています。複製により、レジスタ ロードと MACRO ロードが個別のドライバーで駆動されるようになり、さらに FORCE_MAX_FANOUT プロパティ値が満たされるまで MACRO ロードのドライバーが複製されます。図 2. MAX_FANOUT_MODE (MACRO に設定) と FORCE_MAX_FANOUT の適用注記: この最適化は、配置の早い段階で実行されます。タイミングの精度が向上する後の配置段階では、タイミングの見積もりが向上する場合、複製されたソース レジスタとロード レジスタの両方を異なるクロック領域または SLR に移動できます。
- DSP Register (DSP レジスタの最適化)
- DSP セルのレジスタをロジック配列に移動したり、ロジック配列から DSP セルに移動したりすることにより、クリティカル パスの遅延が削減されます。
- Shift Register to Pipeline (シフトレジスタからパイプラインへの最適化)
- シフトレジスタからパイプラインへの最適化は、固定長のシフトレジスタをダイナミックに調整されたレジスタ パイプラインに変換し、そのパイプラインを最適に配置してタイミングを改善します。この最適化では、PHYS_SRL2PIPELINE 属性が TRUE に設定されている SRL のみが考慮されます。FF のプル/プッシュは SRL の Q ピンで発生します。SRL の長さを固定する必要があるので、ダイナミック SRL はこの最適化ではサポートされません。
- Shift Register (シフト レジスタの最適化)
- シフト レジスタの最適化を実行すると、シフト レジスタ セル (SRL) とほかのロジック セル間の負のスラック パスのタイミングが向上します。
- Block RAM Register (ブロック RAM レジスタの最適化)
- ブロック RAM セルのレジスタをロジック配列に移動したり、ロジック配列からブロック RAM セルに移動したりすることにより、クリティカル パスの遅延を削減します。
- URAM Register (UltraRAM レジスタの最適化)
- UltraRAM セルのレジスタをロジック配列に移動したり、ロジック配列から UltraRAM セルに移動したりすることにより、クリティカル パスの遅延が削減されます。
- Dynamic/Static Region Interface Net Replication (ダイナミック/スタティック領域のインターフェイスのネット複製)
- DFX フローで、スタティック デザインのリコンフィギャラブル モジュール境界パスにドライバーを複製します。
- Equivalent Driver Rewire (等価ドライバーのリワイヤ)
- この最適化では、論理的に等価のドライバー間でロードを再分配して配線のオーバーラップを最小限に抑え、ドライバーとロードをより適した相対位置に配置できます。これにより、使用率および密集が改善し、後の配置段階で QoR を向上するためにドライバーとロードをより適した位置に移動できます。
これらの最適化の詳細は、「物理最適化」セクションの「使用可能な物理最適化」を参照してください。配置での物理最適化は、デフォルトですべての配置指示子で実行されます。物理合成の最後に、最適化のサマリを示す表が表示されます。