状态机
也称为同步有限状态机,之所以说“同步”,是因为状态机中所有的状态跳转都是在时钟的作用下进行的,而“有限”则是说状态的个数是有限的。状态机根据影响输出的原因分为两大类,即Moore型状态机和Mealy型状态机,其共同点是状态的跳转都只和输入有关。区别主要是在输出时:若最后的输出只和当前状态有关而与输入无关,则称为Moore型状态机;若最后的输出不仅和当前状态有关,还和输入有关,则称为Mealy型状态机。状态机是时序逻辑电路中非常重要的一个应用,在大型复杂系统中使用较多。
状态机的每一个状态代表一个事件,从执行当前事件到执行另一事件这一过程称为状态的跳转或状态的转移,我们需要做的就是执行该事件,然后跳转到下一个事件,这样我们的系统就“活”了,可以正常运转了。有研究显示状态机可以描述除相对论和量子力学以外的任何事情,但特别适合描述那些发生有先后顺序或时序规律的事情。在数字电路系统中,小到计数器,大到微处理器,都可以用状态机来描述。
一
假设自动售货机只能接受1元和5角的硬币,而售货机中只有2.5元一瓶的可乐。
有3个按键:第一个是复位按键;第二个是5角按键,按下表示顾客投入5角硬币;第三个是1元按键,按下表示顾客投入1元硬币。当顾客投入5角硬币的时候,开发板点亮一个灯;当顾客投入1元硬币的时候,开发板点亮2个灯;当顾客投入1.5元硬币的时候,开发板点亮3个灯;当顾客投入2元硬币的时候,开发板点亮4个灯;当顾客投入2.5元硬币的时候,开发板4个灯进行为时5秒的单向流水操作,表示此时正在出货,不找零钱;当顾客投入3元硬币的时候,开发板4个灯进行为时5秒的双向流水操作,表示此时正在出货,也找零钱,