0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何把二进制转换为格雷码?格雷码是如何判断读空写满呢?

DIri_ALIFPGA 来源:未知 作者:易水寒 2018-09-15 09:38 次阅读

在传递读写时钟域的指针使用格雷码来传递,如何把二进制转换为格雷码,格雷码是如何判断读空写满呢?

二进制码转换成二进制格雷码,其法则是保留二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。

这样就可以实现二进制到格雷码的转换了,总结就是移位并且异或,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

    [原创]16位二进制转换为BCD

    16位二进制转换为BCD[此贴子已经被作者于2009-11-24 14:29:44编辑过]
    发表于 11-24 14:25

    二进制与自然二进制码的互换

    。而绝对式编码器是直接输出数字量的传感器,它是利用自然二进制或循环二进制)方式进行光电转换
    发表于 03-08 14:16

    常用编码(BCD编码、余3反射、奇偶校验)

    反射(循环)十进制二进制
    发表于 04-11 10:00

    简介及格二进制转换程序

    简介及格二进制转换程序
    发表于 04-22 09:00

    什么是BCD、8421、余三

    !!余三是在8421BCD的基础上,每个数的代码加上0011(对应十进制数3)后得到的。
    发表于 11-03 17:36

    FPGA Verilog HDL 设计实例系列连载--------有限状态机设计

    )。  的特点:相邻的两个组之间仅有一位不同。普通二进制码与格
    发表于 03-09 10:04

    二进制与格转换

    二进制与格转换
    发表于 08-08 15:51

    二进制与格转换

    本帖最后由 eehome 于 2013-1-5 10:01 编辑 二进制与格转换
    发表于 08-14 09:42

    介绍

    介绍
    发表于 08-14 09:44

    如何用VHDL实现16位二进制数转化为相应的BCD

    的16位二进制码是0000010011010010.则它转化为BCD后是:0001 0010 0011 0100.如何实现这个功能:二进制
    发表于 04-10 09:46

    用两片与非门74LS00和两片异或门74LS86设计一个可逆的4位转换器,输入有一个控制信号C

    ,Y3Y2Y1Y0为二进制码,电路将转换二进制码。求大神帮帮忙,
    发表于 10-24 11:03

    的规则和应用问题?

    今天看到一个计数的程序,搜了下定义,觉得还是云里雾里,定义的是若任意两个相邻的代码只有一位二进制数不同,则这种编码为
    发表于 08-20 14:41

    verilog UDP无法转换为项目

    我想使用用户定义基元(UDP)来构建一个项目来将二进制转换为,但UDP似乎无法转换为项目,
    发表于 03-07 13:48

    在FPGA中实现一种二进制转BCD的电路设计

    字逻辑设计课程中,我们已经学过了BCD的相关知识,它用4位二进制数来表示1位十进制数中的09,是二进制编码的十进制代码,常见的BCD
    发表于 07-12 16:41