22

在一个过程中,我有这样的事情:

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 被改变,我只是为了简单起见。所以情况/何时是必要的。

4

2 回答 2

36

您可以使用“管道”或条形符号分隔多个选项。您的示例的正确语法是:

CASE res IS
  WHEN "00" | "01" => Y <= A;
  WHEN "10" => Y <= B;
  WHEN "11" => Y <= C;
  WHEN OTHERS => Y <= 'X';
END CASE;
于 2010-09-14T11:47:31.250 回答
6

您还可以为案例提供一系列选择:

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;
于 2014-10-10T12:19:20.070 回答