VHDL でプログラミングする場合、case ステートメントで変数を使用できますか? この変数は、いずれかのケースによって変更されます
すなわち
case task is
when 1 =>
when 2 =>
when number =>
これでよろしいですか?
シミュレーション用ですか、それとも合成用ですか?
いずれにせよ、ドキュメントから:
選択肢は、式と同じ離散型の定数でなければなりません。
次のいずれか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 入力マルチプレクサとして合成されます。一方が他方にフィードします。