HDLbits刷题记录之Always case

文章讲述了在使用Verilog编写多路复用器时,作者通过实际案例学习到在always@(*)的case结构中,遗漏default可能导致部分输入无法正确处理,强调了写上default的必要性以避免逻辑错误。
摘要由CSDN通过智能技术生成

HDLbits刷题记录之Always case

这个题目的要求是写一个多路复用器,就直接使用always@(*)块中的case语句即可,那就照猫画虎,直接放代码:

// synthesis verilog_input_version verilog_2001
module top_module ( 
    input [2:0] sel, 
    input [3:0] data0,
    input [3:0] data1,
    input [3:0] data2,
    input [3:0] data3,
    input [3:0] data4,
    input [3:0] data5,
    output reg [3:0] out   );//

    always@(*) begin  // This is a combinational circuit
        case(sel)
            3'b000 : out = data0 ;
            3'b001 : out = data1 ;
            3'b010 : out = data2 ;
            3'b011 : out = data3 ;
            3'b100 : out = data4 ;
            3'b101 : out = data5 ;
            default: out = 0;
        endcase
    end

endmodule

总结感悟:

我是没有注意到题目中说的除了5个之外,都是为0,然后没有写case的default,然后结果是部分出错,对比了波形图,写了default。然后回头看题目要求,确实是有default。感觉出来了 case还是尽量写上default。因为不写的话,有时候会停留在上面的某一个case满足的条件当中,从而造成错误。
菜鸡本鸡。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值