package package_functions is
signal array_depth , array_width : positive ;
type generic_array is array ( 0 to array_depth - 1 ) of unsigned ( array_width - 1 downto 0 ) ;
function vector_to_array ( vector : unsigned ; array_width , array_depth : positive ) return generic_array ;
end package package_functions ;
package body package_functions is
function vector_to_array ( vector : unsigned ; array_depth , array_width : positive ) return generic_array is
variable my_array : generic_array := ( others => ( others => '0' ) ) ;
begin
for index in 0 to ( depth - 1 )
loop
my_array ( index ) := my_array ( ( array_width * ( array_depth - array_width ) ) - 1 downto ( ( array_width * array_depth ) - index ) - array_width ) ;
end loop ;
return my_array ;
end function vector_to_array ;
end package body package_functions ;