在传递读写时钟域的指针使用格雷码来传递,如何把二进制转换为格雷码,格雷码是如何判断读空写满呢?
二进制码转换成二进制格雷码,其法则是保留二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。
这样就可以实现二进制到格雷码的转换了,总结就是移位并且异或,verilog代码实现就一句:assign wgraynext = (wbinnext>>1) ^ wbinnext。
因为格雷码与二进制计数的有区别,我们可以得出以下的结论:
当高2bit的相反,后几位的bit相同时,写满;
当写指针等于读指针时,读空。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
二进制
+关注
关注
2文章
700浏览量
41231 -
Verilog
+关注
关注
28文章
1322浏览量
109218 -
格雷码
+关注
关注
2文章
34浏览量
13089
原文标题:异步FIFO格雷码与空满
文章出处:【微信号:ALIFPGA,微信公众号:FPGA极客空间】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
二进制码详解
的权为21=2,b2位的权为22=4,b3位的权为23=8,例: 0111= 0×8 + 1×4 + 1×2 + 1×1=7 一般情况下,十进制码与二进制码之间的关系可表示为:(N)D= b3 W3 + b2 W2 + b1
发表于 04-06 23:55
如何用VHDL实现16位二进制数转化为相应的BCD码
的16位二进制码是0000010011010010.则把它转化为BCD码后是:0001 0010 0011 0100.如何实现这个功能呢:二进制
发表于 04-10 09:46
用两片与非门74LS00和两片异或门74LS86设计一个可逆的4位码转换器,输入有一个控制信号C
,Y3Y2Y1Y0为二进制码,电路将格雷码转换成二进制码。求大神帮帮忙,
发表于 10-24 11:03
在FPGA中实现一种二进制转BCD码的电路设计
字逻辑设计课程中,我们已经学过了BCD码的相关知识,它用4位二进制数来表示1位十进制数中的09,是二进制编码的十进制代码,常见的BCD
发表于 07-12 16:41
评论