[Verilog]格雷码与二进制码的相互转换
格雷码与二进制码的相互转换
摘要:在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(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]格雷码与二进制码的相互转换相关推荐
- 格雷码与二进制码的相互转换 (python代码实现)
⭐ What? 格雷码 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连&quo ...
- 数字电路基础知识——格雷码和二进制码的转换的算法和Verilog实现
数字电路基础知识--格雷码和二进制码的转换的算法和Verilog实现 关于数字电路中的码制问题在这篇博客中已经做了详细分析, 数字电路基础知识--数字IC中的进制问题(原码,反码,补码以及各进制的转换 ...
- 格雷码与二进制码转换
格雷码转二进制码 二进制码转格雷码 代码如下 //gray to bin module gray2bin #(parameter ADDR_WIDTH=8)(input [ADDR_WIDTH-1:0 ...
- 【数字电路基础】格雷码、二进制码与格雷码的转换、独热码
文章目录 一. 格雷码 二.二进制码与格雷码的转换 2.1.二进制码转格雷码(编码) 2.2.格雷码转二进制码(解码) 三.代码实现 3.1.`b2g.v`(**二进制码转格雷码**) 3.2.`g2 ...
- 格雷码、二进制码、BCD编码
格雷码 格雷码(12页).pdf 格雷码(12页).pdf-其它文档类资源-CSDN下载 奇偶校验码(25页).pdf 奇偶校验码(25页).pdf-其它文档类资源-CSDN下载 经验:如何快速地写出 ...
- 状态机与独热码、格雷码、二进制码
状态机 简称FSM,也叫同步有限状态机 同步:同步的意思就是在系统时钟的作用下 有限:有限代表状态机中的状态是有限的 根据影响输出分为两大类,一为Moore.二为Mealy Moore:若最后的输出只 ...
- 格雷码与普通二进制码的相互转换——学习笔记
文章目录 格雷码 普通二进制码转换成格雷码 格雷码转换成普通二进制码 进一步 Reference 文章中内容与图片大部分来自Reference,本文只是以方便自己理解的方式进行整理. 格雷码 在一组数 ...
- 自然二进制数与格雷码的相互转换
自然二进制码与格雷码的相互转换 一.前言 二.自然二进制数转格雷码 2.1 自然二进制数转格雷码原理 2.2 verilog代码 2.3 Testbench 2.4 仿真结果 三.格雷码转自然二进制数 ...
- 二进制与格雷码之间的转换的Verilog实现(更多一点的讨论)
目录 前言 二进制码转换为格雷码的方法 格雷码转换为二进制码的过程 更多一点讨论之generate for 更多一点讨论之for 最后对格雷码的介绍 前言 以前的博客也有写这方面的内容,只是没有显式的 ...
最新文章
- smartgit 授权文件 Free Trial License to Non-Commercial
- 《BI项目笔记》基于雪花模型的维度设计
- 华东交通大学2017年ACM双基程序设计大赛题解
- 基于 Spring Security OAuth2和 JWT 构建保护微服务系统
- Scala入门到精通——第二十一节 类型参数(三)-协变与逆变
- Flask 离线脚本
- 统一归档助企业撑起信息的保护伞
- Python 卸载python
- 安卓学习笔记15:使用安卓应用程序资源
- 如何显示最近过生日的记录
- 太极图正确画法_认识道教太极图,了解正规画法
- android源码学习-源码学习目录推荐
- python gps定位_GPS 测试汇总和python GPS 导航地图实现
- Android MediaPlayer+Stagefright框架(音频)图解
- Elasticsearch实现类百度搜索引擎搜索功能ES5.5.0v
- vue的下载安装和使用
- 2019中国智能制造十大发展趋势
- 撸免费的oracle cloud服务器并使用脚本自动化部署云服务器
- Monty Hall Problem
- 通过Dialer拨号盘输暗码启动某个apk