subtype tmp is std_logic_vector(15 downto 0); type memory_array is array(integer range 0 to 127, integer range 0 to 15) of tmp;
I just first got the picture of just two dimentional array.
so one example could be
16 bit array
subtype elements is std_logic_vector(15 downto 0);
type 16bit_array is array (0 to 127) of elements;
signal arr : 16bit_array ;
then accesssing the array element could be done by
arr(0) will get first row of 16 bits or one word.
IF it is complicated then for Multidimentional array one can use records and array of records to avoid confusion.
all the best
TYPE track IS ARRAY(0 TO 17) OF BIT; TYPE side IS ARRAY(0 TO 79) OF track; TYPE disk IS ARRAY(0 TO 1) OF side;
TYPE 3d_array IS ARRAY (0 TO 1, 0 TO 79, 0 TO 17) OF BIT;