这一定是 VHDL 新手最常见的问题,但我看不出我在这里做错了什么!这似乎符合我在正确的状态机设计中看到的所有习惯用法。我在 Altera Quartus 9.2 中编译,值得。实际错误是:
“无法推断 [file] [line] 处的“spiclk_out”寄存器,因为它在时钟边沿之外不保持其值”
ENTITY spi_state_machine IS
PORT(
spiclk_internal : IN STD_LOGIC;
reset : IN STD_LOGIC;
spiclk_out : BUFFER STD_LOGIC
);
END spi_state_machine;
PROCESS(spiclk_internal, reset)
BEGIN
IF reset = '1' THEN
spiclk_out <= '0';
END IF;
IF spiclk_internal = '1' AND spiclk_internal'EVENT THEN --error here
spiclk_out <= NOT spiclk_out;
END IF;
END PROCESS;
谢谢你的时间。