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.