SoC设计之状态机(FSM)

本文深入探讨有限状态机(FSM)的基本原理,包括Moore与Mealy状态机的区别,以及格雷码、独热码和二进制编码的应用。通过实例对比,阐述了不同编码方式对组合逻辑和触发器使用的影响,以及如何在Verilog中实现FSM。适合于嵌入式系统和数字电路设计人员。

1.概述

有限状态机(Finite-State Machine,FSM),又成为有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。在当今的电子世界,基本所有的器件都是串行的,所以作为控制单元或者是可编程单元的SoC需要进行并行转串行与外界进行通信、控制等,而有限状态机以其简单实用、结构清晰而恰如其分的充当着这个角色。

有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只可能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态,究竟转向哪一状态还是留在原状态不但取决于各个输入值,还取决于当前所在状态。

2.分类

   状态机有两种类型,它们根据每种状态机生成的输出类型进行分类。
   第一个是Moore状态机,其中输出仅是当前状态的函数,

   第二个是Mealy状态机,其中一个或多个输出是当前状态和一个或多个输入的函数。

 

除了根据状态机各自的输出生成类型对状态机进行分类之外,状态机通常还通过每个状态机采用的状态编码进行分类。 一些更常见的状态编码方式包括

                1、Gray(格雷码)码状态机

                2、one-ho码(独热码)状态机

                3、二进制码状态机

                有限状态机编码时采用格雷码和采用独热码的选择:

                 格雷码:相邻之间只变1bit,编码密度高。
                 独热码:任何状态只有1bit为1,其余皆为0,编码密度低。
                 比如说,表示4个状态,那么状态机寄存器采用格雷码编码只需要2bit:00(S0),01(S1),11(S2),10(S3);
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值