格雷码与二进制码的相互转换

摘要:在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码反射码。在数字系统中,常要求代码按一定顺序变化。例如,按自然数递增计数,若采用8421码,则数0111变到1000时四位均要变化,而在实际电路中,4位的变化不可能绝对同时发生,则计数中可能出现短暂的其它代码(1100、1111等)。在特定情况下可能导致电路状态错误或输入错误。使用格雷码可以避免这种错误。格雷码有多种编码形式。

格雷码是一种相邻数值仅有一个数位发生变化的编码。格雷码被广泛应用于异步FIFO的数据传输中。当数值从一个时钟域传递到另一个时钟域时,仅有一个比特位的翻转十分重要。

一、自然二进制码转格雷码

//bin2gray.v
`timescale 1ns/1psmodule bin2gray
#(parameter   W = 8           //位宽
)
(input   [W-1:0]     bincode,output  [W-1:0]     graycode
);assign graycode = bincode ^ (bincode >> 1);endmodule

二、格雷码转自然二进制码

//gray2bin.v
`timescale 1ns/1psmodule gray2bin
#(parameter   W = 8   //位宽
)
(input [W-1 : 0]     graycode    ,output[W-1 : 0]     bincode);assign bincode[W-1] = graycode[W-1];generategenvar i;for(i = 0; i < W-1; i = i + 1) beginassign bincode[i] =  bincode[i+1] ^ graycode[i];endendgenerateendmodule

[Verilog]格雷码与二进制码的相互转换相关推荐

  1. 格雷码与二进制码的相互转换 (python代码实现)

    ⭐ What? 格雷码 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连&quo ...

  2. 数字电路基础知识——格雷码和二进制码的转换的算法和Verilog实现

    数字电路基础知识--格雷码和二进制码的转换的算法和Verilog实现 关于数字电路中的码制问题在这篇博客中已经做了详细分析, 数字电路基础知识--数字IC中的进制问题(原码,反码,补码以及各进制的转换 ...

  3. 格雷码与二进制码转换

    格雷码转二进制码 二进制码转格雷码 代码如下 //gray to bin module gray2bin #(parameter ADDR_WIDTH=8)(input [ADDR_WIDTH-1:0 ...

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

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

  5. 格雷码、二进制码、BCD编码

    格雷码 格雷码(12页).pdf 格雷码(12页).pdf-其它文档类资源-CSDN下载 奇偶校验码(25页).pdf 奇偶校验码(25页).pdf-其它文档类资源-CSDN下载 经验:如何快速地写出 ...

  6. 状态机与独热码、格雷码、二进制码

    状态机 简称FSM,也叫同步有限状态机 同步:同步的意思就是在系统时钟的作用下 有限:有限代表状态机中的状态是有限的 根据影响输出分为两大类,一为Moore.二为Mealy Moore:若最后的输出只 ...

  7. 格雷码与普通二进制码的相互转换——学习笔记

    文章目录 格雷码 普通二进制码转换成格雷码 格雷码转换成普通二进制码 进一步 Reference 文章中内容与图片大部分来自Reference,本文只是以方便自己理解的方式进行整理. 格雷码 在一组数 ...

  8. 自然二进制数与格雷码的相互转换

    自然二进制码与格雷码的相互转换 一.前言 二.自然二进制数转格雷码 2.1 自然二进制数转格雷码原理 2.2 verilog代码 2.3 Testbench 2.4 仿真结果 三.格雷码转自然二进制数 ...

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

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

最新文章

  1. smartgit 授权文件 Free Trial License to Non-Commercial
  2. 《BI项目笔记》基于雪花模型的维度设计
  3. 华东交通大学2017年ACM双基程序设计大赛题解
  4. 基于 Spring Security OAuth2和 JWT 构建保护微服务系统
  5. Scala入门到精通——第二十一节 类型参数(三)-协变与逆变
  6. Flask 离线脚本
  7. 统一归档助企业撑起信息的保护伞
  8. Python 卸载python
  9. 安卓学习笔记15:使用安卓应用程序资源
  10. 如何显示最近过生日的记录
  11. 太极图正确画法_认识道教太极图,了解正规画法
  12. android源码学习-源码学习目录推荐
  13. python gps定位_GPS 测试汇总和python GPS 导航地图实现
  14. Android MediaPlayer+Stagefright框架(音频)图解
  15. Elasticsearch实现类百度搜索引擎搜索功能ES5.5.0v
  16. vue的下载安装和使用
  17. 2019中国智能制造十大发展趋势
  18. 撸免费的oracle cloud服务器并使用脚本自动化部署云服务器
  19. Monty Hall Problem
  20. 通过Dialer拨号盘输暗码启动某个apk

热门文章

  1. 第二章:Django快速上手
  2. 怎么将微信小程序项目转为uniapp项目
  3. 网管用计算机上岗证书,普通高中校园网计算机教室建设标准
  4. jQuery常用的API宝典
  5. [09-19]关于双击*.exe就生成*~.exe(第2版)
  6. Elasticsearch笔记(三)基础知识
  7. 制做自己的马赛克微信头像
  8. 阿里云 mysql自动备份数据库_MySQL定时备份数据库(全库备份)
  9. PHP项目快速接入微信功能
  10. 逻辑卷增加根目录空间