介绍 格雷码是每次只会更改1bit的编码方式,这样可以减少亚稳态的存在。 应用场所 格雷码只适用于递增或者递减的数据,无法传输多位变换的数据,具有一定的局限性,因此常用于地址指针的变换。对于深度为16的fifo,读写地址可以利用格雷码来传输。 原理 以4bits,深度为16的FIFO为例,从0到15对应的二进制为0000到1111,而对应的格雷码为0000~1000, 当格雷码变换时,他对应的公式为a =(b>>1)^b; 对应到相应的rtl代码其实很简单。 assign a =(b>>1)^b; 其中b是二进制数,a是b对应的格雷码。