我对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语句是非法的,"输出"有多个来源.有任何想法吗
我认为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)