深入浅出玩转FPGA——笔记8 漫谈状态机设计

1 状态机的基本概念

硬件的并行性决定了用不同verilog描述的硬件实现(比如不同的always语句)都是并行执行的,那么如果希望分多个时间完成一个任务,怎么办?
方法1 可以用多个使能信号赖衔接多个不同的模块,但是这样做多少显得有些繁琐。
方法2 状态机应运而生

1.1 构成状态机基本要素

构成状态机的基本要素是状态机的输入、输出和状态。输入就是一些引起状态变化的条件
输出就是状态变化后引起的结果变化
状态就是各个状态

1.2 状态机分类

状态机根据其状态变化是否和输入条件相关分成两类:
moore型状态机:状态变化仅和当前状态有关,而与输入条件无关
mealy型状态机:状态变化不仅与当前的状态有关,还取决于当前的输入条件

1.3 状态机的写法

一段式:
把所有的逻辑(包括输入、输出、状态)都在一个always块解决。看上去简单,实际上不利于维护。如果状态机非常简单可以使用;

二段式:
把时序逻辑和组合逻辑分来来,时序逻辑里面进行当前状态和下一个状态的切换,组合逻辑里实现各个输入、输出以及状态判断;

三段式:
时序逻辑的输出解决了两段式中组合逻辑的毛刺问题(组合逻辑产生的毛刺)但是从资源上面将三段式的资源消耗多一些;而且三段式从输入到输出比一段式和两段式会延时一个时钟周期;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值