Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
13 years ago

Why embedded memory and not free space to make a custom one?

Hello people,

I was wondering why do FPGAs (like Cyclone IV) have separate on-chip embedded memory? Isn't it the same as custom FPGA code that implements a memory?

Thanks

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    They are indeed different.

    On-chip memory is a true sram memory embedded into the fpga silicon mask.

    This is dedicated hardware, then is space and speed optimized.

    Like any sram, you can access a single memory cell at a time (actually 2, since it's a dual port ram)

    On the other hand custom memory implemented with arrays of LEs wastes a lot of FPGA

    resources because you are using only the memory capabilities of LEs, thus discarding

    most LUTs and routing resources. Moreover LEs are not optimized for storage, so you would have far far less memory bits per device if compared to on-chip ram.

    Unlike on-chip ram, with this distributed memory you are virtually able to see every memory bit at the same time.

    As a rule of thumb, custom distributed memory is convenient when you need a small amount of memory.

    Infact a major drawback of on-chip memory is that you need to waste a full memory block, even if you need only a few memory cells.