打印
[Actel FPGA]

状态机中的状态编码需要小心

[复制链接]
1549|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蹦蹦车|  楼主 | 2009-3-20 10:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写了一段代码,主要实现的是状态机各个状态之间的相互转化

这段代码在quartusII5.0下编译成功且下载到板子了后用signaTapII调试的结果完全正确

可是用QuartusII6.0编译后出现Warning:case item is ignored......blala......

网上给出来的信息说:

CAUSE: In a Case Statement at the specified location in a Verilog Design File (.v), you specified a case item expression that has more significant bits than the number of bits in the case expression that it is being compared against. As a result, the case item expression can never apply, and is ignored by the Quartus II software

仔细思考后觉得应该是我的状态机中的状态编码有问题:

我原来用的是自然数编码,

也IDLE=0,STATE1=1,STATE2=2,STATE3=3,STATE4=4....

然后把状态编码改写成:

IDLE=0,STATE1=1,STATE2=2,STATE3=4,STATE4=8.....

编译的结果显示这个Warning消失了。

以后对状态机的编码要小心了

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

106

帖子

0

粉丝