set_drain_time
set_drain_time是在phase里面进程执行完成后,加上一段延时才drop objection,退出该phase;set_drain_time在UVM源码内如下图所示:
而m_drain_time为uvm_objection内部protected变量;在drop objection前需要执行下面的语句:
uvm_delay如下图所示:
注意:由于set_drain_time的输入参数为time,而time的单位是按照timescale的时间精度计算的;而#(TIME)又是按照时间unit进行的,所以在调用set_drain_time时不要带事件单位,都则当单位和事件精度不一致时,不能按照预计延时。
time类型数据介绍
time类型数据做实验如下:
实验结果表明,当timescale为1ns/1ps时,打印结果为10000;当timescale为1ns/10ps时,打印结果为1000;说明time类型数据时按照时间精度为单位存储的整型数据。