library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; package pkg is type logic_pair_t is record l0 : std_logic; l1 : std_logic; end record; type logic_pair_arr_t is array (natural range <>) of logic_pair_t; type std_logic_arr_params is record init_value : logic_pair_t; len : natural; end record std_logic_arr_params; function init(params : std_logic_arr_params) return logic_pair_arr_t; end package pkg; package body pkg is function init(params : std_logic_arr_params) return logic_pair_arr_t is variable value : logic_pair_arr_t(params.len - 1 downto 0) := (others => params.init_value); begin return value; end function init; end package body pkg;