Hi, I want to use an FPGA for a project but I was wondering which FPGA to pick. I know the memory usage of my cost-unfriendly blocks in terms of Bytes, but in the datasheets of FPGAs all I see is th...
"...but in the datasheets of FPGAs all I see is the logic cells (which ofc makes sense considering its architecture). I was wondering if there's any way to convert the amount of logic cells into Byte-based memory capacity."
Not accurate. All the data sheets for FPGA devices with memory (virtually all these days) list the number of memory blocks (which may be of sizes like 4Kb, 9Kb, 10kb, etc per block) and the number of logic cells on the device. For example, for Cyclone V:
for each device the number of logic elements and the number of memory cells (of 10Kb capacity) are called out.
For most modern devices the memory cells and logic cells are independent. Using logic cells for memory is very inefficient and only makes sense for very small memory arrays (like in the 16 to 64bit range). The dedicated memory blocks are the way to efficiently implement memory on the device.
...Using logic cells for memory is very inefficient and only makes sense for very small memory arrays (like in the 16 to 64bit range). The dedicated memory blocks are the way to efficiently implement memory on the device...
I believe this is not right, the MLAB (memory logic array blocks) row should correspond to that if I'm not mistaken. But I still don't understand why we can't use the rest of the logic elements as MLAB memory. In the table you posted MLAB only adds around 10-15% more memory units, or why we have separate MLAB blocks instead of having less but larger arrays..
From the Cyclone V User Manual. MLAB blocks reuse ALM logic blocks as memory. They are by design smaller memories as they are designed to function as either a logic cell ALM or a memory cell MLAB. Each MLAB is 640 bits, organized as 32x20 bits using up to 10 32x2 bit slices. See the description below. So if you need a small register array or small single port memory an MLAB suffices. But for larger memory needs or dual port functionality the M10K (for Cyclone V) has much larger capacity. But it is dedicated memory. Use it or lose it.
Me thinks you should download a few device user guides and read them to understand the detailed device implementation issues.