RAM_STYLE instructs the Vivado synthesis tool on how to infer
memory. Accepted values are:
- block
- Instructs the tool to infer RAMB-type components.
- distributed
- Instructs the tool to infer the LUT RAMs.
- registers
- Instructs the tool to infer registers instead of RAMs.
- ultra
- Instructs the tool to use the AMD UltraScale+™ URAM primitives.
- mixed
- Instructs the tool to infer a combination of RAM types designed to minimize the amount of space that is unused.
- auto
- Lets the synthesis tool decide how to implement the RAM. XPMs mainly use
this value to choose a value for
RAM_STYLE. This is the same as the default behavior. That must choose a value forRAM_STYLE.
By default, the tool selects which RAM to infer based on heuristics that give the best results for most designs. Place this attribute on the array declared for the RAM or a hierarchy level.
- If set on a signal, the attribute affects that specific signal.
- If set on a hierarchy level, this affects all the RAMs in that level of hierarchy. This does not affect the sub-levels of the hierarchy.
You can set this in RTL or XDC.