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