Combining Distributed RAM and Block RAM

Hi,

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.

Regards, Muthu

Reply to
Muthu
Loading thread data ...

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).

Gilad.

Reply to
Gilad Cohen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.