“使用选择”块中的条件分配

时间:2011-01-28 09:35:55

标签: vhdl

是否可以向'with select'块中的信号添加条件对齐。例如

with state select
    Data <= x"00" when IDLE,
            (x"01" when Count = 0 else x"10") when DATA,
            x"FF" when others;

这不能编译,但是可以在这个块中包含第二个变量吗?

1 个答案:

答案 0 :(得分:1)

简短的回答是否定的。

你可以这样做。

  process (Count, state)
    variable countData : std_logic_vector (7 downto 0);
  begin
    if Count = 0 then
      countData := x"01";
    else
      countData := x"10";
    end if;
    case state is
      when IDLE   => Data <= x"00";
      when DATA   => Data <= countData;
      when others => Data <= x"FF";
    end case;
  end process;