Logisim状态机的搭建

有限状态机概述

有限状态机(Finite State Machine,FSM)是表示有限个状态以及这些状态之间的转移和动作(输入)之间关系的离散模型。

有限状态机是组合逻辑寄存器逻辑的特殊组合。组合逻辑部分包括次态逻辑输出逻辑,分别用于状态译码和产生输出信号;寄存器逻辑部分用于存储状态。

FSM常用于时序逻辑电路设计,根据输出信号产生的机理不同,状态机可以分为两类:

摩尔(Moore)型状态机——输出信号仅与当前状态有关;

米里(Mealy)型状态机——输出信号与当前状态及输入信号有关。

所以区分Moore型和Mealy型,我们检查输入In、状态S输出Out之间的关系,对于Moore型状态机,其输出只与当前状态有关,每个S对应一个Out,输入In改变寄存器中的状态;对于Mealy型状态机,输出Out由In和S共同决定。

搭建Moore型电路 

Moore型电路使用一个寄存器储存当前状态,转移电路通过当前状态和当前输入得到次态,输出电路根据当前所处状态得到输出Out,其中转移电路和输出电路都为组合逻辑电路,可以用Combinational Analysis搭建模块电路。

根据状态图在logisim中Combinational Analysis中调整table,使用Splitter的时候要注意高低位的位置,在Splitter中默认高位在下面,所以填充真值表的时候需要注意每个状态的位置。

 搭建Mealy型状态机

前文已经分析Mealy型由当前状态和当前输入共同决定,所以在输出电路中略有不同需要加入当前输入信号的逻辑。

构建状态转移图

Mealy型的状态数比Moore型的状态数少1,假如Moore型有状态(A、B、C、D、E),其中当In= 1时状态D转移到E,而Mealy型仅仅需要4个状态:A、B、C、D,这是因为Moore型状态机输出仅与状态有关,若想输出1就必须形成相应的状态,而对于Mealy型,输出是由状态和输入共同决定的,即如果在前一状态时有相应输入即输出为1,不需要等到下一状态形成。

TIP:最后一个状态转移时不一定回到初态,当进行字符匹配时,如果输入可以与之前的字符形成前缀,应当转移到相应的状态而不是初态。

同步复位与异步复位的实现

若题目要求异步复位,直接使用logisim中寄存器自带的复位即可,即只需把reset信号连至寄存器自带的Clear脚。

若要求同步复位,可使用一个二选一多路选择器,当reset = 0时选择器将选择次态信号,若reset = 1,则选择0进行复位操作。

TIPS:

  • 状态转移、输出逻辑用真值表生成。
  • 寄存器的Q端在时钟信号为0时的值为初态,时钟信号的上升沿更新为次态。
  • Moore输出逻辑只与当前状态有关。
  • Mealy输出逻辑出了当前状态还必须与输入有关。(当前状态值:时钟上升沿是寄存器现有的值,上升沿是状态转移模块的输出值S)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值