描述
关键词:基础、状态编辑器、线长度、ABEL、BELF
紧迫性:标准
一般描述:
我的状态机有大量的状态;当我在ABEL中生成一个符号状态机时,报告了以下错误:
“逻辑错误1002:源行长度超过150个字符。”
解决方案
一
状态编辑器为设计创建ABEL代码。在ABEL代码中,声明StayeLeX寄存器,然后在一行中列出状态机中的所有状态。如果有大量的状态,这条线将会相当长。
在HDL代码生成期间不执行检查,以确保产生的所有行对于ABEL工具都是合适的长度;因此,可能会产生违反ABEL编译器设置的行长度限制的HDL代码。
当您绘制状态机并选择“综合”时,问题就会显现出来;进程将在上述错误中失败。
解决方案1:
如果状态编辑器没有完全综合设计,则选择综合-GT;HDL代码生成。当提示您查看代码时,选择“是”。然后,在编辑菜单下选择HDL编辑器,不选中“只读”。然后,找出引起问题的线并缩短它。
例如,如果状态名以数字结尾:
Er1,Er2,Er3,Er4,Er5,Er6,开始状态;
变成:
Er1…Er6,开始状态;
保存编辑后的文件,然后从HDL编辑器中综合。
二
如在解决方案1中,使用状态编辑器来生成HDL代码并修改HDL编辑器中的代码;但是不同之处在于,将长状态行拆分为几个较小的状态。
例如:
Er1,Er2,Er3,Er4,Er5,Er6,开始状态;
变成:
Er1、Er2、Er3、Er4状态;
Er5,Er6,开始状态;
保存新的HDL代码,然后使用HDL编辑器执行综合。
三
将状态编码方法从符号转换为二进制。
-选择FSM-GT;机器& GT;“机器名”(其中“机器名”是您希望更改编码风格的状态机)。这将打开“机器属性”对话框。
-在一般tab上,选择编码下的“编码单选按钮”。在列表框中,将样式更改为二进制。
-选择“OK”,然后使用综合-GT;综合,像通常一样创建状态机。
没有回复内容