概述
格雷码是一种二进制循环码。格雷码的特点是从一个数变为相邻的一个数时,只有一个数据位发生跳变,由于这种特点,就可以避免二进制编码计数组合电路中出现的亚稳态。格雷码常用于通信、异步FIFO或者RAM地址寻址计数器中。
(1) 格雷码转换为二进制码原理如下:
n位的二进制:Bn,Bn-1,Bn-2。。。B2,B1,B0;
n位的格雷码:Gn,Gn-1,Gn-2。。。G2,G1,G0;
转换公式:Bn=Gn;
Bi-1=Bi^Gi-1;(i=0,1,2,n-1;)
代码如下:
`timescale 1ns / 1ps
module geleima(
gray_in,
bin_out
);
parameter WIDTH=4;
input [WIDTH-1:0] gray_in;
output reg [WIDTH-1:0] bin_out;
always@(*)begin
bin_out[3]=gray_in[3];
bin_out[2]=gray_in[2]^bin_out[3];
bin_out[1]=gray_in[1]^bin_out[2];
bin_out[0]=gray_in[0]^bin_out[1];
end
endmodule
(2) 二进制转换为格雷码原理如下:
n位的二进制:Bn,Bn-1,Bn-2。。。B2,B1,B0;
n位的格雷码:Gn,Gn-1,Gn-2。。。G2,G1,G0;
转换公式:Gn=Bn;
Gi-1=Bi^Bi-1;(i=0,1,2,n-1;)
代码如下:
`timescale 1ns / 1ps
module geleima(
gray_out,
bin_in
);
parameter WIDTH=4;
input [WIDTH-1:0] bin_in;
output [WIDTH-1:0] gray_out;
assign gray_out=(bin_in>>1)^bin_in;
endmodule
最后
以上就是柔弱缘分为你收集整理的格雷码转换电路的全部内容,希望文章能够帮你解决格雷码转换电路所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复