在状态机的编码中,一般有Binary、Grar 、One-hot 编码。Binary 编码,状态改变时,往往有多位状态位发生变化。 在高速运行下,可能会导致产生瞬时的非法过渡状态,若应用于异步电路,将引发严重问题。Grar 的特点是任意两个相邻状态的码之间只有一位不同,因此相邻状态的改变不会产生瞬时的过渡状态,因此具有很强的抗干扰能力,但存在状态改变需依次序才适用的缺点。One - hot 编码是用n 个触发器来实现具有n 个状态的状态机,任意时刻只有1 位有效(其值为1) ,因此任意状态之间的转换, 不会产生瞬时的过渡状态。 尽管用了较多的触发器,但其简单的编码简化了状态译码逻辑,提高了状态转换速度。 对于含有较多的时序逻辑资源、较少的组合逻辑资源的FPGA 器件是好的解决方案。