独热码只有一个比特位不同,所以在进行比较的时候:
假如我们要判断状态机是否处于某状态S1,代码如下
格雷码:assign S1 = (STATUS == 2'b01)
二进制码:assign S1 = (STATUS == 2'b01)
而独热码:assign S1 = STATUS[1]
只需要进行一位的比较就好了,在FPGA代码综合的时候,会将代码综合成比较器,1位的比较器肯定是比多位的比较器节省逻辑资源,而FPGA中寄存器资源丰富,所以虽然独热码占位多,但是无所谓,高速系统中就可能因为比较导致输出不稳定,因此独热码很适合在FPGA尤其是告诉系统中使用。
如果状态数非常多就是用格雷码,可以节省寄存器资源,并且各个状态之间转移只需要一位的翻转,就是独热码和二进制码的折衷。
野火的课程中说:在低速系统中,状态个数低于4个使用二进制码,4~24个使用独热码,大于24使用格雷码,高速系统中尽量使用独热码就好了。
标签:STATUS,二进制码,FPGA,推荐,assign,独热码,S1 From: https://www.cnblogs.com/ZhengLijie/p/17616351.html