日志档案

发表于 2007-6-15 19:44:24

4

标签: 无标签

Gray码与自然BCD码之间的相互转换

   Gray码计数增加时每次只有1bit变化,可以减少信号之间干扰,减少glitch的产生,在数字电路中应用广泛,尤其是异步接口电路。自然BCD码计数的每一位都有自己的权重,所以自然BCD码是可以比较大小的。各有各的优点,有时候要相互转换。下面是一个4bit计数转换表:

点击看大图

    二进制BCD码转换成Gray码算法:

点击看大图

module bcd2gray
(
   bcd_code_in;
   gray_code_out;
);
parameter ADDR_WIDTH;
input [ADDR_WIDTH-1:0] bcd_code_in;
output [ADDR_WIDTH-1:0] gray_code_out;
wire [ADDR_WIDTH-1:0] bcd_code_in;
wire [ADDR_WIDTH-1:0] gray_code_out;

assign gray_code_out = {bcd_code_in[ADDR_WIDTH-1],
          bcd_code_in[`ADDR_WIDTH-1:1] ^ bcd_code_in[ADDR_WIDTH-2:0] };

endmodule


    Gray码转换成二进制BCD码算法:

点击看大图

module gray2bcd
(
 gray_code_in;
 bcd_code_out;
);
parameter ADDR_WIDTH;
input [ADDR_WIDTH-1:0] gray_code_in;
output [ADDR_WIDTH-1:0] bcd_code_out;
wire [ADDR_WIDTH-1:0] gray_code_in;
wire [ADDR_WIDTH-1:0] bcd_code_out;

assign bcd_code_out = { gray_code_in[ADDR_WIDTH-1],
          ^gray_code_in[ADDR_WIDTH-1:ADDR_WIDTH-2],
          ...
          ^gray_code_in[ADDR_WIDTH-1:0]};

endmodule

 

系统分类: CPLD/FPGA   |   用户分类: ASIC DESIGN   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1106)    回复(0)  

投一票您将和博主都有获奖机会!