如果状态机逻辑使用两个状态控制变量(例如,
present_state
和next_state
)但不从一个状态控制变量前进到另一个,则在MAX + PLUS II软件中编译VHDL状态机时可能会收到此错误。
如果present_state <= next_state;
则以下代码生成上述内部错误present_state <= next_state;
线不包括在内。您可以通过确保状态机确实从一个状态前进到另一个状态来避免此错误。
架构a样本IS TYPE STATE_TYPE IS(s0,s1); SIGNAL present_state:STATE_TYPE; SIGNAL next_state:STATE_TYPE; 开始 PROCESS(clk,reset) 开始 IF reset ='1'那么 present_state <= s0; 输出<='1'; ELSIF clk ='0'和clk'event那么 CASE present_state IS 当s0 =>时 输出<='0'; next_state <= s1; 当s1 =>时 输出<='1'; next_state <= s0; 结束案例;
present_state <= next_state; --Error reported if this line is removed
万一; 结束过程; 结束架构a;
没有回复内容