AR# 34699

|

Block Memory Generator v3.3 - 読み出しおよび書き込みが同時に実行されたときに Spartan-6 ブロック RAM Read First モードのアドレス空間重複 (競合) によりメモリが破損することがある

説明

次の Block Memory Generator コンフィギュレーションと条件のときに、ブロック RAM の競合が発生します。

  • 完全デュアル ポート (TDP) またはシンプル デュアル ポート (SDP) コンフィギュレーション
  • アプリケーションで読み出しと書き込みが同時に実行される
  • ポート A またはポート B のいずれかまたは両方で書き込みモードが Read First に設定されている

ソリューション

上記の条件下では、ポート A および B のアドレスの特定アドレス ビットが一致してメモリの競合が発生しないようにする必要があります。この制限に従わないと、BRAM の動作が不正になります。

  • CLKA と CLKB が異なるクロック (非同期クロック) で駆動されるとき、RAMB8BWER (A12-A6、A4) または RAMB16BWER (A13-A6、A4) はポート A とポート B のアドレスに一致します。
  • CLKA と CLKB が同じクロック バッファーで駆動される場合、または CLKA と CLKB 間のスキューが 100ps 未満の場合は、競合は発生しません。

詳細は、『Spartan-6 FPGA ブロック RAM リソース ユーザー ガイド』 (UG383) の「Conflict Avoidance」 (競合の回避) にある「Asynchronous Clocking」 (非同期クロック) セクションを参照してください。このセクションでは、この問題が次のように説明されています。


READ_FIRST モードでは、デュアル ポート ブロック RAM を使用する場合にポート A と B のアドレスが競合しないようにする必要があります。この制限は、TDP および SDP モードの両方に適用されます。

同じアドレスに対し、1 つのポートで読み出し/書き込み、もう 1 つのポートで書き込みを実行することはできません。この制限を無視することはできません。

両方のポートが 18 ビット幅以下の場合の RAMB16BWER : A13 ~ A6 (A4 を含む) を同じにすることはできません。
どちらかのポートが 36 ビット幅の場合の RAMB16BWER : A13 ~ A7 (A5 を含む) を同じにすることはできません。
すべてのコンフィギュレーションでの RAMB8BWER : A12 ~ A6 (A4 を含む) を同じにすることはできません。


v3.3 より以前のバージョンの Block Memory Generator を使用して Spartan-6 のブロック メモリ デザインを生成している場合は、ISE Design Suite 12.1 に含まれる v4.1 に移行する必要があります。v3.3 Block Memory Generator コンフィギュレーションでの回避策は、次のとおりです。

1. SDP 固定プリミティブ 256x36 が選択されている場合
o ソリューション : コア内部では 512x36 プリミティブが使用されます。
o 影響 : メモリ使用率が 2 倍になります。
2. SDP の 256x36 以外の固定プリミティブが選択されている場合
o ソリューション : 変更はありません。
o 影響 : ありません。
3. SDP 最小エリアまたは低消費電力アルゴリズムが選択されている場合
o ソリューション : コア内部で 256x36 プリミティブは使用されません。
o 影響 : 選択されている幅およびワード数により、メモリ使用率が 2 倍になる場合があります。
4. TDP RF/WF/NC モードが選択されている場合
o ソリューション : 変更はありません。
o 影響 : write_mode= Read First の場合、上記のメモリ競合の問題を考慮する必要があります。
5. マルチプレクサー パイプライン段が使用されるコアでは、CORE Generator フローを使用してコアを生成し直し、マルチプレクサー パイプライン段を選択し直してください。
AR# 34699
日付 06/27/2012
ステータス アクティブ
種類 既知の問題
デバイス
ツール 詳細 概略
IP
People Also Viewed