case - usadas - vhdl when structure
Caso VHDL/Cuándo: casos múltiples, cláusula única (2)
Puede separar varias opciones con el símbolo de "tubo" o barra. La sintaxis adecuada para su ejemplo es:
CASE res IS
WHEN "00" | "01" => Y <= A;
WHEN "10" => Y <= B;
WHEN "11" => Y <= C;
WHEN OTHERS => Y <= ''X'';
END CASE;
Dentro de un proceso tengo algo como esto:
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;
Tenga en cuenta que el caso "00"
y "01"
obtienen el mismo valor. ¿Hay una sintaxis correcta para algo como
WHEN "00", "01" =>
?
Nota adicional: hay mucho más en esto que el cambio de Y, simplemente lo usé por simplicidad. Así que el caso / cuándo es necesario.
También puede dar una gama de opciones para un caso:
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;