目录
描述
输入描述:
输出描述:
参考代码
描述
实现4bit位宽的格雷码计数器。
电路的接口如下图所示。
输入描述:
input clk,
input rst_n
输出描述:
output reg [3:0] gray_out
参考代码
`timescale 1ns/1ns
module gray_counter(
input clk,
input rst_n,
output reg [3:0] gray_out
);
//格雷码转二进制
reg [3:0] bin_data,bin_data_add;
always@(posedge clk or negedge rst_n)begin
if(!rst_n)
bin_data <='d0;
else begin
bin_data[3] = gray_out[3];
bin_data[2] = gray_out[2]^ bin_data[3];
bin_data[1] = gray_out[1]^ bin_data[2];
bin_data[0] = gray_out[0]^ bin_data[1];
end
end
//二进制加
always@(posedge clk or negedge rst_n)begin
if(!rst_n)
bin_data_add <='d0;
else begin
bin_data_add <= bin_data+'d1;
end
end
//二进制转格雷码
always@(posedge clk or negedge rst_n)begin
if(!rst_n)
gray_out <='d0;
else begin
gray_out <= bin_data_add^(bin_data_add>>1);
end
end
//
endmodule