Grey码与自然BCD码之间的相互转换
上一篇 /
下一篇 2007-07-20 16:13:29 / 天气: 晴朗
/ 心情: 郁闷
Grey码计数增加时每次只有1bit变化,可以减少信号之间干扰,减少glitch的产生,在数字电路中应用广泛,尤其是异步接口电路。自然BCD码计
数的每一位都有自己的权重,所以自然BCD码是可以比较大小的。各有各的优点,有时候要相互转换。下面是一个4bit计数转换表:

自然BCD码转换成Grey码算法:
module bcd2grey
(
bcd_code_in;
grey_code_out;
);
parameter ADDR_WIDTH
input [`ADDR_WIDTH-1:0] bcd_code_in;
output [`ADDR_WIDTH-1:0] grey_code_out;
wire [`ADDR_WIDTH-1:0] bcd_code_in;
wire [`ADDR_WIDTH-1:0] grey_code_out;
assign grey_code_out = {bcd_code_in[`ADDR_WIDTH-1],
bcd_code_in[`ADDR_WIDTH-1:1] ^ bcd_code_in[`ADDR_WIDTH-2:0] };
endmodule
Grey码转换成自然BCD码算法:
module grey2bcd
(
grey_code_in;
bcd_code_out;
);
parameter ADDR_WIDTH
input [`ADDR_WIDTH-1:0] grey_code_in;
output [`ADDR_WIDTH-1:0] bcd_code_out;
wire [`ADDR_WIDTH-1:0] grey_code_in;
wire [`ADDR_WIDTH-1:0] bcd_code_out;
assign bcd_code_out = { grey_code_in[`ADDR_WIDTH-1],
^grey_code_in[`ADDR_WIDTH-1:`ADDR_WIDTH-2],
...
^grey_code_in[`ADDR_WIDTH-1:0]};
endmodule
导入论坛
收藏
分享给好友
管理
举报
TAG: