有限状态机FSM(Finite State Machine)是一种时序电路,是数字系统中实现高效率可靠性逻辑控制的重要方法。标准状态机可分为摩尔型Moore和米利型Mealy两种类型。Mealy状态机的输出是当前状态和输入信号的函数。在本设计中,对编码器输出信号进行计数,采用的计数器是双向计数器,既与当前编码器所处于的电平组合有关,又与前一个状态有关。因此本设计采用Mealy状态机。Mealy状态机比Moore状态机在状态切换时提前一个同步时钟, 因而具有较高的实时性。A、B两相信号转换状态如图3所示[4]。
硬件采用Altera公司的Cyclone系列FPGA芯片EP1C12Q240,编译环境为Quartus II 5.1集成开发环境。在Quartus II的开发环境中,可以通过两种方法来实现Mealy有限状态机。第一采用硬件描述语言,第二通过Quartus II中的状态机编辑工具来完成。本设计采用硬件描述语言来实现状态机设计。