基础4.2I-如果块语句结构在ABEL状态机赋值中使用{,},则生成不正确的方程。-Xilinx-AMD社区-FPGA CPLD-ChipDebug

基础4.2I-如果块语句结构在ABEL状态机赋值中使用{,},则生成不正确的方程。

描述

关键词:Xabel,ABEL,.abl,状态机,GOTO,状态方程,不正确

紧迫性:标准

一般描述:
当我使用{,}来封装状态方程时,忽略了赋值。

例如

状态图
异步复位状态:CLR;

国家状态:如果!(a b b)然后初始化;
否则,如果(a)则{Goto Stiste1;}
否则{GOTO STATE2;}
州政府一:GTO to NITTHEAT;
州政府2:GTO to NITTHATE;

上面所述的简单状态机将产生下列方程:

“状态1=(iNITS.Q);
“状态2=(iNITS.Q);

代替这些期望的方程:

“Std.
“状态2=(iNATS.Q &!)!A、B);

解决方案

根据ABEL语法,编译器正在寻找一个单一的状态方程,例如“STATE1”或“GOTO STATE1”。因为{,}的使用指示包含多个语句,所以它们在ABEL语法中没有意义。

当{,}不被使用时,ABEL码将编译正确的方程。当包含{ }时,将忽略附加到语句的条件。

如果状态机必须用某些寄存器集转换到下一个状态,则应该使用“带”语句。

(对语法检查器提出了增强请求,以便在{ } s与状态方程结合使用时报告错误或警告)。

请登录后发表评论

    没有回复内容