消費電力とパフォーマンスのバランスを取るためのワード数の多いメモリの分解 - 2022.1 日本語

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

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

ワード数の多いメモリ コンフィギュレーションの場合、合成属性 RAM_DECOMP を使用すると、メモリ構成を改善して消費電力を削減できます。この属性は RTL で設定できます。RAM_DECOMP 属性がメモリに適用されると、深くて狭いコンフィギュレーションではなく、幅の広いコンフィギュレーションで設定されます。

CASCADE_HEIGHT 属性と一緒に RAM_DECOMP 属性を使用すると、合成の推論の粒度がより細かくなり、消費電力とパフォーマンスのバランスが調整されます。この方法には、アドレス デコード ロジックが追加で必要となりますが、ブロック RAM の数は削減され、消費電力が削減しやすくなります。次の図のメモリ コンフィギュレーション (32 × 16K) は、RAM_DECOMP および CASCADE_HEIGHT 属性を設定した場合にメモリがどのように分解されるかを示しています。

図 1. 32 × 16K メモリ コンフィギュレーション

属性 RAM_DECOMP = power、CASCADE_HEIGHT = 4 が適用される場合、16 個の RAMB36E2 が推論され、メモリが次の図のように分解されます。

図 2. RAM_DECOMP および CASCADE_HEIGHT 属性を使用して生成された 32 × 16K メモリ コンフィギュレーションの構造

ここで使用される基本プリミティブは 32 × 1K で、4 つのブロック RAM がビルトイン機能を使用してカスケードされて、32 × 4K コンフィギュレーションが作成されています。このような並列構造 4 つでワード数が 16K のメモリが作成されます。これらの出力がマルチプレクサーで結合され、出力データが作成されます。

図 3. RAM_DECOMP および CASCADE_HEIGHT 属性を使用した 32 × 16K メモリ コンフィギュレーションの RTL コード部分

次の図のように、RAM_DECOMP = power 属性だけが使用されると、16 個の RAMB36E2 が推論され、メモリが次の図のように構成されます。

図 4. RAM_DECOMP 属性を使用して生成された 32 × 16K メモリの構造

ここで使用される基本プリミティブは 32 × 1K で、8 つのブロック RAM がビルトイン機能を使用してカスケードされて、32 × 8K コンフィギュレーションが作成されています。このような並列構造 2 つでワード数が 16K のメモリが作成されます。これらの出力がマルチプレクサーで結合され、出力データが作成されます。マルチプレクサーは 2:1 MUX です。

図 5. RAM_DECOMP 属性を使用した 32 × 16K メモリ コンフィギュレーションの RTL コード部分

全体的な消費電力の節電量は、任意の時点でアクティブなブロック RAM が 1 つだけなので、図 2 および図 4 のメモリ構成両方の例で類似していますが、パフォーマンスの点では、4 レベルの深さのカスケード ブロック RAM チェーン (図 2) の方が 8 レベルの深さのカスケード ブロック RAM チェーン (図 4) よりも優れています。