数字电路/有限状态机
抽象地说,有限状态机是一个系统,可以由其可以采用的状态、其初始状态、其接收的输入以及如何改变状态来描述。状态机将根据其当前状态以及影响系统(即输入)的当前因素改变状态。一个状态被指定为初始(或开始)状态。从该状态开始,周期性地对输入进行采样,机器根据输入和当前状态改变状态。该状态可以被观察到并作为输出处理;当前输入也可以影响输出。
具体来说,我们对创建一个在特定条件下产生特定输出的系统感兴趣。有限状态机与众不同之处在于,它们从某种意义上来说具有记忆功能。与逻辑门不同的是,逻辑门的当前输出只取决于当前输入,而有限状态机的输出则取决于过去输入(通过从初始状态开始随着时间的推移而移动到当前状态)和当前输入。我们通过触发器来实现这一点。此外,请注意,状态只在离散时间改变;因此,我们正在创建一个时序电路。
要理解有限状态机的运作方式,您必须理解它如何改变状态。在给定状态下,给定输出会产生状态改变(可能改变到相同状态)。因此,我们可以将有限状态机表示为一个函数,该函数将输入和状态映射到状态。我们可以使用类似于真值表的状态转移表来描述此转移函数:用不同的输入标记行,用不同的状态标记列,并在每个输入状态单元格中,放入当在列状态下给定行输入时机器转移到的状态的标签。
在数字电路中,输入将是二进制值,转移函数将使用给定时钟脉冲下触发器的输入和输出来影响触发器的状态,而新状态将是时钟脉冲后触发器的新状态。
有限状态机的另一种表示方式是状态图。这里,状态由带标签的圆圈表示。当机器能够一步从箭头尾部的状态转换到其头部的状态时,就会从一个状态画一条箭头指向另一个状态。箭头用导致转换的输入进行标记。
状态图对于生成状态转移表并确保所有可能的输入转移都被考虑在内非常有用。因为它们可能比相应的转移表更简单(当多个不同的输入组合产生相同的转移时,它们都被用来标记单个箭头,而不是每个都给出自己的条目),所以它们在理解系统功能方面也很有用。
米利机是一种机器,其输出是当前存储器状态和当前输入的函数。
摩尔机是一种机器,其输出是当前存储器状态的函数。