电子说
在传递读写时钟域的指针使用格雷码来传递,如何把二进制转换为格雷码,格雷码是如何判断读空写满呢?
二进制码转换成二进制格雷码,其法则是保留二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。
这样就可以实现二进制到格雷码的转换了,总结就是移位并且异或,verilog代码实现就一句:assign wgraynext = (wbinnext>>1) ^ wbinnext。
因为格雷码与二进制计数的有区别,我们可以得出以下的结论:
当高2bit的相反,后几位的bit相同时,写满;
当写指针等于读指针时,读空。
全部0条评论
快来发表一下你的评论吧 !