ロジック段数の削減 - 2023.2 日本語

FPGA および SoC 用 UltraFast 設計手法ガイド (UG949)

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 日本語

デザイン サイクルを通して、ロジック段の分布がターゲットの AMD デバイス ファミリとデバイス スピード グレードのクロック周波数要件を達成するのに適切であるかを確認する必要があります。ロジック段数の多いパスの数が限られる場合は必ずしもタイミング クロージャの問題が発生するわけではありませんが、Vivado 合成のリタイミング オプションを使用してデザインの最長のパスを最適化すると、タイミング QoR (結果の品質) を向上できます。

リタイミング オプションをグローバルに適用すると、通常実行時間が長くなり、消費電力が増加することがあります。そのため、AMD では合成後または配置後にロジック段数の多いパス上に違反のある階層を特定することをお勧めします。最長のパスのファンインまたはファンアウトにあるパスのロジック段数が少なく、小型または中型の階層モジュールに含まれる場合は、BLOCK_SYNTH.RETIMING ブロック レベル合成ストラテジを使用できます。

次の図に、600 MHz クロックで制約されている 5 つの LUT を含むクリティカル パスを示します。REG2 デスティネーション フリップフロップは、REG2 から 1 つ上の階層に含まれる 1 つの LUT を含むタイミング パスを駆動しています。

図 1. ロジック段数が 5 のクリティカル パスを示す回路図

Vivado IDE の Schematic ウィンドウを使用するのに加え、report_design_analysis -logic_level_distribution コマンドを使用して特定のパスのロジック段の分布を確認できます。これにより、タイミング QoR を向上するためにバランスを取り直す必要のあるパスの数を判断できます。

Vivado 合成で retiming_forward および retiming_backward 属性を使用し、特定のレジスタまたはパスのリタイミング最適化を制御できます。これらの属性を使用すると、最上位モジュールまたはサブモジュールではなく、特定のパスにリタイミング最適化が適用されます。これらの属性は、RTL または XDC ファイルで設定できます。これらの属性の使用方法および制限などの詳細は、 『Vivado Design Suite ユーザー ガイド: 合成』 (UG901) を参照してください。

次の図は、inst1/inst2 階層に含まれる 600 MHz クロックで制約されたロジック段数が 5 のパスが 58 個あり、ロジック段数が 1 のパスが 32 個あることを示しています。

図 2. デフォルトの合成最適化によるロジック段の分布

Vivado 合成では、ロジック段数の少ないパスからロジック段数の多いパスにレジスタを移動することにより、ロジック段数のバランスを取ることができます。この例では、合成 XDC ファイルに次の制約を追加すると、inst1/inst2 階層でリタイミングを実行できます。

set_property BLOCK_SYNTH.RETIMING 1 [get_cells inst1/inst2]

同じグローバル設定とアップデートした XDC ファイルで合成を再実行した後、inst1/inst2 タイミング パスに対して通常のタイミング解析を実行するか report_design_analysis コマンドを再実行して、次の図に示すように最長パスのロジック段数が減少しているかどうかを確認できます。クリティカル パスは REG0 > 3 LUTs > REG2 になっており (バックワード リタイミング)、REG2 から REG4 へのパスのロジック段数は 3 です。

図 3. 合成最適化でリタイミングをイネーブルにした後のロジック段の分布