初学者对有限状态机(FSM)的设计的认识
有限状态机(FSM)是一种常见的电路,由时序电路和组合电路组成。设计有限状态机的第一步是确定采用Moore状态机还是采用Mealy状态机。(Mealy型:状态的转变不仅和当前状态有关,而且跟各输入信号有关;Moore型:状态的转变只和当前状态有关)。从实现电路功能来讲,任何一种都可以实现同样的功能。但他们的输出时序不同,所以,在选择使用那种状态机时要根据具体情况而定,在此,把他们的主要区别介绍一下:
1. Moore状态机:在时钟脉冲的有限个门延时之后,输出达到稳定。输出会在一个完整的时钟周期内保持稳定值,即使在该时钟内输入信号变化了,输出信号也不会变化。输入对输出的影响要到下一个时钟周期才能反映出来。把输入和输出分开,是Moore状态机的重要特征。
2. Mealy状态机:由于输出直接受输入影响,而输入可以在时钟周期的任一时刻变化,这就使得输出状态比Moore状态机的输出状态提前一个周期到达。输入信号的噪声可能会出现在输出信号上。
3. 对同一电路,使用Moore状态机设计可能会比使用Mealy状态机多出一些状态。
根据他们的特征和要设计的电路的具体情况,就可以确定使用那种状态机来实现功能。一旦确定状态机,接下来就要构造状态转换图。现在还没有一个成熟的系统化状态图构造算法,所以,对于实现同一功能,可以构造出不同的状态转换图。但一定要遵循结构化设计。在构造电路的状态转换图时,使用互补原则可以帮助我们检查设计过程中是否出现了错误。互补原则是指离开状态图节点的所有支路的条件必须是互补的。同一节点的任何2个或多个支路的条件不能同时为真。同时为真是我们设计不允许的。
在检查无冗余状态和错误条件后,就可以开始用verilog HDL来设计电路了。
- 基于STM32的FSMC接口驱动TFT彩屏的设计方案(02-08)
- 使用ModelSim自动生成状态机FSM的状态转换图(02-10)
- 基于有限状态机在LIN总线开发中的应用(03-20)
- FPGA工程师:如何在FPGA中实现状态机?(03-01)
- 基于状态机的LCD多级菜单设计方案(06-25)
- 利用状态机的状态机实现层次结构化设计(02-11)