系统任务$monitor 使用体会

$monitor系统任务提供了监控和输出参数列表中的表达式和变量值的功能,其参数列表中输出控制格式字符串和输出表列的规则和$display一样, 当启动一个带有一个或多个参数的$monitor任务时,每当参数列表中的变量或表达式的值发生变化时整个参数列表中变量或表达式的值都将输出显示。 如果同一时刻有两个或多个表达式的值发生变化,只输出一次。 参数可以是$time,用于标明变化时刻。
  如$monitor ($time,,"rxd=%b   txd=%b",rxd,txd);这里的“,,”用来表示空格参数在输出时显示为空格

$monitor的打开和关闭分别用$monitoron和$monitoroff表示,用来控制任务的启动和停止,使得很容易控制任务何时发生,何时结束。
$monitor用于initial块中,只要不调用$monitoroff,该任务就可以不间断的对所设定信号进行监视。
例子如下(对一个4位加法计数器counter信号进行监控):
`timescale 1ns/1ns
module moni_test();
reg[3:0]counter;
reg clk;
reg rst;
initial
  begin
    rst=0;
    #10 rst=1;
    $monitor ($time,,"counter=%d",counter);
    $monitoron;
  end
  initial
  begin
  clk=0;
  forever #5 clk=~clk;
  end
  always@(negedge rst or posedge clk)
  if(!rst)
    counter<=4'd0;
    else
      counter<=counter+1;
endmodule

主要观察transcript对话框,可见每经过10ns,counter就会变化一次,此时参量时间也会输出。
注意1. 仅监测$time是不会每次都输出的,必须是除了时间之外的参量变化才可以做到参量变化就输出
       2  .,,符号输出的是一个空格符,输出结果中得到了验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值