FPGA状态机总结

1. 状态机的结构

(1)逻辑表达式

         下一个状态=F(当前状态,输入信号);

         输出信号=G(当前状态,输入信号);

(2)Mealy状态机:时序逻辑的输出取决于状态与输入

(3)Moore状态机:时序逻辑的输出取决于状态

2. 状态编码的类型

(1)独热编码:一个bit代表一个状态(4中状态的编码有:4’b0001, 4’b0010, 4’b100, 4’b1000)

(2)Gray编码:格雷编码累加(4中状态的编码有:2’b00, 2’b01, 2’b11, 2’b10)

(3)输出直接指定为状态码,多用于高速信号

3. 状态机编写的方法

(1)一段式

         输入、输出、状态变化写在一起,用非阻塞“<=”对当前状态寄存器(cstat)和命令寄存器(cmd)进行赋值。

(2)二段式

         时序逻辑与组合逻辑分离。时序逻辑为状态切换,组合逻辑实现输入、输出、状态判断。状态切换用非阻塞“<=”完成下一状态寄存器(nstat)对当前状态寄存器(cstat)的赋值。组合逻辑通过阻塞“=”,利用cstat寄存器状态和输入,对下一状态寄存器(nstat)和输出寄存器(cmd)进行赋值。由于输出用逻辑电路,会产生毛刺

(3)三段式

         输入、输出、状态切换分离。状态切换用非阻塞“<=”完成下一状态寄存器(nstat)对当前状态寄存器(cstat)的赋值。通过阻塞“=”,利用cstat寄存器状态和输入信号,对下一状态寄存器(nstat)进行赋值。输出寄存器通过利用当前状态,使用非阻塞的“<=”赋值,延迟一个时钟以达到消除毛刺的目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值