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

时间:2025-08-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译码器的真值表给出来,确实如此。

​​

编辑:黄飞

 

猜您喜欢

安规电容是电子设备中一个重要的元件。的主要功能是确保电气安全,防止电击和火灾。本文将介绍安规电容的不同用途,帮助大家更好地理解这个元件。保护电气安全安规电容主要...
2025-03-22 01:31:07

压敏电阻作为重要的保护元件,被应用于各种电路中,以防止过电压对设备造成损害。万裕(SAMXON)作为知名的电子元器件制造商,其压敏电阻产品凭借优良的性能和稳定的...
2021-10-13 12:32:33

消解仪是应用于实验室的分析仪器,其主要功能是通过高温高压的环境将样品中的有机物质分解,以便于后续的元素分析。消解仪的应用领域非常,主要包括环境监测、食品安全、药...
2009-11-12 00:00:00

贴片电阻在电子产品中应用,对其进行质量检测很重要。常见的贴片电阻检测设备包括:电阻表: 最基本的检测工具,用于测量电阻值是否符合标称值。指针式电阻表精度较低,数...
2024-11-29 10:25:46

肖特基二极管是特殊类型的二极管,其主要特征是具有较低的正向压降和极快的开关速度。由于这些优点,肖特基二极管在现代电子设备中得到了应用。本文将概述肖特基二极管的基...
2025-04-05 16:00:04

防静电帽是专为防止静电积聚而设计的工作服饰,应用于电子、半导体、医药等行业。主要作用是有效防止静电对敏感设备和产品造成的损害。在这些行业中,静电可能导致设备故障...
2008-08-30 00:00:00

压线扣作为常见的连接材料,其主要优势体现在以下几个方面。压线扣具有优良的牢固性,能够有效地固定电缆线,防止因震动或拉扯导致的松脱,确保电气设备的稳定运行。压线扣...
2012-04-02 00:00:00

冲是指通过某种方式使物体或能量快速流动的行为,应用于多个领域,主要可以分为以下几类:1. **水冲**:常见于日常生活中,如冲洗、冲澡等,利用水的流动清洁物体或...
2013-01-13 00:00:00

插座面板盒是现代电气安装中不可少的基础组件,主要用于容纳和保护电气插座及其连接线。插座面板盒由高品质的绝缘材料制成,能够有效防止电流泄漏和短路现象的发生,确保用...
2008-12-16 00:00:00

理解贴片电阻的型号规格就像掌握一门新的语言,看似复杂,其实有规律可循。这份详解表将助您轻松解读这些代码,快速找到所需的电阻。一般来说,贴片电阻的型号由数字和字母...
2024-11-29 10:25:53