我的verilog testbench永远不会停止

时间:2016-06-06 23:17:55

标签: verilog

教授给出了以下代码。我必须弄清楚为什么它永远不会停止。

模块tb_problem1();

reg a, b, c, d, e;
wire x;
reg [4:0] ins;

problem1 dut(a, b, c, d, e, x);

initial begin
    ins = 0;
    while(ins < 32) begin
        {a, b, c, d, e} = ins;
        #20;
        ins = ins + 1;
    end
end

endmodule

这是因为我们需要做ins = ins+1'b1;吗?

1 个答案:

答案 0 :(得分:4)

5位无符号值支持0到31的范围。添加1到31将丢弃msb并返回0.因此永远不会达到32的值。

尝试将ins设为6位值。