|
发表于 2013-10-26 10:25:29
|
显示全部楼层
我这几天就在做类似的问题,前几天我也在论坛上面发帖子问主从状态机的问题,后来我问到别人,又试了一下,简要写下主从状态机的实现方法:<br>
假如主状态机如下(A,B,C,D代表不同的状态):<br>
A---->B----->C------>D------>A<br>
主状态机实现了状态的循环移动,现在我们假设C这个状态下面需要嵌套一个从状态机,假设从状态机如下:<br>
SA----->SB------>SC----->SD-------->SA<br>
在这里面,主状态进入C之后,立即给一个enable信号,启动从状态机,这个时候设置一个从状态机的完成信号finish(高电平有效),在主状态机里面,最开始初始化的时候设置finish为低,然后主状态机里面一直不停的检测这个finish信号,当finish信号为高的时侯,就进入下一个主状态。<br>
再来说从状态机,SA里面首先也作一个不停的检测,即检测enable信号,当检测到enable信号到来的时候,从状态机启动,进入SB,于是从状态机开始工作,等到从状态机运行结束之后,finish信号置高,从状态机完成,从状态机回到SA状态,重新检测下一个enable信号的到来。<br>
这样做的话,就要求enable信号是一个脉冲信号(至于如何实现脉冲信号,我就不多说了)。enable和finish信号仅仅用于连接两个状态机。<br>
最后,我还想说,其实enable和finish似乎可以不用脉冲信号,用电平信号也应该可以,原理大体相同,就开如何置位了。<br>
不知道我说清楚没有 |
|