首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Verilog代码的行为与预期不符

Verilog代码的行为与预期不符
EN

Stack Overflow用户
提问于 2018-07-04 22:58:57
回答 1查看 59关注 0票数 1

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

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

代码语言:javascript
复制
    //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
EN

回答 1

Stack Overflow用户

发布于 2018-07-04 23:05:27

$monitor系统任务仅在其一个输入更改时才输出一行。(不包括$time etc系统函数)。在30 no和70 no之间没有变化,因此$monitor没有输出任何行。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51176511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档