[Actel FPGA] 状态机中的状态编码需要小心

[复制链接]
2214|0
 楼主| 蹦蹦车 发表于 2009-3-20 10:26 | 显示全部楼层 |阅读模式
我写了一段代码,主要实现的是状态机各个状态之间的相互转化<br /><br />这段代码在quartusII5.0下编译成功且下载到板子了后用signaTapII调试的结果完全正确<br /><br />可是用QuartusII6.0编译后出现Warning:case&nbsp;item&nbsp;is&nbsp;ignored......blala......<br /><br />网上给出来的信息说:<br /><br />CAUSE:&nbsp;In&nbsp;a&nbsp;Case&nbsp;Statement&nbsp;at&nbsp;the&nbsp;specified&nbsp;location&nbsp;in&nbsp;a&nbsp;Verilog&nbsp;Design&nbsp;File&nbsp;(.v),&nbsp;you&nbsp;specified&nbsp;a&nbsp;case&nbsp;item&nbsp;expression&nbsp;that&nbsp;has&nbsp;more&nbsp;significant&nbsp;bits&nbsp;than&nbsp;the&nbsp;number&nbsp;of&nbsp;bits&nbsp;in&nbsp;the&nbsp;case&nbsp;expression&nbsp;that&nbsp;it&nbsp;is&nbsp;being&nbsp;compared&nbsp;against.&nbsp;As&nbsp;a&nbsp;result,&nbsp;the&nbsp;case&nbsp;item&nbsp;expression&nbsp;can&nbsp;never&nbsp;apply,&nbsp;and&nbsp;is&nbsp;ignored&nbsp;by&nbsp;the&nbsp;Quartus&nbsp;II&nbsp;software<br /><br />仔细思考后觉得应该是我的状态机中的状态编码有问题:<br /><br />我原来用的是自然数编码,<br /><br />也IDLE=0,STATE1=1,STATE2=2,STATE3=3,STATE4=4....<br /><br />然后把状态编码改写成:<br /><br />IDLE=0,STATE1=1,STATE2=2,STATE3=4,STATE4=8.....<br /><br />编译的结果显示这个Warning消失了。<br /><br />以后对状态机的编码要小心了<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部