VHDL 为一个信号分配多个值

VHDL Assigning Multiple Values to One Signal

Process(CLK,Clr,Set)
begin
    if Clr = '1' then Q <= '0';
    elsif Set = '1' then Q <= '1';
    elsif CLK'event and CLK <= '0' then Q <= D;
    end if;
end process;

如果 Clr = Set = '1' 会发生什么? Q值是多少?

"if - elsif"是一个优先结构。执行解析为 TRUE 的第一个备选方案。所有其他的都被跳过。

Blockquote What happens if Clr = Set = '1'? What is the value of Q?

由于 Clr 在您的代码中排在首位,因此 Q 将变为“0”。