I'm confused about Virtex-6 BlockRAM.
I want to implement a BRAM with 15 bit address (32,768 words) and 12 bit write and read data per word. When I explore the implemented design, I founded that 12 BlockRAM are used for this. Does this mean each BRAM in a Virtex-6 has 1 bit data?!
What is the data width and capacity of each BlockRAM in a Virtex-6?
Each embedded BlockRAM (RAMB36E1
) has 36 KiBit. It can also be split into two 18 KiBit primitives (RAMB18E1
).
The internal organisation is 1024 × (32+4). 1024 rows with 4 bytes + 4 parity bits.
The BlockRAM macro has a variable layout from 32.768 × 1 up to 512 × 72, which is also depending on the mode: single port, simple dual port or true dual port.
Here is the full list of address to data width ratios:
See:
for more details.
When I explore the implemented design, I founded that 12 BlockRAM are used for this. Does this mean each BRAM in a Virtex-6 has 1 bit data?!
The used area (memory size) is equal to other organizations, but using 12 × (32.768 × 1) doesn't require multiplexers to combine the 12 BlockRAMs. This saves resources and is faster.