在VHDL中编程时,你能在case语句中使用变量吗?该变量将由其中一个案例
修改即
case task is
when 1 =>
when 2 =>
when number =>
这样可以吗?
答案 0 :(得分:3)
用于模拟还是合成?
无论哪种方式,来自documentation:
选项必须是与表达式相同的离散类型的常量。
使用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
语句合成为比较器和双输入多路复用器。一个进入另一个。