There are a few notable differences between UltraRAM and block RAM to consider, as follows:
- The UltraRAM only has one clock, so while true dual port operation is supported, both ports are synchronous to each other.
- The aspect ratio of the UltraRAM is not configurable like block RAM, it is always configured as 4 K x 72.
- The resets on the output registers can only be reset to 0.
- The write modes (
read_first
,write_first
,no_change
) do not exist in this primitive. The regular UltraRAM behaves likeno_change
; however, if you describeread_first
orwrite_first
in RTL, the Vivado synthesis creates the correct logic. - Finally, the
INIT
for RAM does not exist, the UltraRAM powers up in a 0 condition.