题解 | #格雷码计数器#

格雷码计数器

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

`timescale 1ns/1ns

module gray_counter(
   input   clk,
   input   rst_n,

   output  reg [3:0] gray_out
);


reg                 [3:0]               cnt;
always@(posedge clk or negedge rst_n)
    if(!rst_n)begin
        cnt <= 4'd0;
    end
    else if(flag)begin
        if(cnt >= 4'd15)
            cnt <= 4'd0;
        else
            cnt <=  cnt + 1'd1;
    end


reg                 [1:0]               flag;

always@(posedge clk or negedge rst_n)
    if(!rst_n)
        flag <= 1'b0;
    else
        flag <= ~flag;


always@(*)
    gray_out <= cnt^(cnt >> 1);



// always@(*)
//     case(cnt)
//          0:gray_out <= 4'b0000;
//          1:gray_out <= 4'b0001;
//          2:gray_out <= 4'b0011;
//          3:gray_out <= 4'b0010;
//          4:gray_out <= 4'b0110;
//          5:gray_out <= 4'b0111;
//          6:gray_out <= 4'b0101;
//          7:gray_out <= 4'b0100;
//          8:gray_out <= 4'b1100;
//          9:gray_out <= 4'b1101;
//         10:gray_out <= 4'b1111;
//         11:gray_out <= 4'b1110;
//         12:gray_out <= 4'b1010;
//         13:gray_out <= 4'b1011;
//         14:gray_out <= 4'b1001;
//         15:gray_out <= 4'b1000;
//         default:;
//     endcase

endmodule

全部评论

相关推荐

面了这么多场试,总有公司总喜欢压力面一个小时面试+手撕,哪里不会就点哪里,说了不会不会还继续追着问不尊重求职者,稍微有些细节记不清了,就开始怀疑项目真实性以及人格让求职者开摄像头但是自己不开,说话声音还贼小,pardon几次就开始不耐烦的不知道这个算不算,手撕的时候,面试官人跑了。。。最后快结束才来
一纸丿繁华丶:你换位思考一下,自己在职场被领导push麻了,身心俱疲,现在有个机会让你放松一下,体验一把上位者的感觉,还能看着那些高学历人才、未来自己的竞争者,抓耳挠腮、手足无措的样子,没给你当场笑出来就不错了,理解一下面试官吧。
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
今年读完研的我无房无车无对象,月入还没有过万&nbsp;看到他在朋友圈晒房产证,感叹自己白读了这么多年书
梦想是成为七海千秋:那咋了,双9毕业的现在还没存款呢(因为没念完),高中毕业的去直播带货月入几百万也是完全有可能的,退一万步讲,有些人刚出生父母就给买车买房了,上哪说理去,哪怕是同一个起点也会有截然不同的走向,过好自己的生活就完事了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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