use unsigned instead of std_logic_vector