Ответ 1
Вы можете отделить несколько вариантов с помощью символа "pipe" или bar. Правильный синтаксис для вашего примера:
CASE res IS
WHEN "00" | "01" => Y <= A;
WHEN "10" => Y <= B;
WHEN "11" => Y <= C;
WHEN OTHERS => Y <= 'X';
END CASE;
Внутри процесса у меня есть что-то вроде этого:
CASE res IS
WHEN "00" => Y <= A;
WHEN "01" => Y <= A;
WHEN "10" => Y <= B;
WHEN "11" => Y <= C;
WHEN OTHERS => Y <= 'X';
END CASE;
Обратите внимание, что случай "00"
и "01"
получает одно и то же значение. Есть ли правильный синтаксис для чего-то вроде
WHEN "00", "01" =>
?
Дополнительная заметка: Намного больше, чем Y, меняя, я просто использовал это для простоты. Таким образом, случай/когда необходимо.
Вы можете отделить несколько вариантов с помощью символа "pipe" или bar. Правильный синтаксис для вашего примера:
CASE res IS
WHEN "00" | "01" => Y <= A;
WHEN "10" => Y <= B;
WHEN "11" => Y <= C;
WHEN OTHERS => Y <= 'X';
END CASE;
Вы также можете предоставить ряд вариантов для случая:
USE IEEE.STD_LOGIC_ARITH.ALL;
CASE CONV_INTEGER(res) IS
WHEN 0 to 1 => Y <= A;
WHEN 2 => Y <= B;
WHEN 3 => Y <= C;
WHEN OTHERS => Y <= 'X';
END CASE;