HDLbits刷题记录之Always nolatches

HDLbits刷题记录之Always nolatches

题目:
要求是给四个按键进行赋值,所以默认给0,这样的话,case的default可以省略。直接上代码吧。先放一段我写的错误代码,如下:

// 错误代码
module top_module (
    input [15:0] scancode,
    output reg left,
    output reg down,
    output reg right,
    output reg up  ); 
    always@(*) begin
        case(scancode)
            16'he06b : begin left = 1'b1;down = 1'b0;right =1'b0;up = 1'b0; end
            16'he072 : begin left = 1'b0;down = 1'b1;right =1'b0;up = 1'b0; end
            16'he074 : begin left = 1'b0;down = 1'b0;right =1'b1;up = 1'b0; end
            16'he075 : begin left = 1'b0;down = 1'b0;right =1'b0;up = 1'b1; end
        endcase
    end
endmodule

虽然上面写的繁琐,但是为什么有些地方在报错,我不明白。如有大佬看到小弟写的错误,还请指点一下本菜鸡。
下面贴一下我在网上找的正确方法的代码:

// synthesis verilog_input_version verilog_2001
module top_module (
    input [15:0] scancode,
    output reg left,
    output reg down,
    output reg right,
    output reg up  ); 
    always@(*) begin
        left = 1'b0;down = 1'b0;right =1'b0;up = 1'b0;
        case(scancode)
            16'he06b : left = 1'b1;
            16'he072 : down = 1'b1;
            16'he074 : right =1'b1;
            16'he075 : up = 1'b1; 
        endcase
    end
endmodule

总结思考:

近日被课程缠身,更新的速度慢了些,回宿舍睡觉了,明天再更。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值