在Verilog HDL中有两类型的时间系统函数,$time和$realtime。用这两个系统用函数可以的大当前的仿真时间。
$time可以返回一个64位的整数来表示当前仿真时刻值,该时刻是以模块的仿真时间尺度位基准的。
$realtime返回的时间数字是一个实型数。该数也是以时间尺度为基准的。
`timescale 10ns/1ns module test; reg set; parameter p=1.6; initial begin $monitor($time,,"set=",set); #p set=0; #p set=1; end endmodule
输出结果为:
0 set=x 2 set=0 3 set=3
在这个例子中,模块test想在时间为16ns是设置寄存器set的值为0,在32ns时设置寄存器的set为1。但是由$time疾苦的set变化时刻却和预想的不一样,这是由下面两个原因引起的。