【发布时间】:2011-05-13 03:26:35
【问题描述】:
这一定是 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;
感谢您的宝贵时间。
【问题讨论】:
-
也许您需要在
ELSE子句中为spiclk_out分配IF?
标签: vhdl fpga intel-fpga