状态机的理解

 状态机的输出可以看出是由组合逻辑实现的,而且判断条件是current_state,也就是当前状态,若是在always块中写成 = ,那就是组合逻辑输出,如果要是写成 <= 形式,就是时序逻辑,其实输出用时序逻辑还是组合逻辑是无所谓的。

时序逻辑的输出必须是寄存器的输出,但是输入信号可以经过组合逻辑之后,在进行寄存,但是寄存器输出之后,这个时序逻辑已经完成,输出的信号再作用到其他电路需要重新开一个always块。也就是说不能把三个模块看成一个整体的时序逻辑,而应该看成时序+组合逻辑,或者组合逻辑+时序逻辑+组合逻辑。

时序+组合逻辑其实就是把前两个模块看作时序逻辑,第三个输出信号的模块看成组合逻辑。

组合逻辑+时序逻辑+组合逻辑:其实质是 把三个模块单独放在了always快中实现了。第一个模块的输入是current_state,但是输出是next_station。 状态寄存器模块输入是next_station,输出是current_station,而输出模块的输入信号是current_staion与input信号,而输出是outuput,如果把输出信号换成是时序逻辑,那么相当于在组合逻辑电路实现之后,加了一级的寄存器。

至于为什么next_station要由组合逻辑来实现,那是因为输入和当前状态决定了下一个状态是什么,下一个状态的值会赋值给当前状态,你可以理解为,当next_staion为前状态要转变的状态,这个状态是需要提前由当前状态和输入信号通过得出组合逻辑得出来的,然后当前状态的转变是时序电路,时序电路的输入是next_station,就是要把current_staion转变的数值赋值给current_station。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值