entity repro13 is end; architecture behav of repro13 is type my_arr is array (natural range <>) of bit_vector; procedure assign (signal v : inout my_arr; d : my_arr) is begin v (d'length - 1 downto 0) <= d; end assign; signal s1 : my_arr (2 downto 0)(3 downto 0); begin process variable v0 : my_arr (1 downto 0)(3 downto 0); begin v0 := (x"1", x"2"); s1 <= (x"5", x"4", x"3"); wait for 1 ns; assign (s1, v0); wait for 1 ns; assert s1(2) = x"5"; assert s1(1) = x"1"; assert s1(0) = x"2"; wait; end process; end behav;