Virtex-5/Virtex-6 FPGA のブロック RAM には 36k ビットまでのデータ (RAMB36) を格納でき、2 つの独立した 18k RAM (RAMB18) として構成できます。
各ブロック RAM は、完全なデュアル ポート (TDP)、シンプル デュアル ポート (SDP)、またはシングルポートに設定できます。
TDP モードでは、各 RAMB18/RAMB36 の読み出し幅と書き込み幅は個別に指定できます。
Virtex-5 のブロック RAM を SDP モードで使用する場合は、読み出し幅と書き込み幅を同じにする必要があります。
そのため、Block Memory Generator (IP コア) で RAMB18 の読み出し幅と書き込み幅を異なる値に設定した場合、SDP を選択することはできず、TDP RAMB36 が選択され、BRAM リソースが 2 倍になります。
SDP モードの Virtex-6 ブロック RAM は、1 つのポートの幅をオプションにできます。もう 1 つのポートの幅は、RAMB18 では 36 ビット、RAMB36 では 72 ビットに固定されます。