算法状态机(英语:Algorithmic State Machine,缩写:ASM)方法是设计有限状态机的一种方法。在数字电路设计中,算法状态机图是对时序逻辑状态转移的一种图形描述。在功能上,算法状态机图与状态图类似。:516
在外观上,算法状态机图与计算机程序设计的流程图使用了相当类似的图形符号,但是二者具有很大的差异。这种差异是软件设计和硬件设计的本质差异导致的:硬件数字电路的状态转移是根据时间脉冲信号来实现同步的,即每过一个时脉“步进”一个状态,因此算法状态机的状态转移包含着时脉的信号,相邻状态的转移所跨越的时间往往精确单个时间脉冲,而软件程序设计则一般不包含时间脉冲信号。:81:518
利用算法状态机方法来设计有限状态机,需要依次完成以下步骤:
算法状态机图(ASM图)由四中基本元素:状态名称、状态盒、状态决定盒和条件输出盒,后三者之间用箭头连接起来。由于摩尔型有限状态机的输出只与当前的状态有关,因此其输出情况被标注在状态盒内部,而米利型有限状态机的状态块中不会标注输出情况。:82
当有限状态机的时序逻辑电路用寄存器传输级硬件描述语言代码描述之后,综合工具会自动生成一系列数据路径部件。过程代码块中被赋值的变量在实际的硬件电路中可以通过硬件寄存器来实现数据的储存。根据不同赋值操作实现的功能,这样的硬件寄存器可以是单纯的寄存器、移位寄存器、计数器或其他含有组合逻辑网络的触发器电路(组合逻辑网络可以是加法器、减法器、数据选择器的各种组合方式)。