题解 | #格雷码计数器#

格雷码计数器

https://www.nowcoder.com/practice/311754bcd45d42eb8d981eeddbdf1e43

`timescale 1ns/1ns

module gray_counter(
   input   clk,
   input   rst_n,

   output  reg [3:0] gray_out
);
reg [4:0]cnt_bin;
always@(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
        cnt_bin<=0;
    end
    else begin
        cnt_bin<=cnt_bin+1;
    end
end

wire [3:0]bin;
assign bin = cnt_bin[4:1];
always@(gray_out,bin)begin
    gray_out[3] = bin[3];
    gray_out[2] = bin[3] ^ bin[2];
    gray_out[1] = bin[2] ^ bin[1];
    gray_out[0] = bin[1] ^ bin[0];
end
endmodule

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务