I need a 16*8 bit memory in my design. I'm not sure wether it is better to use RAM or implement it with registers. I know that for big memories it is better to use ram because of the area and power. But at the same time, it is advised to not use ram for small values because of the test (mbist) overhead. So, what is decision value? Is ther any role of thumb to say when we should go for ram or registers(file)?
Depends on the size, Registers use max of the area and even the synthsizing and other issues are there(lots of time), For a RAM there are memory compilers where we can use the availaibility. and using ram is almost like an error free design.
I think that it maybe depend on your device ,different device have different Block RAM and Distribute RAM so you can chose which one is best for you design !
In our design flow, picking RAM or FF is decided by a perl script to calculate area. I don't know the detail of the script. The basic idea is one FF is about 6 times larger than one latch, two row of FFs wrapping around RAM input/output, pluse Mbist overhead.
If blindly selecting, deep fifo should use RAM. Less than 16 depth fifo would have less area by using FFs.
it is highly wasteful on area, when the RAM size is small, usually less than 512W, because, the high data bus width, will cause the memory block very large.
maybe, you could turn to register file, if you do concern the power consumption
usually companies have latch or register arrays for small memory sizes (lets say up to 32x32)
those has for example 2+ times smaller area then flops (share some stuff, latches are smaller then flops)
has 1 read and 1 write port usually, or several version with different number of ports
you still need to do BIST on those memories
hi
i just wanted to know one thing.it is prefarrable we go for registers,to improve timing.for improving area as well power,we prefer RAM..am i right??so,based on requirement u choose which suites ur require ment.
If what other people use is any indication of what's best, Atmels processor line has a 32*8 general purpose register file on all of it's AVR micro controllers.