用 VHDL 编程时,可以在 case 语句中使用变量吗?此变量将被其中一种情况修改
IE
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
语句综合为一个比较器和两输入多路复用器。一个喂另一个。