标签:
无标签
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 | 来源:
原创 | 【推荐给朋友】 | 【添加到收藏夹】