!!产生:硬件描述语言对时序电路的设计方式。这种描述方式和真值表都差不多,都表征了对于一个数字电路通用的设计方式
!!!!功能很强大,但是并不代表在硬件描述语言中提倡这种方式,当电路设计到一定阶段时,我们更希望用基础的设计语言去做电路
有限状态机是借助于综合工具实现电路的一种方式,如果对于状态转移图或者Verilog描述过程中如果产生错误或者不确定的理解,这时候设计就会产生很大问题

同其它时序电路一样,有限状态机也是由两部分组成:存储电路和组合逻辑电路。存储电路用来生成状态机的状态,组合逻辑电路用来提供输出以及状态机跳转的条件
从中间画一条线把它分为上下两部分,称为二部图。二部图对于数字电路来讲是一个非常重要的概念,实际上联系了两部分不同性质的电路之间的关系。从图论的角度来讲,如果有一个edge能把上下两部分分开,这两部分就是独立的
有限状态机分为两种类型:Mealy型和Moore型

最大的区别:Mealy 型状态机的输出与当前状态和输入有关系,Moore 型状态机的输出仅依赖于当前状态而与输入无关
!!!!对于Mealy电路,影响组合电路延迟的是由组合逻辑和输入信号的延迟决定的, 而对于Moore电路,输出逻辑只由输出组合逻辑决定。所以。Moore型的状态机要比Mealy型的状态机要快,因为它的输出延迟只由一部分输出逻辑决定,而Mealy型的延迟由输入信号决定,当输入信号延迟非常大时,输出结果将会是不对的,也就输输出频率会降下来
!!!!所以,在很长一段时间内,会从对状态机不了解到写成Moore型状态机。但是并不是说Mealy状态机不行,Mealy有它的特点,对于一些组合电路要求输出一定要跟着输入有变化的时候,Mealy型状态机就会产生很好的作用
!!!!从群延迟的角度来说,也就是只有一个信号和一个信号进行比较时,这时Mealy状态机是快的。Moore说它工作频率高主要是说它状态寄存器到输出,延迟只由输出组合逻辑决定,所以很快。Moore的工作频率很快,但是从绝对延迟来讲,Mealy更快,但是就是有的时候不稳定,如果对输入信号没有进行处理,或者对输入信号不了解的情况下,这时候做这个电路的压力就会非常大
所以,这两种状态机的选择要根据自己的情况来定
有限状态机是基础的电路设计的最后一部分,之前的电路是要求对电路的特点,电路到底用了什么电路,用了多少什么门一定要非常清楚,设计方法(查找表,移位寄存器等)一定要非常清楚。**!!!!但是对有限状态机来讲,在整个数字电路的硬件描述语言设计,唯一可以不用知道特点的,就是有限状态机,可以不用知道电路,按照模板写就行了。**因为在它的逻辑里,对状态会有编码,这种编码计算机在对它实现的时候非常了解,但是设计人员并不是很了解。简而言之,对于存储电路就是一个一拍的移位寄存器,输入信号,状态,输出信号也可以知道,可以不知道的是这个输入信号到下个状态的编码,这个交给计算机来完成






经常会考,目的就是画状态转移图
图中,So~S,为状态机的8 个状态角标代表已投币的总和,如 S代表没有投币,S,代表已投入 1 角,依此类推。M 代表输入,M1 表示投入1角硬币,M2 代表投入2角硬币,M5 代表投入5 角硬币,M10代表投入一元。

data out=1 表示给出报纸,data out retuml=1 表示找1角硬币,data out return2=l表示找回2角硬币
代码如下
(1)P1和P2

(2)P3和P4

(3)P5和P6

!!!!所以在HDL中,强调有限状态图的写法,而不是注意语法