状态机概述 如何理解状态机

换个方式理解状态机
状态机概述
有限状态机通常是由寄存器组和组合逻辑组成时序电路,根据当前状态和输入信号可以控制下一个状态的跳转,有限状态机在电路中通常是作为控制模块,作为整个电路模块的核心而存在,它主要包括两大类:mealy型状态机和moore型状态机。
mealy型状态机:其组合逻辑的输出不仅与当前状态有关,还与输入有关。
如下图所示:
moore型状态机:其组合逻辑的输出只与当前的状态有关。
如下图所示:
状态机的编码方式主要包括:二进制码(binary),格雷码(gray),独热码(one hot)
比如说当前工作四个状态的话,其编码方式如下表1所示:
二进制
格雷码
独热码
s0
00
00
0001
s1
01
01
0010
s2
10
11
0100
s3
11
10
1000
格雷码相对于二进制码而言,在状态跳转的时候,只有单比特翻转,它的功耗相对比较低,该部分后面的异步fifo章节会重点讲到。独热码相对于格雷码或者二进制码而言,它增加了两个寄存器来表示状态,但是它会更节省组合逻辑电路,因为它在比较状态的时候,只需要比较一个比特位,那么其电路的速度和可靠性就会增加。
状态机设计实例分析
应用场景:编写一个自动售货机,功能如下:
共有三种纸币入口,分别支持10元,20元,50元。货物售价为80元。需要支持找钱功能(注意,找钱有两种情况, 90元和100元;而110元和120元的情况不符合实际应用场景,所以不存在找钱的情况)。
分析:一共有十一种状态:每种状态对应当前售货机已接受的金额,当金额达到80,90,100的时候售货机会输出货物,当金额为80时,不找零,当金额为90,100的时候要找零,零钱分别为10,20。
根据分析画出如下的状态转化图:
状态机的rtl以及仿真的testbench代码链接:https://pan.baidu.com/s/1dkcwhzns60sw-7-uyxqyaq
提取码:9khq
在testbench里面模拟了三种情形:输入为80,90,100的三种情况
仿真的testbench如下图:
输入信号:
ten_inst为1表示输入10,twenty_inst为1表示输入20,fifty_inst为1便是输入50。
输出信号:
out_inst为1表示要输出货物;
charge_inst为0,表示不找零,为2‘b11,表示找零20,为2‘b01表示找零10。

台积电:美国亚利桑那州第二座晶圆厂投产时间推迟至2027年
独石电容生产工艺
中国工程院院士许祖彦:激光技术为什么是重要战略支撑技术
智慧照明企业华体科技发布2022第一季度报告
在水泥工程机械搅拌行业中称重传感器有哪些广泛应用?
状态机概述 如何理解状态机
多个WS2812灯珠的点亮实验
小米6怎么样?小米6最新消息:三大猜想,小米6或将再一次惊艳世人
Valens与英特尔合作开发下一代A-PHY产品
如何降低串扰对PCB板的影响
电网谐波的产生原因、表现形式及消除措施
小米手环3非NFC版使用体验 性价比还是非常不错的
结合3D打印塑料领域的两家典型企业Stratasys与Polymaker,了解其应用趋势
一加美国市场上发布的首款屏幕指纹解锁手机
中兴5G又在欧洲放大招啦!
沃尔玛正在全面拥抱区块链技术
深度测评本田思域1.8L
WiSA Technologies低成本空间音频模组获得业界采用
智能汽车技术趋于成熟,自动驾驶汽车临近商用
EOS系统通胀中心化问题的解决方案