RAMB 出力でのクリティカル ロジックの改善 - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: デザイン解析およびクロージャ テクニック (UG906)

Document ID
UG906
Release Date
2022-05-04
Version
2022.1 日本語

次のテスト ケースでは、マクロ (ブロック RAM) をデスティネーション レジスタの近くに配置するなど、再構成することによりクリティカル パスを改善しています。

次の図に、16:1 マルチプレクサーを示します。マルチプレクサーの 1 つの入力はブロック RAM から供給され、残りの入力はレジスタから供給されます。

クリティカル パス: ブロック RAM -> 2 ロジック段 -> フリップフロップ

図 1. ブロック RAM の出力に接続されているマルチプレクサー

次の図では、ブロック RAM からフリップフロップまでのクリティカル パスを赤色でハイライトしています。ロジック段数は、ブロック RAM からフリップフロップ、フリップフロップからフリップフロップのどちらも 2 です。ブロック RAM のクロックから Q までの遅延の方が大きいため、ブロック RAM からフリップフロップまでがクリティカル パスになります。

図 2. RAMB-LUT-FF のクリティカル パス

次に、次の RTL コードを見て、ロジックを再構成できないかを考えます。

図 3. RTL コードの抜粋

上記のコードで 16:1 マルチプレクサーを 2 つのマルチプレクサーに分割するのが、このロジックを再構成する最適な方法です。次の図に示すように、値 4'd5 を選択する条件をコメントアウトして、2:1 マルチプレクサーのイネーブル条件として使用します。このカスケード マルチプレクサー構造を作成することにより、フリップフロップからフリップフロップのパスのロジック段数は 3 になりますが、ブロック RAM からフリップフロップのパスのロジック段数は 1 に減ります。RAMB の配置は LUT およびフリップフロップの配置よりも困難であるため、このようにブロック RAM からフリップフロップのパスを改善することで、ダウンストリーム ツールでより良い配置を達成しやすくなります。一般的に、RAMB、URAM、DSP などのマクロ プリミティブ周辺に長いパスが少ないほうが、デザインの QoR は向上します。

図 4. RAMB 出力のロジック段数を削減するためのカスケード マルチプレクサー構造