Verilog代码无法正常工作

时间:2018-07-04 14:58:57

标签: verilog simulation hdl modelsim

在下面的Verilog测试平台代码中,我得到了从时间= 0到时间= 30的监视器输出,但是在那之后,我没有得到直到时间= 70的监视器输出。

这种行为的可能原因是什么?我正在使用Modelsim 10.4。

    //design block for mux
    module mux(output reg out,input[3:0] in,input[1:0] s);

    always @(s or in)

    case(s)

     2'b00:out<=in[0];
     2'b01:out<=in[1];
     2'b10:out<=in[2];
     2'b11:out<=in[3];

    endcase
    endmodule

    //testbench

 module testbench;

    reg[3:0] in;
    reg[1:0] s;
    wire out;

    assign out=0;

    mux m(out,in,s);



    initial
    begin
     s=0;
     in=0;
    $monitor("time=%d , s=%d , in=%d ",$time,s,in);
    while(in<15)
    begin
    while(s<3)
    begin
    s= #10 s+1;
    end
    #40 s<=0;
    #40 in<=in+1;
    end

    end
    endmodule

1 个答案:

答案 0 :(得分:0)

$monitor系统任务仅在其输入之一改变时才输出一行。 (不包括$time等系统功能)。在30ns至70ns之间没有任何变化,因此$monitor不会输出任何行。

https://www.edaplayground.com/x/2kQZ