The address bus selects the memory cells for read or write. When used as SDP memory, the ADDRA port is the RDADDR and the ADDRB port is the WRADDR. The data bit width of the port determines the required address bus width for a single RAMB18E2 or RAMB36E2, as shown in Table 1 to Table 4.
| Port Data Width | Port Address Width | Depth | ADDR Bus |
DIN Bus DOUT Bus |
DINP Bus DOUTP Bus |
|---|---|---|---|---|---|
| 1 | 14 | 16,384 | [13:0] | [0] | NA |
| 2 | 13 | 8,192 | [13:1] | [1:0] | NA |
| 4 | 12 | 4,096 | [13:2] | [3:0] | NA |
| 9 | 11 | 2,048 | [13:3] | [7:0] | [0] |
| 18 | 10 | 1,024 | [13:4] | [15:0] | [1:0] |
| Port Data Width 1 | Alternate Port Width | Port Address Width | Depth | ADDR Bus |
DIN Bus DOUT Bus |
DINP Bus DOUTP Bus |
|---|---|---|---|---|---|---|
| 32 | 1 | 14 | 16,384 | [13:0] | [0] | NA |
| 32 | 2 | 13 | 8,192 | [13:1] | [1:0] | NA |
| 32 | 4 | 12 | 4,096 | [13:2] | [3:0] | NA |
| 36 | 9 | 11 | 2,048 | [13:3] | [7:0] | [0] |
| 36 | 18 | 10 | 1,024 | [13:4] | [15:0] | [1:0] |
| 36 | 36 | 9 | 512 | [13:5] | [31:0] | [3:0] |
|
||||||
| Port Data Width | Port Address Width | Depth | ADDR Bus |
DIN Bus DOUT Bus |
DINP Bus DOUTP Bus |
|---|---|---|---|---|---|
| 1 | 15 | 32,768 | [14:0] | [0] | NA |
| 2 | 14 | 16,384 | [14:1] | [1:0] | NA |
| 4 | 13 | 8,192 | [14:2] | [3:0] | NA |
| 9 | 12 | 4,096 | [14:3] | [7:0] | [0] |
| 18 | 11 | 2,048 | [14:4] | [15:0] | [1:0] |
| 36 | 10 | 1,024 | [14:5] | [31:0] | [3:0] |
| 1 (Cascade) | 16 | 65,536 | [15:0] | [0] | NA |
| Port Data Width 1 |
Alternate Port Width |
Port Address Width |
Depth | ADDR Bus |
DIN Bus DOUT Bus |
DINP Bus DOUTP Bus |
|---|---|---|---|---|---|---|
| 64 | 1 | 15 | 32,768 | [14:0] | [0] | NA |
| 64 | 2 | 14 | 16,384 | [14:1] | [1:0] | NA |
| 64 | 4 | 13 | 8,192 | [14:2] | [3:0] | NA |
| 72 | 9 | 12 | 4,096 | [14:3] | [7:0] | [0] |
| 72 | 18 | 11 | 2,048 | [14:4] | [15:0] | [1:0] |
| 72 | 36 | 10 | 1,024 | [14:5] | [31:0] | [3:0] |
| 72 | 72 | 9 | 512 | [14:6] | [63:0] | [7:0] |
|
||||||
For block RAMs used as SDP memories, the port name mapping is listed in the following table. Figure 6: RAMB36 Usage in a Simple Dual-Port Data Flow shows the SDP data flow.
| RAMB18E2 Used as SDP Memory | RAMB36E2 Used as SDP Memory | ||
|---|---|---|---|
| X36 Mode (Width = 36) | X18 Mode (Width ≤ 18) | X72 Mode (Width = 72) | X36 Mode (Width ≤ 36) |
| DIN[15:0] = DINADIN[15:0] | DIN[15:0] = DINBDIN[15:0] | DIN[31:0] = DINADIN[31:0] | DIN[31:0] = DINBDIN[31:0] |
| DINP[1:0] = DINPADIN[1:0] | DINP[1:0] = DINPBDINP[1:0] | DINP[3:0] = DINPADIN[3:0] | DINP[3:0] = DINPBDINP[3:0] |
| DIN[31:16] = DINBDIN[15:0] | DIN[63:32] = DINBDIN[31:0] | ||
| DINP[3:2] = DINPBDINP[1:0] | DINP[7:4] = DINPBDINP[3:0] | ||
| DOUT[15:0] = DOUTADOUT[15:0] | DOUT[15:0] = DOUTADOUT[15:0] | DOUT[31:0] = DOUTADOUT[31:0] | DOUT[31:0] = DOUTADOUT[31:0] |
| DOUTP[1:0] = DOUTPADOUTP[1:0] | DOUTP[1:0] = DOUTPADOUTP[1:0] | DOUTP[3:0] = DOUTPADOUTP[3:0] | DOUTP[3:0] = DOUTPADOUTP[3:0] |
| DOUT[31:16] = DOUTBDOUT[15:0] | DOUT[63:32] = DOUTBDOUT[31:0] | ||
| DOUTP[3:2] = DOUTPBDOUTP[1:0] | DOUTP[7:4] = DOUTPBDOUTP[3:0] | ||