There are a few notable differences between UltraRAM and block RAM to consider, as follows:
- UltraRAM provides only one clock. Although it supports true dual-port operation, both ports share that clock and operate synchronously.
- Unlike block RAM, you cannot configure the UltraRAM aspect ratio. It is always configured as 4K 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_firstorwrite_firstin RTL, the Vivado synthesis creates the correct logic. - Finally, the
INITfor RAM does not exist, the UltraRAM powers up in a 0 condition.