4

VHDL でプログラミングする場合、case ステートメントで変数を使用できますか? この変数は、いずれかのケースによって変更されます

すなわち

case task is

when 1 =>

when 2 => 

when number =>

これでよろしいですか?

4

1 に答える 1

3

シミュレーション用ですか、それとも合成用ですか?

いずれにせよ、ドキュメントから:

選択肢は、式と同じ離散型の定数でなければなりません。

次のいずれかifをテストするために使用します。number

if task=number then
  ...
else
  case task is
    when 1 => ...
    when 2 => ...
    when others => ...
  end case;
end if;

また

case task is
  when 1 => ...
  when 2 => ...
  when others =>
    if task=number then
      ...
    else
      ...
    end if;
end case;

あなたの選択は、if task=numberテストの結果を優先するか、テストの結果when ... =>を優先するかによって異なりますか? (たとえば、何らかの理由で、最終的に結果を提供しnumber=1たいwhen 1 =>、または提供したいと思いますか?)if task=number

些細なケースでは、caseステートメントはマルチプレクサとして合成されます。このifステートメントは、コンパレータおよび 2 入力マルチプレクサとして合成されます。一方が他方にフィー​​ドします。

于 2010-04-08T02:56:23.460 に答える