FPGA Verilog HDL 系列实例--------二进制与格雷码的转换

Verilog HDL 之 二进制与格雷码的转换

  格雷码的特点:相邻的两个码组之间仅有一位不同。

普通二进制码与格雷码之间可以相互转换。下面将作简要的介绍。

8位二进制码转格雷码

  二进制码转换为格雷码:从最右边一位起,一次与左边一位“异或”,作为对应格雷码该位的值,最左边的一位不变(相当于最左边是0)。

 复制代码

 1 modele bin2gry(Gry,Bin)
 2 parameter length = 8;
 3 output [length-1:0] Gry;
 4 input [length-1:0] Bin;
 5 
 6 reg [length-1:0] Gry;
 7 integer i;
 8 
 9 always @ (Bin)
10 begin
11     for(i=0;i<length-1;i=i+1)
12         Gry[i]=Bin[i]^Bin[i+1];
13     Gry[i]=Bin[i];
14 end
15 endmodule

 

8位格雷码转二进制码

  格雷码转换为二进制码:从左边第二位起,将每一位与左边一位解码后的值“异或”,作为该解码后的值(最左边的一位依然不变)。

复制代码
 1 modele gry2bin(Gry,Bin)
 2 parameter length = 8; 
 3 output [length-1:0] Gry; 
 4 input [length-1:0] Bin; 
 5 
 6 reg [length-1:0] Bin; 
 7 integer i;
 8 always @ (Gry)
 9 begin    
10     Bin[length-1]=Gry[length-1];    
11     for(i=length-2;i>=0;i=i-1)        
12         Bin[i]=Bin[i+1]^Gry[i];
13 end
14 endmodule

 

 

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值