6FH 90H ┊┊┊ A77H 88H 7 表 3.1 二进制与一位热码的特性比较状态机可以认为是组合逻辑和寄存器逻辑的特殊租户,它一般包括两个部分:组合逻辑部分和寄存器逻辑部分。寄存器用于存储状态,组合电路用于状态译码和产生输出信号。状态机的下一个状态及输出,不仅与输入信号有关,而且还有寄存器当前所处的状态有关。根据输出信号产生方法的不同, 状态机可以分成两类:Mealy 型和 Moore 型。 Moore 型状态机的输出只是当前状态的函数,而 Moore 型状态机的输出只是当前状态的函数,而 Mealy 型状态机的输出则是当前状态和当前输入状态的函数。其原理如下两图: 8 3 .2 设计流程本次密码锁的设计,有限状态机应该包括以下状态:密码为输入前的等待状态、输入密码时的等待状态、输入密码正确时的通过状态、输入密码错误时的警报状态。 9 图 3.3 主有效状态机的状态转换图其中当密码输入时又可包括以下状态,正常输入状态、异常输入状态(包括命令状态)、输入确认状态。下面的图(图是在程序编译后, tools->Netlist_Vewers->RTL Vewer 得到的)表示了密码输入的时候的次状态机,表示了 4 个密码输入的顺序状态,以及输入完成后的等待确认状态。图3.4 次有效状态机的状态转换 10 3 .3 系统软件设计总 RTC 级图 3 .4 状态编码状态编码主要有二进制编码、格雷编码和一位独热编码等方式。格雷编码时, 相邻状态每次只有一个比特位产生变化,这样减少了瞬变的次数,也减少了产生毛刺和一些状态的可能。采用一位独热编码,虽然多用了触发器,当可以有效节省和简化组合电路。对于寄存器数量多而逻辑相对缺乏的 FPGA 器件来说,采用一位独热编码可以有效提高电路的速度和可靠性,也有利于提高器件资源的利用率。将产生状态的组合逻辑电路和用于保存状态的寄存器分别写在不同的