verilog中$monitor 的用法 |
您所在的位置:网站首页 › monitor系统 › verilog中$monitor 的用法 |
1、函数作用
monitor用于追踪变量的变化情况,这在实际使用中还是非常实用的。电路中的某个信号的变化可以通过monitor检测,不需要使用波形图去仔细查找。也便于准确描述某个信号的变化。 2、基本用法 module monitor; reg a_monitor; reg b_monitor; initial begin a_monitor=1; b_monitor=0; $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; #100 a_monitor=1; b_monitor=1; #100 a_monitor=0; b_monitor=0; #100 a_monitor=0; b_monitor=0; #100 a_monitor=0; b_monitor=0; #100 a_monitor=0; b_monitor=0; // $stop; end endmodule当在$monitor调用时对多个变量进行监控,当$monitor监控的变量中任何一个发生变化时,将会打印出当前仿真时刻的值;如果$monitor监控的所有变量在某一时刻均不改变,将不会打印任何信息。 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); #1 a_monitor=0; #1 b_monitor=1; #1 a_monitor=1; b_monitor=0; #10; #100 a_monitor=1; b_monitor=1; #100 a_monitor=0; b_monitor=0; #100 a_monitor=0; b_monitor=0; #100 a_monitor=0; b_monitor=0; #100 a_monitor=0; b_monitor=0; // $stop; end endmodule$monitor具有单一进程性,即monitor只会执行一次,由$monitoroff结束。同时使用两个monitor会自动关闭前面的一个。当在同一个模块中调用了两次$monitor时,最后一次的调用将会覆盖之前的所有调用。注意$stop函数先于$monitor,如果stop同时有变量变化,是不会出现在结果中的。 需要检测多个变量时使用多参数形式。使用$time和$realtime(带小数)可以将时间显示出来,用于凸显时序。 3、总结$monitor是一个自动检测函数,可以弥补$display必须在需要显示的地方插入才能跟踪的缺点。使用$monitor可以对某些关键变量的变化起到准确描述作用。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |