VHDL中的案例陈述

时间:2010-04-08 02:51:13

标签: case vhdl

在VHDL中编程时,你能在case语句中使用变量吗?该变量将由其中一个案例

修改

case task is

when 1 =>

when 2 => 

when number =>

这样可以吗?

1 个答案:

答案 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语句合成为比较器和双输入多路复用器。一个进入另一个。