内部错误:“(CMP)编译器网表提取器中的致命应用程序错误为0%。” (VHDL,State Machine,MAX +PLUS®II)

如果状态机逻辑使用两个状态控制变量(例如, present_statenext_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;
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-08-03 22:11:56 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它