Forum Discussion

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

More M9ks used as expected

Hello,

I got a Problem with the RAM (M9k) usage. When I use a sigle Port RAM with 2048 Words a 64bits then I would expect 131072 bits. That is o.k., the Fitter tells me a usage of this 131072 bits, but he uses 16 M9kBlocks for this RAM. Why? In my calculation there are 131072 bits / 9216 bits = 14,222 => 15 M9Ks. In a bigger Memory where I expected 58 M9Ks to be used the Fitter uses 64 M9Ks. Can anybody tell me why and what can I do to reduce the RAM usage? Is it possible to use one M9k for multiple RAMs / FIFOs (for example 2 * 256 Bytes FIFO)?

Paddy

2 Replies

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

    The M9K is structured as a 9 bit wide memory so for your 64 bits wide ram you need it to be 7.111 M9Ks wide which of course you have to round up to 8 and to give you a depth of 2048 you need it to be 2 M9Ks deep which gives you 16 M9Ks.

    Basically it isn't just 9K bits that you can arrange however you want.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    The documentation that I saw actually uses 9 bits per byte so the 64 bit words actually use 72 bits, therefore using bits to calculate block usage does not work. An M9k holds 256 x 32 or 256 x 36 for example.