FPGA有限状态机编写如何选择状态编码?

时间:2025-11-02  作者:Diven  阅读:0

今天看《从算法设计到硬件逻辑的实现》这本电子书时,遇到了一个问题,就是有限状态机的编写中,状态编码是采用格雷码还是独热码呢?究竟采用哪编码呢?

FPGA有限状态机编写如何选择状态编码?

采用独热码为什么节省许多组合电路?

等等问题,就这些问题我收集了一些说法,觉得很有意思,在这里我们一起讨论下。

还是先简介下有限状态机:

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

Moore型有限状态机的状态转移只取决于当前状态,与输入值无关。

在Verilog HDL中可以用许多种方法来描述有限状态机,最常用的方法是用always语句和case语句。下面的状态转移图表示了一个有限状态机:

上面的状态转移图表示了一个四状态的有限状态机,同步时钟是Clock,输入信号是 A 和 rst_n ,输出信号是 F 和 G。状态的转移只能在同步时钟(Clock)的上升沿时发生,往哪个状态的转移则取决于目前所在的状态和输入的信号(Reset 和 A)。

我们采用两种状态编码方式来实现这个有限状态机:

1)采用格雷码:

在ISE中,综合后,得到的RTL SchematIC

2)采用独热码:

程序和上面的几乎一样,只需要改下,各个状态对应的编码值即可,还有最后的default:state <= Idle;

还是给出程序吧:

上面两个程序的主要不同点是状态编码,2)采用了独热编码,而1)则采用Gray码,究竟采用哪编码好要看具体情况而定。对于用FPGA实现的有限状态机建议采用独热码,因为虽然采用独热编码多用了两个触发器,但所用组合电路可省下许多,因而使电路的速度和可靠性有显著提高,而总的单元数并无显著增加。采用了独热编码后有了多余的状态,就有一些不可到达的状态,为此在CASE语句的最后需要增加default分支项,以确保多余状态能回到Idle状态。

上面所说的多余状态是:4位编码有16种,独热码只列出了4种,剩下了12种,就是多余的状态。

另一位大牛只说了一句话,但很有启发:

那我把3—8译码器的真值表给出来,确实如此。

​​

编辑:黄飞

 

猜您喜欢

吸盘是常见的工具,应用于生活和工业中。根据材质的不同,吸盘可以分为橡胶吸盘、硅胶吸盘和塑料吸盘。橡胶吸盘因其良好的弹性和吸附力,常用于家庭和汽车领域。硅胶吸盘则...
2019-11-22 00:00:00

电子电路中,电阻是最基本的元件,而排阻阻值表则是帮助我们快速了解电阻值的重要工具。无论是在电路设计、维修,还是在学习电子基础知识时,掌握排阻阻值表的使用都显得尤...
2025-03-16 21:31:39

气动砂磨机是高效的表面处理设备,应用于金属、木材、塑料等材料的打磨、抛光和清理。通过气动系统驱动砂轮或磨料,能够快速去除表面杂质,提升工件的光洁度和精度。相比传...
2011-01-14 00:00:00

电流检测电阻在电路设计中是非常重要的配件。四川永星作为电阻制造领域的知名企业,其电流检测电阻产品应用于各类电子设备和工业控制系统。本文将围绕“四川永星电流检测电...
2019-08-09 23:03:17

现代工业和电子设备中,连接器的选择非常重要。TERMINAL_76X12.2MM_TM作为高效的连接器,凭借其独特的设计和优越的性能,应用于各种领域。本文将深入...
2025-04-19 18:31:10

防浪涌电阻作为保护电路的重要元件,越来越受到关注。四川永星防浪涌电阻作为行业内受到认可的品牌,其产品性能优异,应用。本文将深入探讨四川永星防浪涌电阻的品牌背景、...
2013-06-26 09:03:30

二极管是重要的半导体器件,应用于电子电路中。了解二极管的参数对于设计和应用电路非常重要。本文将为您详细解析二极管的几个关键参数:vf(正向电压),iac(交流电...
2025-04-08 21:30:03

热敏电阻(Thermistor)是一种对温度变化敏感的电阻元件,应用于电子设备、家用电器和工业控制等领域。由于其对温度变化的敏感性,热敏电阻能够实现温度的精确测...
2025-03-18 12:01:38

现代产品设计中,配件的选择和应用愈发重要。特别是“Accessories_20.32X20.32MM”这一规格的配件,因其独特的尺寸和多功能性,成为了各类产品的...
2025-04-23 15:01:48

按钮开关附件在现代生活中是重要的配件,应用于多个领域。在家居智能化方面,按钮开关可以控制灯光、空调等家电设备,实现便捷的智能家居体验。在工业自动化中,按钮开关附...
2020-04-10 00:00:00