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 4Kx72.
°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 like no_change; however, if you describe read_first or write_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.