数字电路设计之格雷码与二进制之间的转换
来源:互联网 发布:做单页用什么软件 编辑:程序博客网 时间:2024/04/29 19:54
格雷码相邻数字间只相差一位,那么这样就可以做到比较低功耗。
FIFO中一般使用Gray code去表示地址。Gray码有反射特性和自补特性,它的循环和单步特性消除了随机数出现重大错误的可能性。
转换关系:
二进制转格雷码:
G[ n-1 ] = b[ n - 1 ] (最高位的转化)
G[ i ] = b[i] & b[ i+1 ]
格雷码转二进制:
b[ n-1 ] = G[ n-1 ]
b[ i ] = G[ i ] ^ G[ i+1 ] ^ .....^G[ n -1 ]
= G[ i ] ^ b[ i + 1 ]
代码:
Gray->Binary
module Gray_to_Binary(iBin,oGray );inputwire[8:0] iBin;output reg[8:0] Gray;always@(*)beginoGray[8] <= iBin[8];oGray[7] <= iBin[7]^iBin[8];oGray[6] <= iBin[6]^iBin[7];oGray[5] <= iBin[5]^iBin[6];oGray[4] <= iBin[4]^iBin[5];oGray[3] <= iBin[3]^iBin[4];oGray[2] <= iBin[2]^iBin[3];oGray[1] <= iBin[1]^iBin[2];oGray[0] <= iBin[0]^iBin[1];endendmoduleBinary->Gray
module Gray_to_Binary(iBin,oGray );inputwire[8:0] oGray;output reg[8:0] Gray;always@(*)beginiBin[8] <= oGray[8];iBin[7] <= oGray[7]^iBin[8];iBin[6] <= oGray[6]^iBin[7];iBin[5] <= oGray[5]^iBin[6];iBin[4] <= oGray[4]^iBin[5];iBin[3] <= oGray[3]^iBin[4];iBin[2] <= oGray[2]^iBin[3];iBin[1] <= oGray[1]^iBin[2];iBin[0] <= oGray[0]^iBin[1];endendmodule
参考资料:
http://blog.csdn.net/xiangyuqxq/article/details/7312121
0 0
- 数字电路设计之格雷码与二进制之间的转换
- 二进制与字符串之间的转换
- 图片与二进制流之间的转换
- 二进制与十进制之间的转换
- java二进制与图片之间的转换
- 二进制数据与字符串之间的转换
- 二进制与对象之间的转换
- 数字电路设计之堆栈的verilog实现
- 数字电路设计之逻辑综合的优化
- 数字电路设计之function的使用
- 数字电路设计之加法器的实现
- 数字电路设计之简单的滤波算法
- 数字电路设计之简单的滤波算法
- 自然二进制和格雷码之间的转换
- 数字电路设计之数字电路工程师面试集锦
- 格雷码与二进制的转换
- 格雷码与二进制的转换
- 格雷码与二进制的转换
- 单例的简单实现
- 神奇的香港
- Struts1——从BeanUtils看struts的实现原理2
- 【Cocos2d-x3.0学习笔记 06】游戏时间到LitterRunner01
- 男神
- 数字电路设计之格雷码与二进制之间的转换
- POST提交JSON数据
- 第一次在CSDN上发表文章
- 面试题积累(三)
- 排序算法
- 小试牛刀-搜索基础入门(杭电五题)
- 自制进度圈
- 设计模式:21 单例模式
- java 数组中求最值