The RAM_DECOMP
attribute instructs the
tool to infer RTL RAMs that are too large to fit in a single block RAM primitive to use
a more power-friendly configuration.
For example, a RAM specified as 2 K x 36 would often be configured as
two 2 K x 18 block RAMs arranged side by side. This is the configuration that yields the
fastest design. By setting RAM_DECOMP
, the RAM would
instead be configured as two 1 K x 36 block RAMs. This is more power-friendly because
during a read or write, only the one RAM with the address being used is active. It comes
at the cost of timing because Vivado synthesis must
use address decoding. The RAM_DECOMP
would force the
second configuration of that RAM.
The value accepted for RAM_DECOMP
is
"power
".
This attribute can be set in either RTL or XDC. Place the attribute on the RAM instance itself.