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 に答える