URAM blocks have fixed width of 72-bit, so our storage layout depends on the width of the element.
When the data element has no more than 72 bits, the helper class tries to store as many as possible within 72 bits and pad zeros when some space is left. For example, to store 20k 16-bit elements, two URAMs are used, as each line can store four elements and each URAM has a fixed depth of 4k.
When the data element has more than 72 bits, the helper class uses a line of multiple URAM blocks to store each element. This ensures that that we can initiate an element access during each cycle. Hence, six URAM blocks are required to store 10k 128-bit elements.