为什么要用状态机,或者说什么情况下非用状态机不可!

发布: 2017-1-11 18:17 | 作者: rainwerstone | 来源: EETOP 赛灵思(Xilinx) 社区

为什么要用状态机,或者说什么情况下非用状态机不可!
A1985 (2017-1-11 20:30:19)
你不知不觉就会用状态机。。难道你不用计数器?计数器就是广义状态机。
tao2000 (2017-1-11 21:38:30)
只要是时序电路就是状态机,只不过是隐式状态机还是显式状态机
ahua089403 (2017-1-12 07:58:06)
需要按流程/按步骤完成一件任务时就必定用状态机。 因为逻辑本身是并行执行的,要串行完成任务就要设置状态,控制流程 只不过有时不一定写成标准的三段/两段的形式 如楼上说使用计数器控制流程也是状态机的一种形式 流程复杂时,建议写成标准的2/3段式 便于阅读和维护
wangcaibaobao9 (2017-1-12 09:07:27)
学习了
mr.jerk (2017-1-12 11:15:12)
习惯用if写,后来发现写着写着就懵逼了,不如状态机清晰
rainwerstone (2017-1-12 16:00:05)
不觉得不使用状态机效率更高么
ltshan (2017-1-13 08:22:19)
回复 7# rainwerstone 简单的程序 倒不需要套用2/3段状态机,顶多用个计数器就行了。 但复杂些的逻辑,用状态机 会有助于代码比较清晰,容易维护和debug,效率也还不错啊。
rainwerstone (2017-1-13 08:25:53)
回复 8# ltshan 总感觉用了状态机还不如去用单片机,反正都成顺序操作了
schottky163 (2017-1-13 18:24:24)

QUOTE:

习惯用if写,后来发现写着写着就懵逼了,不如状态机清晰 mr.jerk 发表于 2017-1-12 11:15
你会发现if用得多会留下很多坑。而且还很难发现。
西西在冰城 (2017-1-14 15:50:27)
1.状态机实例化成为电路以后结构应该是多路选择器,根据case()括号内状态确定执行什么样子的操作。 2.在用if()状态太多的时候,用case比较清楚,不过发现一个事情,如果不同if()的条件,是可以并行执行的,但是case()就只会选择一个状态执行。 3.我之前也觉得我就这样写逻辑好好的,为什么非要用状态机实现。后来条件多了,果然状态机清楚也方便。 4. Fpag和单片机区别还是明显的,或者说fpga和软件区别还是明显的。不过现在出现SOC架构的,说明他们谁也不能取代谁,各有优势吧。
ltshan (2017-1-16 09:35:14)
回复 9# rainwerstone 写verilog要时常想综合后的电路是怎么样。 要去掉软件痕迹。:)
rainwerstone (2017-1-16 10:31:30)
回复 12# ltshan 同意!!!

网络资源