一、格雷码简介

格雷码是一个叫弗兰克*格雷的人在 1953 年发明的,最初用于通信。格雷码是一种循环二进制码或者叫作反射二进制码。格雷码的特点是从一个数变为相邻的一个数时,只有一个数据位发生跳变,由于这种特点,就可以避免二进制编码计数组合电路中出现的亚稳态。格雷码常用于通信,FIFO 或者 RAM 地址寻址计数器中。

格雷码属于可靠性编码,是一种错误最小化的编码方式,因为虽然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的 3 转换为 4 时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。

二进制计数编码从 0 到 15 的计数过程如下:

从上面的对应关系可以看出,当数字从 7 变为 8 时,4 位二进制数都发生跳变,如果直接使用异步时钟采样这些数字信号,这就很可能会发生亚稳态或者数据采样错误。而采用格雷码,就可以避免 4 位二进制数都同时发生跳变,就算出现亚稳态,最多也就一位出现错误。

二、互相转换原理

一般数字设计里面都是使用二进制码,那么我们想使用格雷码需要怎么转换呢

二进制与格雷码互相转换相关推荐

  1. 自然二进制与格雷码的转换

    自然二进制:Bn-1Bn-2-.B2B1B0 格雷码      :Gn-1Gn-2-G2G1G0 自然二进制转格雷码公式: Gi = Bi ,i = n-1 Gi = Bi xor Bi+1 ,i = ...

  2. 【FPGA实验2】二进制转为格雷码

    关于FPGA入门实验2--二进制到格雷码的转换的一个记录 实验中作用到的仪器信息: 芯片商家:ALTERA 编程软件:Quartus II 试验箱上的芯片型号:EP4CE6E22C8N 快速导航

  3. 生成二进制反射格雷码

    递归生成二进制反射格雷码: 需求: ​ 我们使用递归的方式来生成二进制的反射格雷码. 什么是格雷码? ​ 典型的二进制格雷码(Binary Gray Code)简称格雷码,因1953年公开的弗兰克·格 ...

  4. C语言学习:二进制码与格雷码的转换

    格雷码,又叫循环二进制码或反射二进制码,格雷码是我们在工程中常会遇到的一种编码方式,它的基本的特点就是任意两个相邻的代码只有一位二进制数不同. 格雷码的基本特点就是任意两个相邻的代码只有一位二进制数不 ...

  5. 二进制和格雷码转换方法及程序

    二进制和格雷码转换方法及程序 1 格雷码介绍 2 二进制转格雷码 3 格雷码转二进制 1 格雷码介绍 格雷码(Gray code)是1880年由法国工程师Jean-Maurice-Emlle Baud ...

  6. 减治法在生成子集问题中的应用(JAVA)--递归、二进制反射格雷码

    减治法在生成组合对象问题中的应用 生成子集问题:经典的背包问题就是求解一个最优子集的问题,这里我们来讨论一个更简单的问题.对于任意一个集合来说,它都存在2^n个子集(一个集合所有的子集集合称为幂集). ...

  7. (88)FPGA面试题-使用Verilog HDL编写二进制转格雷码

    1.1 FPGA面试题-使用Verilog HDL编写二进制转格雷码 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-使用Verilog HDL编写二进制 ...

  8. 【数字电路基础】格雷码、二进制码与格雷码的转换、独热码

    文章目录 一. 格雷码 二.二进制码与格雷码的转换 2.1.二进制码转格雷码(编码) 2.2.格雷码转二进制码(解码) 三.代码实现 3.1.`b2g.v`(**二进制码转格雷码**) 3.2.`g2 ...

  9. 二进制与格雷码之间的转换的Verilog实现(更多一点的讨论)

    目录 前言 二进制码转换为格雷码的方法 格雷码转换为二进制码的过程 更多一点讨论之generate for 更多一点讨论之for 最后对格雷码的介绍 前言 以前的博客也有写这方面的内容,只是没有显式的 ...

  10. 数电 8421码与格雷码的转换

    8421码向格雷码转化,照抄第一位即格雷码第一位,8421码第一位与第二位,相比按照同0异1,写格雷码第二位,8421码第二位与第三位相比,得格雷码第三位,类推格雷码第四位.因相比如图像Y,可记作二哥 ...

最新文章

  1. Python标准库介绍
  2. 3-5 获取命令行参数
  3. 机器人出魔切还是三相_哇!电站凝汽器清洗居然可以用机器人啦
  4. 数据光端机设备性能指标介绍
  5. micropython web ws2812_MicroPython实例之TPYBoard v102炫彩跑马灯WS2812B
  6. 使用github托管代码以及github一些最常用的命令
  7. python win32ui_Python创建普通菜单示例【基于win32ui模块】
  8. java互斥锁的实现原理_java-深入分析synchronized原理
  9. asp.net运行时动态修改主题
  10. [CentOS] CentOS 6 IPv6 关闭方法
  11. 无法卸载 Mac 上的磁盘时该怎么办?
  12. fish设置环境变量
  13. 图形处理单元(GPU)的演进
  14. php网页显示左中,php的动态页面在ie内核的浏览器面整体偏左的解决方法静
  15. AUM、MAU与DAU
  16. 交换两个变量的值的swap函数
  17. Centos 7安装 shutter 截图软件
  18. 文献阅读笔记 # Space/Aerial-Assisted Computing Offloading for IoT Applications: A Learning-Based Approach
  19. 液晶显示屏的C语言编码,液晶屏代码讲解
  20. ubuntu用户和权限介绍

热门文章

  1. dell保修及其升级3CC
  2. 《计算机算法设计与分析 第4版 (王晓东) 课后答案[1-9章]》pdf版电子书附下载链接
  3. 计算机网络第四章课后答案(第七版谢希仁著)
  4. 最受欢迎的 50 个数据可视化图表
  5. 虚拟机服务器坏处,服务器虚拟化技术的优缺点
  6. 2023南京邮电大学计算机考研信息汇总
  7. 计算机主机放电,电脑需要放电才能开机_电脑主板放电才能开机
  8. JavaScript基础入门
  9. Axure8.1破解码 注册码 授权码
  10. CS224n自然语言处理(四)——单词表示及预训练,transformer和BERT