I am working on Xilinx virtex 4 FPGA. I want to store some filter coefficients in Block RAMs.
Specifically, I have many sets of filter, each set having 64 coefficient, each coefficient is of 18 bits. Each set has to be mapped on a distinct Block RAM.
From the Virtex 4 user guide (link to pdf), it says a Block RAM stores 18Kbits of data which can be configured in any “aspect ratio” from 16Kx1, 8Kx2, to 512x36.
So, if I program the Block RAM to have 512 coefficients, then I have 36 distinct Block RAMs at my disposal.
My question is, can I scale this aspect ratio down so that I program the Block RAM to store 64 coefficients, in which case I will have 288 distinct Block RAMs at my disposal(64 x 288 = 18K)?
If the answer is NO, then how should I store my coefficients so as to use minimum Block RAM resources?