什么时候用状态机?
时间:10-02
整理:3721RD
点击:
在一些情况下,不用状态机也可以,用状态机也行,那我们到底是用状态机呢还是不用呢?有什么判断标准吗?
其实,逻辑稍微复杂一点的时候,你感觉有点理不清的时候,就可以用状态机了。
用了状态机,反倒会觉得思路没那么混乱了,虽然写的时候麻烦一些。
因此,不要怕麻烦。
我说一下我的感觉,希望有大牛来拍砖。
用状态机思路会很清晰,写代码的速度也会提高,但有时要用二三十个状态导致状态位有5bit之多;
用状态机好像不利于综合时clock gate的插入。
状态机要一分为二看,一方面可以简化设计思路,有些太过复杂的不用状态机几乎很难实现;另一方面,状态机考虑不周,或者约束不好,一旦进入不可恢复态,则死在那里,只能复位解决
学习了
其实最重要的就一点,代码写出来是给人读的,只要每个人都看得懂,随便哪种写法都可以。
其实呢,涉及阻塞式顺序操作,你无论用不用状态机,其实实现出来的电路都差不多,用状态机的好处是某些复杂思维可以很明显展示出来,例如先读取到有信息,再从相关缓存里取数据这种,这2部操作,不用状态机会导致代码不易读,维护起来也蛋疼,如果让人接手就更无语了;
但是类似一个计数器的开始与停止,完全可以用一个enable信号去控制,你可以理解为这个enable也是个2态fsm,只是不用常用fsm写法去写,别人也能轻易看懂这个意思,这种就没必要用fsm写法去做;
至于n段式状态机,那个和应用无关,只是fsm的电路实现形式而已,通常用3段式,会让电路性能优越一些;
