$monitor(p1,p2,….pn);
$monit0r;
$monitoron;
$monitoroff;
任务$monitor提供了监视和输出参数列表中的表达式或变量的功能。其参数列表中输出控制格式字符串和输出列表的规则和$display中一样。当启动一个带有一个或多个参数的$monitor任务时,仿真器则建立一个处理机制,使得每当参数列表中变量或表达式的值发生变化时,整个参数列表中的变量或表达式的值都输出显示。如果同一时刻,两个或多个参数的值发生变化则在该时刻只输出一次。但在$monitor中,参数可以是$time系统函数。
$monitoron和$monitoroff任务的作用是通过打开和关闭监控标志来控制监控任务$monitor的启动和停止,这样就可以控制$monitor的发生。其中$monitoroff任务用于关闭监控标志,停止监控任务$monitor,$monitoron则用来打开监控标志,启动监控任务$monitor。通常在通过调用$monitoron来启动$monitor时,不管$monitor参数列表中的值是否发生变化,总是立刻输出显示当前的时刻参数列表中的值,这用于在监视的初始时刻设定初始比较值。在默认情况下,控制标志在仿真的起始刻就已经打开了。在多模块调试的情况下,许多模块中都调用了$monitor,因为任何时刻只能有宇哥$monitor起作用,因此需配合$monitoron与$monitoroff使用,把需要监视的模块用$monitoron打开,在监视完毕后及时用$monitoroff关闭,以便把$monitor让给其他模块使用。$monitor与$display的不同处还在于$monitor往往在initial块中调用,只要不调用$monitoroff,$monitoron便不间断地对所设定的信号进行监视。 |