if语句在VHDL中

use*_*084 2 vhdl

我对VHDL中的if语句有疑问,请参阅下面的示例;-)

   signal SEQ : bit_vector(5 downto 0); 
signal output: bit; 
    -------

     if(SEQ = "000001") and (CNT_RESULT = "111111") then 
       output<= '1';
      CNT_RESET <= '0';
      else output<='0';
    end if;
Run Code Online (Sandbox Code Playgroud)

我得到:if语句是非法的,"输出"有多个来源.有任何想法吗

son*_*ave 5

我认为if声明不在一个过程中?您只能if在流程中使用语句.对于流程外的类似功能,您可以使用when:

output <= '1' when (SEQ = "000001") and (CNT_RESULT = "111111") else
          '0';

CNT_RESET <= '0' when (SEQ = "000001") and (CNT_RESULT = "111111") else
             '1';
Run Code Online (Sandbox Code Playgroud)