独热码
独热码独热码就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0
有6个状态的状态编码:
二进制编码也可称连续编码,也就是码元值的大小是连续变化的。比如000,001,010,011,100,101
独热码就是只有1个是1,其他都是0,000001,000010,000100,001000,010000,100000
格雷码就是两个码之间只差1位不同,000,001,011,010,110,100
二进制编码、格雷码编码使用最少的触发器,消耗较多的组合逻辑,而独热码编码反之。独热码编码的最大优势在于状态比较时仅仅需要比较一个位,从而一定程度上简化了译码逻辑。虽然在需要表示同样的状态数时,独热编码占用较多的位,也就是消耗较多的触发器,但这些额外触发器占用的面积可与译码电路省下来的面积相抵消。
在CPLD中,由于器件拥有较多的地提供组合逻辑资源,所以CPLD多使用二进制编码或格雷码,而FPGA更多地提供触发器资源,所以在FPGA中多使用独热码编码。当然,这并不是说在FPGA中就非得用独热编码,在CPLD中不能用独热编码,一般的,对于小型设计(状态数小于4)使用二进制编码,当状态数处于4-24之间时,宜采用独热码编码,而大型状态机(状态数大于24)使用格雷码更高效。