今天聊一聊有限状态机的知识,也许你会觉得这个很枯燥,直接拿来用就好了,但是我要说的是:只有有了扎实的理论基础才会有fpga设计思想,想想自己能够编写一个大型的代码吗?如果不能,那就是我们还没有学会fpga真正的设计思想。fpga编程确实很难,只有扎实的基础,再加多的训练才会拥有fpga设计思想这个技能。好了,废话不多说了,现在开始:
1、有限状态机FSM:简单的说,就是通过不同的状态迁移来完成一些特定的顺序逻辑。硬件的并行性决定了用verilog描述的硬件实现都是并行执行的,那么如果希望分多个时间完成一个任务,因此就提出了有限状态机的思想。用于描述各种复杂的时序行为。
它的基础为有限自动机FA,有它延伸出来的理论模型有:序列机SM,线性序列机LSM,以及算法机ASM还有ASMD。实际工程中这几种或单独或组合应用,所以又是广义的将上述所有的状态统称为FSM。用于FSM的规划工具以状态转移图STG和算法流程图ASMc应用最多,在LSM情况下,也可以用SMF表规划。
2、摩尔机(Moor)、米利机(Mealy)
(1)当电路的输出仅仅与状态S有关时,所描述的模型R=F(s)成为摩尔型状态机;