Vivado 消費電力最適化機能での試行 - 2022.1 日本語

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

Document ID
UG907
Release Date
2022-04-26
Version
2022.1 日本語

Vivado® ツールで消費電力最適化を実行したときに消費電力が最大限に削減されるようにするには、消費電力最適化をデザイン全体に実行し、デザインの一部を除外しないようにします。消費電力最適化を有効にしても消費電力が削減されない場合は、デバッグが必要である可能性がある部分はグローバル セット/リセット信号、ブロック RAM イネーブル生成、およびレジスタ クロック ゲーティングの 3 つです。これらの部分で消費電力最適化に生成されたイネーブルの数が少ない場合、コードまたは合成およびインプリメンテーションのオプション/プロパティを確認する必要がある可能性があります。

注記: Vivado 消費電力最適化では、消費電力を最大限に削減しながらタイミングへの影響は最小限に抑えますが、場合によってはタイミングが悪化することがあります。この影響を補正する方法は、消費電力最適化後のタイミングの保持を参照してください。
グローバル セット/リセット信号
可能な限り (特にデータパス、パイプライン フリップフロップ、ブロック 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 に供給されるアドレス/ライト イネーブル フリップフロップに非同期リセットが使用されている。