消費電力最適化を使用して消費電力を最大限に削減するためのガイドライン - 2023.2 日本語

Vivado Design Suite ユーザー ガイド: 消費電力解析および最適化 (UG907)

Document ID
UG907
Release Date
2023-10-18
Version
2023.2 日本語

AMD Vivado™ ツールで消費電力最適化を実行したときに消費電力が最大限に削減されるようにするには、消費電力最適化をデザイン全体に実行し、デザインの一部を除外しないようにします。消費電力最適化を有効にしても消費電力が削減されない場合は、デザインが正しく制約されているかどうかを確認してください。デザインのすべてのレジスタに制約が設定されているかどうかを確認するには、check_timing コマンドを使用します。

デザインが正しく制約されている場合は、消費電力最適化に影響しているかもしれないコーディング スタイルがないかどうか確認します。デバッグが必要になる可能性があるのは、グローバル セット/リセット信号、ブロック RAM イネーブル生成、およびレジスタ クロック ゲーティングの 3 つです。消費電力最適化で生成されたイネーブルの数が少なければ、コード記述方法、または合成およびインプリメンテーションのオプション/プロパティを見直す必要がある可能性があります。

  • グローバル セット/リセット信号

    特にデータパス、パイプライン フリップフロップ、ブロック RAM に対しては、非同期セット/リセット信号をできるだけ使用しないようにします。

    また、power_opt_design でグローバル セット/リセット信号に dont_touch プロパティを設定し、イネーブルとして使用されないようにすることも考慮します。HDL で dont_touch プロパティを設定すると、フローのすべての段階でこの属性が適用されます。このオプションは、消費電力最適化用の XDC 制約として設定することをお勧めします。次にその例を示します。

    set_property DONT_TOUCH true [get_cells u1]

    最後に、消費電力最適化およびベクターレス消費電力見積もりの前に、グローバル セット/リセット信号の信号レートおよび確率が正しく設定されていることを確認してください。

  • スライス レジスタおよび SRL

    power_opt_design でデザインのスライス レジスタまたは SRL に対してクロック イネーブルが生成されない原因は、多数あります。次に、その例を示します。

    • デザインに組み合わせループが存在する
    • デザインへのプライマリ入力がソースとなるフリップフロップおよび SRL にセット/リセット信号が使用されている
    • データパス フリップフロップに非同期セット/リセット信号が使用されている
    • デザインに多数のクロック ドメインがあり、クロック ドメインをまたがっているためにイネーブルが生成されない
    • SRL のサイズ: SRL のシフト レジスタの段数が多いほど、すべての段に対して 1 つのクロック イネーブルを生成するのが困難になります。
  • ブロック RAM

    ブロック BRAM が多数使用されるデザインでは、消費電力を大きく削減できる可能性があります。Vivado では、さまざまな最適化手法を使用してイネーブルを生成し、消費電力を削減します。power_opt_design を使用してもブロック RAM ゲーティングがそれほど適用されない場合は、次のような原因が考えられます。

    • ブロック RAM が主に FIFO18/FIFO36 セルである。これらのインスタンスはツールで最適化できません。
    • 推論またはインスタンシエートされたメモリが、A ポートと B ポートに非同期クロックを使用する完全なデュアル ポート (TDP) モードであり、power_opt_design で最適化できない。
    • ブロック RAM 自体、またはブロック RAM に供給されるアドレス/ライト イネーブル フリップフロップに非同期リセットが使用されている。