我是靠谱客的博主 含蓄大米,最近开发中收集的这篇文章主要介绍格雷码介绍与应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

注:学习、交流就在博主的个人weixin公众号 “​​​​​​​FPGA动力联盟” 留言或直接+博主weixin “fpga_start” 私信~

学过晶体管知识的朋友们都知道,数据位跳变就相当于硬件电路中的晶体管翻转。

许多位同时跳变就相当于多个晶体管同时翻转,会导致电路中出现很大的尖峰电流脉冲,从而导致数据不稳定。

格雷码(Gray Code)不同于我们常用的二进制编码,它只是一种无权码,连算术编码都算不上。

其重要特征是一个数变为相邻的另一个数时,只有一个数据位发生跳变,由于这种特点,就可以避免电路中出现亚稳态而导致数据错误。

简而言之,格雷码的一位改变特征减小了电路出错概率,实际很多场合也用到了格雷码。

下表举例了4位格雷码、4位二进制码以及十进制码的对应关系:

二进制到格雷码转换的固定规律为:

1,格雷码中的最高有效位(最左边)等同于二进制数中相应的最高有效位。

2,从左到右,加上每一对相邻的二进制编码位,从而得到下一个格雷码位,舍去进位。

例如二进制数10110到格雷码的转换如下,格雷码是11101:

                        

下面给出任意位宽的二进制转格雷码verilog代码:

格雷码到二进制转换的固定规律为:

1,二进制码的最高有效位(最左边)等同于格雷码中相应的最高有效位。

2,将所产生的每个二进制码位加下一个相邻位置的格雷码位,从而得到下一个二进制位。舍去进位。

例如格雷码11011到二进制数转换如下,二进制数是10010:

下面给出任意位宽的格雷码转二进制verilog代码:

最后

以上就是含蓄大米为你收集整理的格雷码介绍与应用的全部内容,希望文章能够帮你解决格雷码介绍与应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部