verilog之monitor

Posted electricdream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog之monitor相关的知识,希望对你有一定的参考价值。

verilog之monitor

1、函数作用

monitor用于追踪变量的变化情况,这在实际使用中还是非常实用的。电路中的某个信号的变化可以通过monitor检测,不需要使用波形图去仔细查找。也便于准确描述某个信号的变化。

2、基本用法

module monitor;
      reg a_monitor;
      reg b_monitor;

      initial begin
          a_monitor=1;
          b_monitor=0;
          $monitor($time,,"a= %b",a_monitor);
          $monitor($time,,"b= %b",b_monitor);
          //$monitor($realtime,,"a=%b","b=%b",a_monitor,b_monitor);
          #1
          a_monitor=0;
          #1
          b_monitor=1;
          #1
          a_monitor=1;
          b_monitor=0;
          #10
          $stop;
      end
endmodule

monitor具有单一进程性,即monitor只会执行一次,由monitoroff结束。同时使用两个monitor会自动关闭前面的一个。上面的结果如下:

run -all
#                    0 b= 0
#                    2 b= 1
#                    3 b= 0
# ** Note: $stop    : D:/Library/verilog_soft/P1_function/H2_monitor/monitor.v(19)
#    Time: 13 ns  Iteration: 0  Instance: /monitor

注意stop函数先于monitor,如果stop同时有变量变化,是不会出现在结果中的。

需要检测多个变量时使用多参数形式。使用time和realtime(带小数)可以将时间显示出来,用于凸显时序。

3、总结

monitor是一个自动检测函数,可以弥补display必须在需要显示的地方插入才能跟踪的缺点。使用monitor可以对某些关键变量的变化起到准确描述作用。

以上是关于verilog之monitor的主要内容,如果未能解决你的问题,请参考以下文章

javascript UV Index Monitor App订阅PubNub并显示UV索引值。博文的代码片段。在这里查看项目:https:// githu

线程基础四 使用Monitor类锁定资源

verilog之生成语句

Guava监视器之Monitor

SDRAM驱动篇之简易SDRAM控制器的verilog代码实现

C# 线程同步之排它锁/Monitor监视器类