关于状态机状态跳转异常的问题

[复制链接]
6153|5
 楼主| fxwang 发表于 2007-6-16 23:36 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;&nbsp;最近在使用状态机时遇到了一个问题,状态机会不时跳过一些状态执行,或停在一个状态不动。这些情况都是在下载后遇到的,在仿真时并没遇见(也可能是仿真不全)。在状态机跳转条件中有一个FIFO输出的满信号。如果将该信号强制有效,整个状态机工作都十分正常。一旦采用FIFO输出信号,状态机在工作一段时间后就会出错。<br />&nbsp;&nbsp;&nbsp;&nbsp;这个状态机基本是按照摩尔状态机来写的,有部分输出状态返回输入逻辑作为一些状态跳转的条件。状态机编码使用独热码。状态数量不超过20个。<br />&nbsp;&nbsp;&nbsp;&nbsp;我想请教各位,状态机在什么情况下会出现这样的问题。状态机是如何停在一个不会停止的状态(向下一状态跳转没有条件的状态)上的。借此也希望大家能说说对状态机稳定性的看法。
zhang123 发表于 2007-6-17 07:50 | 显示全部楼层

那你fifo输出的形成是不是有不确定性。

  
 楼主| fxwang 发表于 2007-6-17 11:35 | 显示全部楼层

回复zhang123

是的,FIFO何时写满对于状态机来将是未知的。
wd0109 发表于 2007-7-3 08:36 | 显示全部楼层

re

你的状态机里面有输出再引回输入逻辑。如果你的输出有引入锁存器,很可能导致你状态混乱。看看RTL,仔细分析一下程序应该能找到问题根源的。
wesaman 发表于 2007-7-3 19:55 | 显示全部楼层

同步

我好像也遇到过类似问题,建议用同步状态机。状态机的输入最好也与之同步
 楼主| fxwang 发表于 2007-7-22 02:42 | 显示全部楼层

我也认为是同步问题

我用同步的方式确实解决了问题,但对产生的具体原因不太清楚。状态机跳转也是时钟边沿采样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

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