Я получаю извне std_logic_vector
с двоичным значением, которое представляет бит, который должен быть установлен на один, а другие на 0. Насколько я понимаю, это декодер, но решение этой проблемы с помощью оператора «когда» займет так много строк кода , плюс его нельзя перенастраивать.
Пример:
signal number : std_logic_vector(7 downto 0);
signal output : std_logic_vector(255 downto 0);
output <= output(to_integer(unsigned(number))) and (others=>'0');