The UltraRAM (URAM) supports pipelining registers into the RAM. This becomes especially useful when multiple UltraRAMs are used to create a very large RAM. To fully pipeline the RAM, you must add extra registers to the RAM output in RTL. To calculate the number of pipeline registers to use, add together the number of rows and columns in the RAM matrix.
The synthesis log file has a section about URAMs and how many rows and columns are used to create the RAM matrix. You can use this section to add pipeline registers in the RTL.
To calculate the number of rows and columns of the matrix yourself, remember that the UltraRAM is configured as a 4 K x 72.
To calculate the number of rows, take your address space of the RAM in RTL and
divide by 4 K. If this number is higher than the number specified by CASCADE_HEIGHT
, remove the extra RAMs, and start them on a
new column in the log.