Combining Distributed RAM and Block RAM

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View

I need to use a memory with 37bits width. If I take a Block RAM
Primitive RAMB16_S36_S36, 36 bits can be utilised for storage (32bits
data + 4bits parity)

But I don't want to instantiate another Block RAM for a Single Bit.

I make it via register array based one. ie., 1 bit memory implemented
via FFs(say for 16 deep, i need 16 Flip-Flops)

I know that, the timings won't match. But it will not be a problem for
me since i am registering the memory output before using it.

Can any one point out any problems if any?

Thanks in advance.


Re: Combining Distributed RAM and Block RAM
muthu (Muthu) wrote in message

Hello Muthu,
You should use the distributed RAM for the extra bit.
There are macros for 16x1, 32x1, 64x1, and 128x1. If you need dual
port RAM, it will cost you twice as many LUTs.
If the depth is not enough, you can easily cascade the macros.

As for the timing, the reading from the distributed RAM is
asynchronous, so you should register it's output to make it's delay
like the BRAM's (That's before the sampling of the entire RAM you said
you are doing before the use of the data).


Site Timeline