有限状态机

有限状态机功能强大,但是不代表提倡;借助综合工具实现电路功能,对状态转移图或者verilog描述过程产生错误或者错误理解的话可能会出问题。

对状态转移图充分理解

有限状态机的状态不能太多,要尽可能小。

设计一个

三大方程:输出方程、状态转移方程、激励方程;

moore型速度快,仅受限于输出逻辑决定,mealy受输入信号和输出逻辑影响。

有限状态机是唯一可以不用知道相关的电路结构,

编码方式:二进制编码(功耗大,还存在竞争冒险,最简化);格雷码(相邻状态跳转时仅有一个bit发生变化);one-hot编码(任意状态跳转只有2个bit变化)

写法:两段式 (状态转移方程,输出方程&激励方程),三段式(状态转移方程,输出方程,激励方程)

因为仅有状态转移方程在存储电路中进行

使用case将状态隔离,

不建议,电路中可能会出问题,即使语法没问题:next_state=x 初始化,使得系统进入正确状态;

在if-else或者case语句中,状态一定要写完整,即使状态没有发生变化也要写上,分支一定要写全,每个分枝条件下状态和输出都要进行赋值,即使转态没有发生变化