Vivado synthesis supports VHDL multi-dimensional array types.
Recommended: Although there is no restriction on the
number of dimensions, describe no more than three dimensions.
Objects of multi-dimensional array type can be passed to functions and used in component instantiations. Objects of multi-dimensional array type that you can describe are signals, constants, and variables.