HDL 4.1.4 Add/sub

时序图中的输出out和参考out的一致,判断是输出result_is_zero出现问题

    // synthesis verilog_input_version verilog_2001
    module top_module ( 
        input do_sub,
        input [7:0] a,
        input [7:0] b,
        output reg [7:0] out,
        output reg result_is_zero
    );//
    
        always @(*) begin
            case (do_sub)
              0: out = a+b;
              1: out = a-b;
            endcase
    -----------------------------------------------------------------
        //源代码        if (~out)  
                         result_is_zero = 1;
                       end
    -----------------------------------------------------------------
        //第一种方案    result_is_zero = (out == 0) ? 1 : 0;
                       end
    -----------------------------------------------------------------
        //第二种方案    end
                       assign result_is_zero = (out == 0) ? 1 : 0;
    -----------------------------------------------------------------
    endmodule

    源代码:

    • if中的条件不符合逻辑设计

    第二种方案:

    • always用reg型,assign用 wire
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值