1library ieee; 2context ieee.ieee_std_context; 3 4package integer_vector_ptr_pkg is 5 subtype index_t is integer range -1 to integer'high; 6 type integer_vector_ptr_t is record 7 index : index_t; 8 end record; 9 10 impure function get(ptr : integer_vector_ptr_t; index : integer) 11 return integer; 12 13end package; 14 15entity tb_test is 16 generic ( runner_cfg : string ); 17end entity; 18 19use work.integer_vector_ptr_pkg.all; 20 21architecture tb of tb_test is 22 23 constant params: integer_vector_ptr_t := (index => 0); 24 25 type time_t is array (natural range 0 to 1) of natural; 26 27 procedure get_time(variable t: inout time_t) is begin 28 t(0) := get(params, 0); 29 t(1) := get(params, 1); 30 end; 31 32begin 33 34 run: process(all) 35 variable r: time_t; 36 begin 37 get_time(r); 38 end process; 39 40end architecture; 41